7.12 SystemOperationStateMachineType

The SystemOperationStateMachineType represents the behaviour of a controller at the system level and can be used for monitoring and for external or direct operation. In robot systems, a distinction is typically made between external and direct operation, depending on the OperationalMode (see 7.7.2).

If the system takes a significant amount of time to transition from the Idle State to the Ready State, the Idle State can be extended by the sub state machine IdleSubstateMachine. Alternatively, a vendor/application specific Substate machine may also be used.

For certain stop modes, the transition from the Executing State to the Ready State can take a significant amount of time. In such cases, the Executing State can be extended by the sub state machine ExecutingSubstateMachine. Alternatively, an application or vendor specific Substate machine may also be used.

The Substate machines enable the client to get more information during the transition.

The SystemMonitor Server Facet supports monitoring of the activities performed by the operator or system internally. (e.g. monitor condition changes and base causes) The SystemOperation Server Facet extends on the SystemMonitor Server Facet and adds support to operate the system.

The overview of the SystemOperationStateMachine with the IdleSubstateMachine as Substate machine of Idle State and the ExecutingSubstateMachine as Substate machine of Executing State with all transitions is shown in Figure 8.

The transitions in this state machine can occur due to internal processes of the system or they may be triggered by a method call. In case the transition is triggered by a method call, the transition might not occur immediately (e.g. it will be delayed until internal conditions are met).

Figure 22 – SystemOperationStateMachine.
Figure 23 – SystemOperationStateMachineType.

The SystemOperationStateMachineType is formally defined in Table 45.

Table 45 – SystemOperationStateMachineType Definition
Attribute Value
BrowseNameSystemOperationStateMachineType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the OperationStateMachineType
0:HasComponentObjectIdleSubstateMachineIdleSubstateMachineTypeO
0:HasComponentObjectExecutingSubstateMachineExecutingSubstateMachineTypeO
Inherited from OperationStateMachineType
0:HasComponentVariable LastTransitionReason0:Int160:MultiStateValueDiscreteTypeM
0:HasComponentVariable PossibleStopModes0:EnumValueType[]0:BaseDataVariableTypeO
0:HasComponentVariable ConfiguredDefaultStopMode0:Int160:BaseDataVariableTypeO
0:HasComponentObjectIdle0:StateType
0:HasComponentObjectReady0:StateType
0:HasComponentObjectExecuting0:StateType
0:HasComponentObjectReadyToIdle0:TransitionType
0:HasComponentObjectIdleToReady0:TransitionType
0:HasComponentObjectExecutingToReady0:TransitionType
0:HasComponentObjectReadyToExecuting0:TransitionType
0:HasComponentObjectExecutingToIdle0:TransitionType
0:HasComponentObjectIdleToIdle0:TransitionType
0:HasComponentMethodStart O
0:HasComponentMethodStopO
0:HasComponentMethodStandDownO
0:HasComponentMethodGetReadyO
0:HasComponentVariableLastTransition0:LocalizedText0:FiniteTransitionVariableTypeM
0:GeneratesEventObjectTypeTransitionEventTypeO
ConformanceUnits
Rob System Monitor
Rob System Operation
Rob System Events
Rob System Idle Substate
Rob System ExecutingSubstate

The Idle State of SystemOperationStatemachineType has additional subcomponents which are defined in Table 46

Table 46 – SystemOperationStateMachineType Additional Subcomponents
Source Path Reference Node Class BrowseName DataType TypeDefinition Other
Idle0:HasSubStateMachineObjectIdleSubstateMachineIdleSubstateMachineTypeO
Executing0:HasSubStateMachineObjectExecutingSubstateMachineExecutingSubstateMachineTypeO

To acknowledge the state changes in a system the Conditions within the Conditions folder of SystemOperationType must be taken under consideration. A client might need to acknowledge them so that the robot system can be activated. (e.g. operational mode change requires acknowledgement to start the system)

