Instances 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.

image012.png

Figure 7 – LaserSystemState_StateMachine general overview

image013.png

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

Off

0:StateNumber

0

EnergySaving

0:StateNumber

1

Idle

0:StateNumber

2

SetUp

0:StateNumber

3

LaserReady

0:StateNumber

4

Maintenance

0:StateNumber

5

Error

0:StateNumber

6

LaserOn

0:StateNumber

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