selectModeStep
Short Summary
This method routes the operation mode selected from the HMI to the operation mode handler.
- Return type:
DINT
Parameters
none
Code
Declaration
METHOD PRIVATE selectModeStep : DINT
VAR
modeNode :CNM_OpModeHandlingInterfaces.IModeNode;
result :CNM_ReturnTypes.SingleExecutionResult;
END_VAR
Implementation
selectModeStep := SELECT_MODE;
THIS^.currentBehaviour := THIS^.getMode(selectedMode := THIS^.nextOpMode);
THIS^.buttons.Start.enabled := FALSE;
THIS^.enableModeSelection := TRUE;
IF (THIS^.currentBehaviour <> 0) THEN
RETURN( NOT THIS^.conditionProvider.checkModeIsAllowed(THIS^.nextOpMode, THIS^.selectedNode));
IF (THIS^.modeHandler.rootNode <> THIS^.selectedNode) AND_THEN __QUERYINTERFACE(THIS^.selectedNode, modeNode) THEN
result := THIS^.modeHandler.setMode(mode := THIS^.currentBehaviour, modeNode);
ELSE
result := THIS^.modeHandler.setMode(mode := THIS^.currentBehaviour );
END_IF
IF (result = CNM_ReturnTypes.SingleExecutionResult.SUCCESS) THEN
THIS^.currentOpMode := THIS^.nextOpMode;
THIS^.buttons.Start.enabled := TRUE;
selectModeStep := START_MODE;
END_IF
END_IF