Skip to main content

runModeStep

Short Summary

This method monitors the current operation mode and stops it, if the operator reuqests a stop (or stop request) or the mode is done.

  • Return type: DINT

Parameters

none

Code

Declaration

METHOD PRIVATE runModeStep : DINT

Implementation

runModeStep := RUN_MODE;
THIS^.buttons.Start.enabled := THIS^.selectedNode.enableStepping OR THIS^.pause;
THIS^.buttons.StepMode.enabled := NOT THIS^.selectedNode.enableStepping OR_ELSE THIS^.selectedNode.isWaitingForStep;
THIS^.buttons.Pause.enabled := NOT THIS^.pause;

THIS^.pause S= THIS^.buttons.Pause.pressed;
THIS^.pause R= THIS^.buttons.Start.pressed;
THIS^.selectedNode.enableStepping S= THIS^.buttons.StepMode.pressed;
THIS^.selectedNode.enableStepping R= THIS^.buttons.Start.pressed;
THIS^.selectedNode.step S= THIS^.buttons.StepMode.pressed;

IF ( THIS^.buttons.Stop.pressed ) THEN
runModeStep := STOP_MODE_IMMEDIATE;
ELSIF (THIS^.buttons.StopRequest.pressed) THEN
runModeStep := STOP_MODE_REQUEST;
ELSIF THIS^.modeHandler.modeIsExecuting
AND_THEN
(THIS^.modeHandler.rootNode.nodeState = CNM_ReturnTypes.SingleExecutionState.SUCCESS)
THEN
THIS^.buttons.Start.enabled := TRUE;
THIS^.buttons.Stop.enabled := FALSE;
THIS^.buttons.StopRequest.enabled := FALSE;
THIS^.buttons.Pause.visible := FALSE;
THIS^.buttons.StepMode.visible := FALSE;
runModeStep := SELECT_MODE;
END_IF