Table 47 – SystemOperationStateMachineType State Descriptions
StateName Description
IdleThe system is available, but cannot be started because preparation is needed
ReadyThe system is ready to start execution.
ExecutingThe system is executing. Typically, at least one task control is executing, however it is a system specific behaviour.
Table 48 – SystemOperationStateMachine Transition Descriptions
TransitionName Description
IdleToIdleOccurs in response to StandDown(), internal events, or when preparations to get the system ready are unsuccessful.
IdleToReadyOccurs in response to GetReady() or internal events, when preparations to get the system ready are successful.
ReadyToIdleOccurs in response to StandDown() or internal events.
ReadyToExecutingOccurs in response to Start() or internal events.
ExecutingToReadyOccurs in response to Stop() or internal events when the system has come to a stop
ExecutingToIdleOccurs in response to internal events (typically in case of an error)

The components of the SystemOperationStateMachineType have additional references which are defined in the table below.

Table 49 – SystemOperationStateMachineType Additional References
SourceBrowsePath Reference Type Is Forward TargetBrowsePath
IdleToIdle0:FromStateTrueIdle
0:ToStateTrueIdle
0:HasCauseTrueStandDown
0:HasEffectTrueTransitionEventType
IdleToReady0:FromStateTrueIdle
0:ToState TrueReady
0:HasCauseTrueGetReady
0:HasEffectTrueTransitionEventType
ReadyToIdle0:FromStateTrueReady
0:ToState TrueIdle
0:HasCauseTrueStandDown
0:HasEffectTrueTransitionEventType
ReadyToExecuting0:FromStateTrueReady
0:ToStateTrueExecuting
0:HasCauseTrueStart
0:HasEffectTrueTransitionEventType
ExecutingToIdle0:FromStateTrueExecuting
0:ToStateTrueIdle
0:HasEffectTrueTransitionEventType
ExecutingToReady0:FromStateTrueExecuting
0:ToStateTrueReady
0:HasCauseTrueStop
0:HasEffectTrueTransitionEventType

The component Variables of the SystemOperationStateMachineType have additional Attributes defined in the table below.

Table 50 – SystemOperationStateMachineType Attribute values for child Nodes
BrowsePath Value Attribute
1
2
3
1
2
3
4
5
6

7.12.1 Start Method

The signature of this Method is specified below.

Signature

	Start (
	[out]	0:Int32	Status
	);

The Start Method is called by a Client to start execution of the system that is represented by the state machine. If the method is successfully called, the method should return with a Good or Uncertain result code.

The Start Method allows an authorized Client to command the system to the Executing State.

Table 51 – Start Method Arguments
Argument Description
Status

0 – OK – Everything is OK

1 – E_SystemState – The system is not in correct state for this operation

2 – E_UnexpectedError – Unexpected Error during the Method call

3 – E_ActiveAlarm – An Active Alarm prevents the system start

4 – E_AcknowledgeRequired – Condition needs to be acknowledged

<0 – shall be used for vendor-specific errors.

>0 – are reserved for errors defined by this and future standards

The possible Method result codes are formally defined in Table 52

Table 52 – Method Result Codes (defined in Call Service)
Result Code Description
GoodThe system level operation succeeded
UncertainThe value is uncertain. A concrete reason is defined in the Status Output-Argument.
Bad_InternalErrorThe Method could not be called due to an internal error
Bad_ResourceUnavailableThe Method is locked by another Client/Clientgroup
Bad_UserAccessDeniedThe caller is not allowed to call this Method.

The Start Method representation in the AddressSpace is formally defined in Table 53.

Table 53 – Start Method AddressSpace definition.
Attribute Value
BrowseNameStart
References NodeClass BrowseName DataType TypeDefinition Others
0:HasPropertyVariable0:OutputArguments0:Argument[]0:PropertyTypeM
ConformanceUnits
Rob System Operation

7.12.2 Stop Method

The signature of this Method is specified below.

Signature

	Stop (
	[in]	0:Int64 	StopMode
	[out]	0:Int32	Status
	);

The Stop Method allows an authorized Client to command the system to stop executing and leave the Executing state.

In conjunction with the usage of this method, the transient states can be expressed with Substate machines within the Executing state (e.g. the ExecutingSubstateMachine in 7.14)

The input argument StopMode must be either 0 or one of those listed in the PossibleStopModes Variable (see Table 31). If not, then a Bad_InvalidArgument Result Code is returned.

Table 54 – Stop Method Arguments
Argument Description
StopModemust either be 0 or one of those listed in the PossibleStopModes Variable (see Table 31)
Status

0 – OK – Everything is OK

