The PubSubState is used to expose and control the operation of a PubSub component. It is an enumeration of the possible states. The enumeration values are described in Table 1.
Table 1 – PubSubState values
|Disabled||0||The PubSub component is configured but currently disabled.|
|Paused||1||The PubSub component is enabled but currently paused by a parent component. The parent component is either Disabled or Paused.|
|Operational||2||The PubSub component is operational.|
|Error||3||The PubSub component is in an error state.|
|PreOperational||4||The PubSub component is enabled but currently in the process to execute the steps necessary to enter the Operational state.|
Figure 21 depicts the PubSub components that have a PubSub state and their parent-child relationship. State changes of children are based on changes of the parent state. The root of the hierarchy is the PublishSubscribe component.
Figure 21 – PubSub component state dependencies
Figure 22 describes the formal state machine with the possible transitions.
Figure 22 – PubSubState state machine
Table 2 formally defines the transitions of the state machine.
Table 2 – PubSubState state machine
|Source State||Target State||Trigger Description|
|Disabled||Paused||The component was successfully enabled but the parent component is in the state Disabled or Paused.|
|Disabled||PreOperational||The component was successfully enabled.|
|Paused||Disabled||The component was successfully disabled.|
|Paused||PreOperational||The state of the parent component changed to Operational.|
|PreOperational||Operational||The component completed the steps necessary to enter the Operational state.If the PubSub component is a DataSetReader, the state shall change to Operational after the first key frame or event DataSetMessage was received.|
|PreOperational||Disabled||The component was successfully disabled.|
|PreOperational||Paused||The state of the parent component changed to Disabled or Paused.|
|PreOperational||Error||There is a pending error situation for the related PubSub component.|
|Operational||Disabled||The component was successfully disabled.|
|Operational||Paused||The state of the parent component changed to Disabled or Paused.|
|Operational||Error||There is a pending error situation for the related PubSub component.|
|Error||Disabled||The component was successfully disabled.|
|Error||Paused||The state of the parent component changed to Disabled or Paused.|
|Error||Operational||The error situation was resolved for the related PubSub component.|
|Error||PreOperational||The error situation was resolved for the related PubSub component.|
The PubSubState representation in the AddressSpace is defined in Table 3.
Table 3 – PubSubState definition
|Subtype of Enumeration defined in OPC 10000-5|
|PubSub Model Base|