Skip to main content

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