7.2.4 LaserSystemState_StateMachine ObjectType DefinitionInstances of the LaserSystemState_StateMachine are used to quickly indicate the current state of a laser system. This is done using a FiniteStateMachine as defined in OPC 10000-16. The chosen states (see Figure 7 ) are generalized and not manufacturer specific, to allow a wide variety of laser systems to be represented by this state machine. Furthermore, manufacturers can extend this state machine by further substates. Since the intention of this specification is not to restrict the transitions between the states, the state machine defines transitions between all states. Instances might restrict the usage of the defined states and transitions. An overview of the state machine is given in Figure 7 , this is complimented by model overview in Figure 8 and the LaserSystemState_StateMachine is formally defined in Table 22 .
Figure 7 - LaserSystemState_StateMachine general overview Figure 8 - LaserSystemState_StateMachine model overview
Figure 8 depicts how the LaserSystemState_StateMachineType is derived from the FiniteStateMachineType as defined in OPC 10000-16.
Table 22 - LaserSystemState_StateMachineType Definition
Attribute
Value
BrowseName LaserSystemState_StateMachineType IsAbstract False
References
Node Class
BrowseName
DataType
TypeDefinition
Other
Subtype of the 0:FiniteStateMachineType defined in OPC 10000-16, i.e. inheriting the InstanceDeclarations of that Node. 0:HasProperty Variable 0:DefaultInstanceBrowseName 0:QualifiedName 0:PropertyType 0:HasComponent Object Off 0:StateType 0:HasComponent Object EnergySaving 0:StateType 0:HasComponent Object Idle 0:StateType 0:HasComponent Object SetUp 0:StateType 0:HasComponent Object LaserReady 0:StateType 0:HasComponent Object Maintenance 0:StateType 0:HasComponent Object Error 0:StateType 0:HasComponent Object LaserOn 0:StateType 0:HasComponent Object FromOffToOff 0:TransitionType 0:HasComponent Object FromOffToEnergySaving 0:TransitionType 0:HasComponent Object FromOffToIdle 0:TransitionType 0:HasComponent Object FromOffToSetUp 0:TransitionType 0:HasComponent Object FromOffToLaserReady 0:TransitionType 0:HasComponent Object FromOffToMaintenance 0:TransitionType 0:HasComponent Object FromOffToError 0:TransitionType 0:HasComponent Object FromOffToLaserOn 0:TransitionType 0:HasComponent Object FromEnergySavingToOff 0:TransitionType 0:HasComponent Object FromEnergySavingToEnergySaving 0:TransitionType 0:HasComponent Object FromEnergySavingToIdle 0:TransitionType 0:HasComponent Object FromEnergySavingToSetUp 0:TransitionType 0:HasComponent Object FromEnergySavingToLaserReady 0:TransitionType 0:HasComponent Object FromEnergySavingToMaintenance 0:TransitionType 0:HasComponent Object FromEnergySavingToError 0:TransitionType 0:HasComponent Object FromEnergySavingToLaserOn 0:TransitionType 0:HasComponent Object FromIdleToOff 0:TransitionType 0:HasComponent Object FromIdleToEnergySaving 0:TransitionType 0:HasComponent Object FromIdleToIdle 0:TransitionType 0:HasComponent Object FromIdleToSetUp 0:TransitionType 0:HasComponent Object FromIdleToLaserReady 0:TransitionType 0:HasComponent Object FromIdleToMaintenance 0:TransitionType 0:HasComponent Object FromIdleToError 0:TransitionType 0:HasComponent Object FromIdleToLaserOn 0:TransitionType 0:HasComponent Object FromSetUpToOff 0:TransitionType 0:HasComponent Object FromSetUpToEnergySaving 0:TransitionType 0:HasComponent Object FromSetUpToIdle 0:TransitionType 0:HasComponent Object FromSetUpToSetUp 0:TransitionType 0:HasComponent Object FromSetUpToLaserReady 0:TransitionType 0:HasComponent Object FromSetUpToMaintenance 0:TransitionType 0:HasComponent Object FromSetUpToError 0:TransitionType 0:HasComponent Object FromSetUpToLaserOn 0:TransitionType 0:HasComponent Object FromLaserReadyToOff 0:TransitionType 0:HasComponent Object FromLaserReadyToEnergySaving 0:TransitionType 0:HasComponent Object FromLaserReadyToIdle 0:TransitionType 0:HasComponent Object FromLaserReadyToSetUp 0:TransitionType 0:HasComponent Object FromLaserReadyToLaserReady 0:TransitionType 0:HasComponent Object FromLaserReadyToMaintenance 0:TransitionType 0:HasComponent Object FromLaserReadyToError 0:TransitionType 0:HasComponent Object FromLaserReadyToLaserOn 0:TransitionType 0:HasComponent Object FromMaintenanceToOff 0:TransitionType 0:HasComponent Object FromMaintenanceToEnergySaving 0:TransitionType 0:HasComponent Object FromMaintenanceToIdle 0:TransitionType 0:HasComponent Object FromMaintenanceToSetUp 0:TransitionType 0:HasComponent Object FromMaintenanceToLaserReady 0:TransitionType 0:HasComponent Object FromMaintenanceToMaintenance 0:TransitionType 0:HasComponent Object FromMaintenanceToError 0:TransitionType 0:HasComponent Object FromMaintenanceToLaserOn 0:TransitionType 0:HasComponent Object FromErrorToOff 0:TransitionType 0:HasComponent Object FromErrorToEnergySaving 0:TransitionType 0:HasComponent Object FromErrorToIdle 0:TransitionType 0:HasComponent Object FromErrorToSetUp 0:TransitionType 0:HasComponent Object FromErrorToLaserReady 0:TransitionType 0:HasComponent Object FromErrorToMaintenance 0:TransitionType 0:HasComponent Object FromErrorToError 0:TransitionType 0:HasComponent Object FromErrorToLaserOn 0:TransitionType 0:HasComponent Object FromLaserOnToOff 0:TransitionType 0:HasComponent Object FromLaserOnToEnergySaving 0:TransitionType 0:HasComponent Object FromLaserOnToIdle 0:TransitionType 0:HasComponent Object FromLaserOnToSetUp 0:TransitionType 0:HasComponent Object FromLaserOnToLaserReady 0:TransitionType 0:HasComponent Object FromLaserOnToMaintenance 0:TransitionType 0:HasComponent Object FromLaserOnToError 0:TransitionType 0:HasComponent Object FromLaserOnToLaserOn 0:TransitionType
Conformance Units
LaserSystems LaserSystemState_StateMachineType Basic
The States and Transitions define a StateMachine as shown in Figure 7 . It does not define an initial State , i.e., the initial State is vendor-specific.
Note: None of the States or Transitions have a ModellingRule, i.e., they are only provided in the TypeDefinition, not on the instance. The CurrentState Variable (inherited from StateMachineType) contains the information of the current State of the instance.
Off is the state used to represent when a laser system is either completely shut down or in a system state below EnergySaving and thus very close to completely shut down (e.g., deep hibernation).
Note: In the Off state the OPC UA server of the laser system might actually not be reachable by an OPC UA client. However, by setting the Off state as part of the shutdown procedure an already connected client would know the last state was the Off state indicating that a normal shut down procedure was executed.
EnergySaving indicates that the energy consumption of the laser system is deliberately reduced. This can indicate a wide array of system states, reaching from close to the Off state (e.g., hibernation) to merely one or two elements of a laser system (e.g., a coolant pump) having reduced their power consumption.
Idle indicates that the laser system is not in an EnergySaving state, passively running while no preparing to achieve the LaserOn state and is thus also not in the SetUp state.
SetUp indicates that the system is currently actively doing something (e.g., bringing components to operating temperature) in order to achieve the LaserReady state.
LaserReady indicates that the laser system is merely missing a trigger before actively emitting radiation.
Maintenance indicates all states where the system is currently not able to operate due to for example software updates or hardware checkups.
Error indicates all states in which the system can currently not operate as an error is present. A closer description of the error can be taken form object instances described in chapter 7.3 .
LaserOn is the only state in which the laser system is actively emitting radiation.
The components of the LaserSystemState_StateMachineType have additional references which are defined in Table 23 .
Table 23 - LaserSystemState_StateMachineType Additional References
SourceBrowsePath
Reference Type
Is Forward
TargetBrowsePath
FromOffToOff 0:FromState True Off 0:ToState True Off FromOffToEnergySaving 0:FromState True Off 0:ToState True EnergySaving FromOffToIdle 0:FromState True Off 0:ToState True Idle FromOffToSetUp 0:FromState True Off 0:ToState True SetUp FromOffToLaserReady 0:FromState True Off 0:ToState True LaserReady FromOffToMaintenance 0:FromState True Off 0:ToState True Maintenance FromOffToError 0:FromState True Off 0:ToState True Error FromOffToLaserOn 0:FromState True Off 0:ToState True LaserOn FromEnergySavingToOff 0:FromState True EnergySaving 0:ToState True Off FromEnergySavingToEnergySaving 0:FromState True EnergySaving 0:ToState True EnergySaving FromEnergySavingToIdle 0:FromState True EnergySaving 0:ToState True Idle FromEnergySavingToSetUp 0:FromState True EnergySaving 0:ToState True SetUp FromEnergySavingToLaserReady 0:FromState True EnergySaving 0:ToState True LaserReady FromEnergySavingToMaintenance 0:FromState True EnergySaving 0:ToState True Maintenance FromEnergySavingToError 0:FromState True EnergySaving 0:ToState True Error FromEnergySavingToLaserOn 0:FromState True EnergySaving 0:ToState True LaserOn FromIdleToOff 0:FromState True Idle 0:ToState True Off FromIdleToEnergySaving 0:FromState True Idle 0:ToState True EnergySaving FromIdleToIdle 0:FromState True Idle 0:ToState True Idle FromIdleToSetUp 0:FromState True Idle 0:ToState True SetUp FromIdleToLaserReady 0:FromState True Idle 0:ToState True LaserReady FromIdleToMaintenance 0:FromState True Idle 0:ToState True Maintenance FromIdleToError 0:FromState True Idle 0:ToState True Error FromIdleToLaserOn 0:FromState True Idle 0:ToState True LaserOn FromSetUpToOff 0:FromState True SetUp 0:ToState True Off FromSetUpToEnergySaving 0:FromState True SetUp 0:ToState True EnergySaving FromSetUpToIdle 0:FromState True SetUp 0:ToState True Idle FromSetUpToSetUp 0:FromState True SetUp 0:ToState True SetUp FromSetUpToLaserReady 0:FromState True SetUp 0:ToState True LaserReady FromSetUpToMaintenance 0:FromState True SetUp 0:ToState True Maintenance FromSetUpToError 0:FromState True SetUp 0:ToState True Error FromSetUpToLaserOn 0:FromState True SetUp 0:ToState True LaserOn FromLaserReadyToOff 0:FromState True LaserReady 0:ToState True Off FromLaserReadyToEnergySaving 0:FromState True LaserReady 0:ToState True EnergySaving FromLaserReadyToIdle 0:FromState True LaserReady 0:ToState True Idle FromLaserReadyToSetUp 0:FromState True LaserReady 0:ToState True SetUp FromLaserReadyToLaserReady 0:FromState True LaserReady 0:ToState True LaserReady FromLaserReadyToMaintenance 0:FromState True LaserReady 0:ToState True Maintenance FromLaserReadyToError 0:FromState True LaserReady 0:ToState True Error FromLaserReadyToLaserOn 0:FromState True LaserReady 0:ToState True LaserOn FromMaintenanceToOff 0:FromState True Maintenance 0:ToState True Off FromMaintenanceToEnergySaving 0:FromState True Maintenance 0:ToState True EnergySaving FromMaintenanceToIdle 0:FromState True Maintenance 0:ToState True Idle FromMaintenanceToSetUp 0:FromState True Maintenance 0:ToState True SetUp FromMaintenanceToLaserReady 0:FromState True Maintenance 0:ToState True LaserReady FromMaintenanceToMaintenance 0:FromState True Maintenance 0:ToState True Maintenance FromMaintenanceToError 0:FromState True Maintenance 0:ToState True Error FromMaintenanceToLaserOn 0:FromState True Maintenance 0:ToState True LaserOn FromErrorToOff 0:FromState True Error 0:ToState True Off FromErrorToEnergySaving 0:FromState True Error 0:ToState True EnergySaving FromErrorToIdle 0:FromState True Error 0:ToState True Idle FromErrorToSetUp 0:FromState True Error 0:ToState True SetUp FromErrorToLaserReady 0:FromState True Error 0:ToState True LaserReady FromErrorToMaintenance 0:FromState True Error 0:ToState True Maintenance FromErrorToError 0:FromState True Error 0:ToState True Error FromErrorToLaserOn 0:FromState True Error 0:ToState True LaserOn FromLaserOnToOff 0:FromState True LaserOn 0:ToState True Off FromLaserOnToEnergySaving 0:FromState True LaserOn 0:ToState True EnergySaving FromLaserOnToIdle 0:FromState True LaserOn 0:ToState True Idle FromLaserOnToSetUp 0:FromState True LaserOn 0:ToState True SetUp FromLaserOnToLaserReady 0:FromState True LaserOn 0:ToState True LaserReady FromLaserOnToMaintenance 0:FromState True LaserOn 0:ToState True Maintenance FromLaserOnToError 0:FromState True LaserOn 0:ToState True Error FromLaserOnToLaserOn 0:FromState True LaserOn 0:ToState True LaserOn
The component Variables of the LaserSystemState_StateMachineType have additional Attributes defined in Table 24
Table 24 - LaserSystemState_StateMachineType Attribute Values for child nodes
Source Path
Value Attribute
Description Attribute
0:DefaultInstanceBrowseName LaserSystemState The default BrowseName for instances of the type Off The laser system is currently off or very close to off EnergySaving The laser system is actively reducing its energy consumption Idle The laser system is operational but not perusing any activities to achieve the LaserReady state SetUp The laser system is performing activities to achieve the LaserReady state LaserReady The laser system is ready and is merely missing a trigger to actively emit radiation Maintenance The laser system is currently not operational as maintenance is being performed on it Error The laser system is not operational as it is in an error state LaserOn The laser system is actively emitting radiation
0 EnergySaving 0:StateNumber
1
2
3
4
5
6
7 FromOffToOff 0:TransitionNumber
0 FromOffToEnergySaving 0:TransitionNumber
1 FromOffToIdle 0:TransitionNumber
2 FromOffToSetUp 0:TransitionNumber
3 FromOffToLaserReady 0:TransitionNumber
4 FromOffToMaintenance 0:TransitionNumber
5 FromOffToError 0:TransitionNumber
6 FromOffToLaserOn 0:TransitionNumber
7 FromEnergySavingToOff 0:TransitionNumber
8 FromEnergySavingToEnergySaving 0:TransitionNumber
9 FromEnergySavingToIdle 0:TransitionNumber
10 FromEnergySavingToSetUp 0:TransitionNumber
11 FromEnergySavingToLaserReady 0:TransitionNumber
12 FromEnergySavingToMaintenance 0:TransitionNumber
13 FromEnergySavingToError 0:TransitionNumber
14 FromEnergySavingToLaserOn 0:TransitionNumber
15 FromIdleToOff 0:TransitionNumber
16 FromIdleToEnergySaving 0:TransitionNumber
17 FromIdleToIdle 0:TransitionNumber
18 FromIdleToSetUp 0:TransitionNumber
19 FromIdleToLaserReady 0:TransitionNumber
20 FromIdleToMaintenance 0:TransitionNumber
21 FromIdleToError 0:TransitionNumber
22 FromIdleToLaserOn 0:TransitionNumber
23 FromSetUpToOff 0:TransitionNumber
24 FromSetUpToEnergySaving 0:TransitionNumber
25 FromSetUpToIdle 0:TransitionNumber
26 FromSetUpToSetUp 0:TransitionNumber
27 FromSetUpToLaserReady 0:TransitionNumber
28 FromSetUpToMaintenance 0:TransitionNumber
29 FromSetUpToError 0:TransitionNumber
30 FromSetUpToLaserOn 0:TransitionNumber
31 FromLaserReadyToOff 0:TransitionNumber
32 FromLaserReadyToEnergySaving 0:TransitionNumber
33 FromLaserReadyToIdle 0:TransitionNumber
34 FromLaserReadyToSetUp 0:TransitionNumber
35 FromLaserReadyToLaserReady 0:TransitionNumber
36 FromLaserReadyToMaintenance 0:TransitionNumber
37 FromLaserReadyToError 0:TransitionNumber
38 FromLaserReadyToLaserOn 0:TransitionNumber
39 FromMaintenanceToOff 0:TransitionNumber
40 FromMaintenanceToEnergySaving 0:TransitionNumber
41 FromMaintenanceToIdle 0:TransitionNumber
42 FromMaintenanceToSetUp 0:TransitionNumber
43 FromMaintenanceToLaserReady 0:TransitionNumber
44 FromMaintenanceToMaintenance 0:TransitionNumber
45 FromMaintenanceToError 0:TransitionNumber
46 FromMaintenanceToLaserOn 0:TransitionNumber
47 FromErrorToOff 0:TransitionNumber
48 FromErrorToEnergySaving 0:TransitionNumber
49 FromErrorToIdle 0:TransitionNumber
50 FromErrorToSetUp 0:TransitionNumber
51 FromErrorToLaserReady 0:TransitionNumber
52 FromErrorToMaintenance 0:TransitionNumber
53 FromErrorToError 0:TransitionNumber
54 FromErrorToLaserOn 0:TransitionNumber
55 FromLaserOnToOff 0:TransitionNumber
56 FromLaserOnToEnergySaving 0:TransitionNumber
57 FromLaserOnToIdle 0:TransitionNumber
58 FromLaserOnToSetUp 0:TransitionNumber
59 FromLaserOnToLaserReady 0:TransitionNumber
60 FromLaserOnToMaintenance 0:TransitionNumber
61 FromLaserOnToError 0:TransitionNumber
62 FromLaserOnToLaserOn 0:TransitionNumber
63