1 – E_SystemState – The system is not in correct state for this operation

2 – E_UnexpectedError – Unexpected Error during the Method call

<0 – shall be used for vendor-specific errors.

>0 – are reserved for errors defined by this and future standards

The possible Method result codes are formally defined in Table 55

Table 55 – Method Result Codes (defined in Call Service)
Result Code Description
GoodThe system level operation succeeded
Bad_InternalErrorThe system level operation failed because of an internal error
Bad_ResourceUnavailableThe Method is locked by another Client/Clientgroup
Bad_UserAccessDeniedThe caller is not allowed to call this Method.
Bad_InvalidArgumentThe input argument is invalid

The Stop Method representation in the AddressSpace is formally defined in Table 56

Table 56 – Stop Method AddressSpace definition.
Attribute Value
BrowseNameStop
References NodeClass BrowseName DataType TypeDefinition Others
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyTypeM
0:HasPropertyVariable0:OutputArguments0:Argument[]0:PropertyTypeM
ConformanceUnits
Rob System Operation

7.12.3 GetReady Method

The signature of this Method is specified below.

Signature

	GetReady (
	[out]	0:Int32	Status
	);

The GetReady Method allows an authorized Client to request the system to transition from the Idle state to the Ready state. Internally the system prepares to get started in the next step (e.g. switching on the intermediate circuit). If the internal preparations for this transition are successful, the system will transition from Idle to Ready. If the internal preparations are unsuccessful then the IdleToIdle transition occurs.

In conjunction with the usage of this method, the transient states can be expressed with Substate machines within the Idle state (e.g. the IdleSubstateMachine in 7.13)

Table 57 – GetReady Method Arguments
Argument Description
Status

0 – OK – Everything is OK

1 – E_SystemState – The system is not in correct state for this operation

2 – E_UnexpectedError – Unexpected Error during the Method call

3 – E_ActiveAlarm – An Active Alarm prevents the system start

4 – E_AcknowledgeRequired – Condition needs to be acknowledged

<0 – shall be used for vendor-specific errors.

>0 – are reserved for errors defined by this and future standards

The possible Method result codes are formally defined in Table 58

Table 58 – Method Result Codes (defined in Call Service)
Result Code Description
GoodThe system level operation succeeded
Bad_InternalErrorThe system level operation failed because of an internal error
Bad_ResourceUnavailableThe Method is locked by another Client/Clientgroup
Bad_UserAccessDeniedThe caller is not allowed to call this Method.

The Start Method representation in the AddressSpace is formally defined in Table 59.

Table 59 – GetReady Method AddressSpace definition
Attribute Value
BrowseNameGetReady
References NodeClass BrowseName DataType TypeDefinition Others
0:HasPropertyVariable0:OutputArguments0:Argument[]0:PropertyTypeM
ConformanceUnits
Rob System Operation

7.12.4 StandDown Method

The signature of this Method is specified below.

Signature

	StandDown (
	[out]	0:Int32	Status
	);

The StandDown method allows an authorized Client to request the system to:

transition from the Ready state to the Idle state or

cancel an ongoing preparation of the system and causes the IdleToIdle transition.

Table 60 – StandDown Method Arguments
Argument Description
Status

0 – OK – Everything is OK

1 – E_SystemState – The system is not in correct state for this operation

2 – E_UnexpectedError – Unexpected Error during the Method call

<0 – shall be used for vendor-specific errors.

>0 – are reserved for errors defined by this and future standards

In conjunction with the usage of this method, the transient states can be expressed with Substate machines within the Idle state (e.g. the IdleSubstateMachine in 7.13)

The possible Method result codes are formally defined in Table 61.

Table 61 – Method Result Codes (defined in Call Service)
Result Code Description
GoodThe system level operation succeeded
Bad_InternalErrorThe system level operation failed because of an internal error
Bad_ResourceUnavailableThe Method is locked by another Client/Clientgroup
Bad_UserAccessDeniedThe caller is not allowed to call this Method.

The StandDown Method representation in the AddressSpace is formally defined in Table 62.

Table 62 – StandDown Method AddressSpace definition
Attribute Value
BrowseNameStandDown
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:OutputArguments0:Argument[]0:PropertyTypeM
ConformanceUnits
Rob System Operation