stStatus.eStateCurrent, eCurrentMode => stStatus.eUnitModeCurrent, xError=> ); // Reset state state machine IF _eLastState <> stStatus.eStateCurrent THEN _iSSM := 0; _eLastState := stStatus.eStateCurrent; END_IF // Call state method according to current state CASE stStatus.eStateCurrent OF E_PackMLState.CLEARING: M_Clearing(); E_PackMLState.STOPPED: M_Stopped(); E_PackMLState.STARTING: M_Starting(); E_PackMLState.IDLE: M_Idle(); E_PackMLState.SUSPENDED: M_Suspended(); E_PackMLState.EXECUTE: M_Execute(); E_PackMLState.STOPPING: M_Stopping(); E_PackMLState.ABORTING: M_Aborting(); E_PackMLState.ABORTED: M_Aborted(); E_PackMLState.HOLDING: M_Holding(); E_PackMLState.HELD: M_Held(); E_PackMLState.UNHOLDING: M_Unholding(); E_PackMLState.SUSPENDING: M_Suspending(); E_PackMLState.UNSUSPENDING: M_Unsuspending(); E_PackMLState.RESETTING: M_Resetting(); E_PackMLState.COMPLETING: M_Completing(); E_PackMLState.COMPLETED: M_Complete(); ELSE ; END_CASE]]>