7.1 Type for Devices, Components and FunctionalUnits

7.1.1 LADSDeviceType ObjectType Definition

The LADSDeviceType provides a base class for Laboratory and Analytical Devices. It is formally defined in Table 15.

Table 15 – LADSDeviceType Definition
Attribute Value
BrowseNameLADSDeviceType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the DeviceType defined in OPC 10000-100
0:HasAddInObject4:ComponentsLADSComponentsTypeO
0:HasComponentObjectFunctionalUnitSetFunctionalUnitSetTypeM
0:HasPropertyVariable3:HierarchicalLocation0:String0:PropertyTypeO
0:HasAddInObject2:Identification4:MachineIdentificationTypeM
0:HasPropertyVariable3:OperationalLocation0:String0:PropertyTypeO
0:HasComponentObjectDeviceStateLADSDeviceStateMachineTypeM
0:HasComponentObjectMaintenanceMaintenanceSetTypeO
0:OrganizesObject4:MachineryBuildingBlocks0:FolderTypeO
0:HasAddInObject4:MachineryItemState4:MachineryItemState_StateMachineTypeO
0:HasAddInObject4:MachineryOperationModeLADSOperationModeStateMachineTypeO
0:HasAddInObject2:OperationCounters4:MachineryOperationCounterTypeO
0:HasAddInObject4:LifetimeCounters4:MachineryLifetimeCounterTypeO
Conformance Units
LADS LADSDeviceType

Components is a generic set of identifiable sub-components of the Device as mandated by OPC 40001-1.

FunctionalUnitSet contains the Functional Units of this Device.

HierarchicalLocation provides the hierarchical location of the LADS Device. The structure within the string may expose several levels. How this is exposed, which delimiters are used, etc. is vendor specific. Examples of such strings are “FactoryA/BuildingC/Floor1” or “Area1-ProcessCell17-Unit4” (see OPC UA OPC 10000-110 for more details).

OperationalLocation provides the operational location of the LADS Device. The structure within the string may expose several levels. How this is exposed, which delimiters are used, etc. is vendor specific. Examples of such strings are “Warehouse1/Sheet3” or “StainlessSteelTote3” (see OPC UA OPC 10000-110 for more details).

Recommendations for both hierarchical and operational locations have been proposed:

For instances where the location definition encompasses multiple levels, these levels should be separated by the delimiter character "/". An instance of a location definition with multiple levels separated by the delimiting character "/" is "US-NY-NYC-Building101/Floor35/Room10.1".

For additional use cases not covered by the aforementioned properties, it is recommended to employ the additional location formats NmeaCoordinateString, LocalCoordinate, and WGS84Coordinate as delineated in the OPC UA for AutoId Devices Release 1.01.1 (2021-07-13) specification.

Identification provides properties to identify a Device.

Recommendations for the Identification:

If the device consists solely of software with no hardware, the SoftwareRevision should be provided, and the HardwareRevision should be omitted.

If the device consists solely of hardware with no software, the HardwareRevision should be provided, and the SoftwareRevision should be omitted.

If the device consists of both hardware and software, the HardwareRevision should be provided. The SoftwareRevision should be provided if there are no device components providing a SoftwareRevision. Otherwise, the SoftwareRevision may be provided to represent the overall revision of all software components.

If a ProductInstanceUri can be created, this property should be part of the Identification.

OperationCounters for monitoring the operation of a LADSDeviceType, including parameters of the OperationCounters interface and lifetime variables (see OPC UA for Devices for more information).

DeviceState StateMachine that controls and represents the Device’s current state.

Maintenance is a set containing all maintenance tasks of a Device.

The MachineryBuildingBlocks folder contains all machinery building blocks, especially the MachineryItemState, MachineryOperationMode, OperationCounter and Lifetime Counter.

Refer to Annex B for proposed mappings between the DeviceStateMachine, the FunctionalUnit state machines, the MachineryItemState and the DeviceHealth.

MachineryItemState indicates the current state of the device and is comparable with the LADS Device state machine.

MachineryOperationMode indicates the type of Tasks being performed by the Device.

OperationCounter provides information on how long a MachineryItem has been turned on and how long it performed an activity. It uses the 2:IOperationCounterType interface and the predefined functional group 2:OperationCounters defined in OPC 10000-100.

Lifetime Counter provides information about the past and estimated remaining lifetime of a MachineryItem, or other aspects of a MachineryItem such as a software license. It is based on the 2:LifetimeVariableType defined in OPC 10000-100.

Children of the LADSDeviceType have additional References, which are defined in Table 16.

Table 16 – LADSDeviceType additional References
SourceBrowsePath Reference Type Is Forward TargetBrowsePath
4:MachineryBuildingBlocks0:HasAddInTrue

4:MachineryBuildingBlocks0:HasAddInTrue

4:MachineryBuildingBlocks0:HasAddInTrue

4:MachineryBuildingBlocks0:HasAddInTrue

4:MachineryBuildingBlocks0:HasAddInTrue

4:MachineryBuildingBlocks0:HasAddInTrue

7.1.2 LADSDeviceStateMachineType ObjectType Definition

7.1.2.1 Overview

The LADSDeviceStateMachineType state machine represents the Device’s current state. It is inspired by the AnalyserDeviceStateMachineType from the Analyzer Devices Specification.

The LADSDeviceStateMachine is depicted in Figure 15

Figure 15 – LADSDeviceStateMachine

The LADSDeviceStateMachineType is formally defined in Table 17.

Table 17 – LADSDeviceStateMachineType Definition
Attribute Value
BrowseNameLADSDeviceStateMachineType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the FiniteStateMachineType defined in OPC 10000-5
0:HasComponentMethodGotoOperateO
0:HasComponentMethodGotoShutdownO
0:HasComponentMethodGotoSleepO
0:HasComponentObjectOperateStateType
0:HasComponentObjectOperateToShutdownTransitionType
0:HasComponentObjectOperateToSleepTransitionType
0:HasComponentObjectInitializationInitialStateType
0:HasComponentObjectInitializationToOperateTransitionType
0:HasComponentObjectShutdownStateType
0:HasComponentObjectSleepStateType
0:HasComponentObjectSleepToOperateTransitionType
Conformance Units
LADS LADSDeviceStateMachineType

There are four Device states, as follows:

Initialization: The Device is in its initializing sequence and cannot perform any other Task.

Operate: The Device is in Operating mode. The LADS Client uses this mode for normal operation: configuration, control, and data collection.

Sleep: The Device is still powered on and its OPC UA Server is still running, but it is not ready to perform any Tasks until it transitions to the Operate state. This state can be used to represent a PowerSave state where a Device may shut down some of its Components, such as the GUI. It can also be used to represent a Sleep state, where a Device is running with minimal services but ready to be triggered to transition into the Operate state.

Shutdown: The Device is in its power-down sequence and cannot perform any other Task. Optionally, there are devices that can be powered off via physical means, especially simpler ones. The electronics are turned off immediately; therefore, such devices do not transition into a Shutdown state.

Note: Shutdown is the state in which the LADS Device waits for the completion of the power down sequence. Its sub-states are out of scope of the LADS specification.

Children of the LADSDeviceStateMachineType have additional References, which are defined in Table 18.

Table 18 – LADSDeviceStateMachineType additional References
SourceBrowsePath Reference Type Is Forward TargetBrowsePath
InitializationToOperate0:FromStateTrueInitialization
0:ToStateTrueOperate
0:HasEffectTrueTransitionEventType
OperateToSleep0:FromStateTrueOperate
0:ToStateTrueSleep
0:HasCauseTrueGotoSleep
0:HasEffectTrueTransitionEventType
SleepToOperate0:FromStateTrueSleep
0:ToStateTrueOperate
0:HasCauseTrueGotoOperate
0:HasEffectTrueTransitionEventType
OperateToShutdown0:FromStateTrueOperate
0:ToStateTrueShutdown
0:HasCauseTrueGotoShutdown
0:HasEffectTrueTransitionEventType

The Component Variables of the LADSDeviceStateMachineType have additional Attributes, as defined in Table 19.

Table 19 – LADSDeviceStateMachineType Attribute Values for Child Nodes
BrowsePath Value Attribute
1
2
3
4
3
4
2
1
7.1.2.2 GotoOperate

The GotoOperate Method is used to set the Device into an operating mode. The signature of this Method is specified below. Table 20 specifies its representation in the AddressSpace.

Signature

	GotoOperate ()
Table 20 – GotoOperate Method AddressSpace Definition
Attribute Value
BrowseNameGotoOperate
References Node Class BrowseName DataType TypeDefinition ModellingRule
7.1.2.3 GotoShutdown

The GotoShutdown Method is used to shut down the Device. The signature of this Method is specified below. Table 21 specifies its representation in the AddressSpace.

Signature

	GotoShutdown ()
Table 21 – GotoShutdown Method AddressSpace Definition
Attribute Value
BrowseNameGotoShutdown
References Node Class BrowseName DataType TypeDefinition ModellingRule
7.1.2.4 GotoSleep

The GotoSleep Method is used to set the Device to Sleep. The signature of this Method is specified below. Table 22 specifies its representation in the AddressSpace.

Signature

	GotoSleep ()
Table 22 – GotoSleep Method AddressSpace Definition
Attribute Value
BrowseNameGotoSleep
References Node Class BrowseName DataType TypeDefinition ModellingRule

7.1.3 LADSComponentType ObjectType Definition

Devices may be composed of tangible subcomponents. A Component is represented by the LADSComponentType. A Component itself may also have subcomponents. The LADSComponentType is formally defined in Table 23.

Table 23 – LADSComponentType Definition
Attribute Value
BrowseNameLADSComponentType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 2:ComponentType defined in OPC 10000-100
0:HasAddInObjectComponentsLADSComponentsTypeO
0:HasAddInObject 2:IdentificationM
0:HasComponentObjectMaintenanceMaintenanceSetTypeO
0:HasPropertyVariable3:OperationalLocation0:String0:PropertyTypeO
0:HasPropertyVariable3:HierarchicalLocation0:String0:PropertyTypeO
0:OrganizesObject4:MachineryBuildingBlocks0:FolderTypeO
0:HasAddInObject2:OperationCounters4:MachineryOperationCounterTypeO
0:HasAddInObject

4:LifetimeCounters

4:MachineryLifetimeCounterTypeO
0:HasInterfaceObjectType2:IDeviceHealthType
Applied from 2:IDeviceHealthType
0:HasComponentVariable2:DeviceHealth2:DeviceHealthEnumeration0:BaseDataVariableTypeO
0:HasComponentObject2:DeviceHealthAlarms0:FolderTypeO
Conformance Units
LADS LADSComponentType

Components is a generic set of identifiable subcomponents of the device as mandated by OPC 40001-1.

Identification provides the properties to identify a device.

Recommendations for Identification:

• If the Component consists solely of software with no hardware, the SoftwareRevision should be provided and the HardwareRevision should be omitted.

• If the Component consists solely of hardware with no software, the HardwareRevision should be provided and the SoftwareRevision should be omitted.

• If the Component consists of both hardware and software, the HardwareRevision should be provided. The SoftwareRevision should be provided if there are no subcomponents providing a SoftwareRevision. Otherwise, the SoftwareRevision may be provided to represent the overall revision of all software components.

HierarchicalLocation provides the hierarchical location of the LADS Device. The structure inside the string may expose several levels. How this is exposed, which delimiters are used, etc. is vendor specific. Examples of such strings are “FactoryA/BuildingC/Floor1” or “Area1-ProcessCell17-Unit4” (see OPC 10000-110 for more Details).

OperationalLocation provides the operational location of the LADS Device. The structure within the string may expose several levels. How this is exposed, which delimiters are used, etc. is vendor specific. Examples of such strings are “Warehouse1/Sheet3” or “StainlessSteelTote3” (see OPC 10000-110 for more Details).

Recommendations for both hierarchical and operational locations have been proposed:

For instances where the location definition encompasses multiple levels, these levels should be separated by the delimiter character "/". An instance of a location definition with multiple levels separated by the delimiting character "/" is "US-NY-NYC-Building101/Floor35/Room10.1".

For additional use cases not covered by the aforementioned properties, it is recommended to employ the additional location formats NmeaCoordinateString, LocalCoordinate, and WGS84Coordinate as delineated in the OPC UA for AutoId Devices Release 1.01.1 (2021-07-13) specification.

DeviceHealth indicates the health status of a Device as defined by NAMUR Recommendation NE 107 (see OPC 10000-100 for more Details).

DeviceHealthAlarms groups all instances of Device health-related Alarms.

OperationCounters for monitoring the operation of a LADSDeviceType, including parameters of the OperationCounters interface and lifetime variables (see OPC 10000-100 for more information).

Maintenance is a set containing all maintenance tasks of a Device.

The MachineryBuildingBlocks folder contains all machinery building blocks, especially the OperationCounter, and Lifetime Counter.

OperationCounter provides information on how long a MachineryItem has been turned on and how long it performed an activity. It uses the 2:IOperationCounterType interface and the predefined functional group 2:OperationCounters defined in OPC 10000-100.

Lifetime Counter provides information about the past and estimated remaining lifetime of a MachineryItem, or other aspects of a MachineryItem such as a software license. It is based on the 2:LifetimeVariableType defined in OPC 10000-100.

Children of the LADSComponentsType have additional References, which are defined in Table 24.

Table 24 – LADSComponentType additional References
SourceBrowsePath Reference Type Is Forward TargetBrowsePath
4:MachineryBuildingBlocks0:HasAddInTrue
4:MachineryBuildingBlocks0:HasAddInTrue
4:MachineryBuildingBlocks0:HasAddInTrue

7.1.4 FunctionalUnitType ObjectType Definition

The FunctionalUnitType represents a functional unit of a Laboratory or Analytical Device. It is formally defined in Table 25.

Table 25 – FunctionalUnitType Definition
Attribute Value
BrowseNameFunctionalUnitType
IsAbstractFalse
ReferencesNode ClassBrowseNameDataTypeTypeDefinitionOther
Subtype of the TopologyElementType defined in OPC 10000-100
0:HasComponentObjectProgramManagerProgramManagerTypeO
0:HasComponentObjectFunctionalUnitStateFunctionalUnitStateMachineTypeM
0:HasComponentObjectSupportedPropertiesSetSupportedPropertiesSetTypeO
0:HasComponentObjectFunctionSetFunctionSetTypeO
0:HasComponentObjectOperational1:FunctionalGroupTypeO
0:HasInterfaceObjectType2:ITagNameplateType
Implements the 2:ITagNameplateType
0:HasPropertyVariable2:AssetId0:String0:PropertyTypeO
0:HasPropertyVariable2:ComponentNameLocalizedText0:PropertyTypeO
Conformance Units
LADS FunctionalUnitType

AssetId is a user-writeable alphanumeric character sequence that uniquely identifies a FunctionalUnit (see OPC UA 10000-100).

ComponentName is a user-writeable name provided by the integrator or user of the FunctionalUnit.

FunctionSet contains the Functions of the FunctionalUnit.

Program Manager manages the programs and results of the FunctionalUnit.

FunctionalUnitState the StateMachine that is used for this FunctionalUnit.

Operational Functional Group that organizes Properties and Methods for this FunctionalUnit.

SupportedPropertiesSet provides references to variables of sub-ordinate Functions of the FunctionalUnit whose values can be specified as input Arguments when calling the FunctionalUnit.FunctionalUnitState.Start() or ProgramManager.ActiveProgram.StateMachine.Start() Methods.

7.1.5 FunctionalStateMachineType ObjectType Definition

7.1.5.1 Overview

The FunctionalStateMachineType is the top level StateMachine for the LADS ActiveProgram, FunctionalUnit or Function. The basic idea behind this architecture is that the instances of the FunctionalStateMachineType, the ActiveProgramStateMachineType, the FunctionalUnitStateMachineType and the FunctionStateMachineType use the same states, Transitions and Methods, but add their own Start Methods with different Method Signatures to trigger the StoppedToRunning Transition from a Client.

The FunctionalStateMachineType defines the available states in a LADS system.

The FunctionalStateMachineType is formally defined in Table 26. StateTypes and TransitionTypes only exist in the type system, thus they do not have a modelling rule.

The FunctionalStateMachine is depicted in Figure 16.

Figure 16 – FunctionalStateMachine
Table 26 – FunctionalStateMachineType Definition
Attribute Value
BrowseNameFunctionalStateMachineType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:FiniteStateMachineType defined in OPC 10000-5
0:HasComponentVariable0:AvailableTransitions0:NodeId[]0:BaseDataVariableTypeM
0:HasComponentVariable0:AvailableStates0:NodeId[]0:BaseDataVariableTypeM
0:HasComponentMethodAbortO
0:HasComponentObjectAbortedStateType
0:HasComponentObjectAbortedToClearingTransitionType
0:HasComponentObjectAbortingStateType
0:HasComponentObjectAbortingToAbortedTransitionType
0:HasComponentMethodClearO
0:HasComponentObjectClearingStateType
0:HasComponentObjectClearingToStoppedTransitionType
0:HasComponentObjectRunningStateType
0:HasComponentObjectRunningStateMachineRunningStateMachineTypeO
0:HasComponentObjectRunningToAbortingTransitionType
0:HasComponentObjectRunningToStoppingTransitionType
0:HasComponentMethodStopO
0:HasComponentObjectStoppedInitialStateType
0:HasComponentObjectStoppedToRunningTransitionType
0:HasComponentObjectStoppingStateType
0:HasComponentObjectStoppingToStoppedTransitionType
0:HasComponentVariable0:CurrentState0:LocalizedTextFiniteStateVariableTypeM
Conformance Units
LADS FunctionalStateMachineType

The AvailableTransitions and AvailableStates Nodes are overwritten and made Mandatory in the FunctionalStateMachineType.

Abort is a Method to trigger a change of state to Aborting. This will affect all sub-states in a cleared state.

Aborted maintains unit/device status information relevant to the Abort condition. The unit/device can only exit the Aborted state after an explicit Clear command subsequent to manual intervention to correct and reset the detected unit/device faults.

Aborting represents a state that can be entered at any time in response to the Abort command or in the event of a unit/device fault. The aborting logic will bring the unit/device to a rapid safe stop. Operation of the emergency stop will cause the unit/device to be tripped by its safety system. It will also provide a signal to initiate the Aborting state.

Clear is a Method to trigger a change of state to Cleared.

Clearing is initiated by a state command to clear faults that may have occurred when Aborting that are present in the Aborted state.

Running is the state when the ActiveProgram, Function or FunctionalUnit is currently running/executing.

RunningStateMachine is a RunningStateMachineType that details the Running state.

Stop is a Method to trigger a change of state to Stopped. This will affect all sub-states in a Run state.

Stopped is the initial state for an ActiveProgram, FunctionalUnit or Function. It is an Idle state which means that the Function, FunctionalUnit or ActiveProgram is stopped and ready for activation. It can also be used to represent a non-running state, potentially caused by an error, where the Function, FunctionalUnit or ActiveProgram can invoke the Reset() Function before starting again.

Stopping indicates that the ActiveProgram, FunctionalUnit, or Function is in the process of stopping. This state usually occurs when the program execution is finished or stopped, either because it has ended or has been triggered by the Stop Method.

The Transitions of the FunctionalStateMachineType have additional References which are defined in Table 27. This StateMachine includes the transition from Unholding to Holding, StartingUnsuspendingSuspended, and Suspending, all of which are extensions to the ISA-TR88.00.02-2015 specification.

Table 27 – FunctionalStateMachineType additional References
SourceBrowsePath Reference Type Is Forward TargetBrowsePath
AbortedToClearing0:FromStateTrueAborted
0:ToStateTrueClearing
0:HasCauseTrueClear
0:HasEffectTrueTransitionEventType
AbortingToAborted0:FromStateTrueAborting
0:ToStateTrueAborted
0:HasEffectTrueTransitionEventType
ClearingToStopped0:FromStateTrueClearing
0:ToStateTrueStopped
0:HasEffectTrueTransitionEventType
RunningToAborting0:FromStateTrueRunning
0:ToStateTrueAborting
0:HasCauseTrueAbort
0:HasEffectTrueTransitionEventType
RunningToStopping0:FromStateTrueRunning
0:ToStateTrueStopping
0:HasCauseTrueStop
0:HasEffectTrueTransitionEventType
StoppedToRunning0:FromStateTrueStopped
0:ToStateTrueRunning
0:HasEffectTrueTransitionEventType
StoppingToStopped0:FromStateTrueStopping
0:ToStateTrueStopped
0:HasEffectTrueTransitionEventType
Running0:HasSubStateMachineTrueRunningStateMachine

The Component Variables of the FunctionalStateMachineType have additional Attributes, as defined in Table 28.

Table 28 – FunctionalStateMachineType Attribute Values for Child Nodes
BrowsePath Value Attribute
1
2
3
5
4
6
1
2
4
5
6
7
8
7.1.5.2 Abort

The Abort Method switches the state machine to the Aborting state. The current process will be aborted. The signature of this Method is specified below. Table 29 specifies its representation in the AddressSpace.

Signature

	Abort ()
Table 29 – Abort Method AddressSpace Definition
Attribute Value
BrowseNameAbort
References Node Class BrowseName DataType TypeDefinition ModellingRule
7.1.5.3 Clear

The Clear Method allows an OPC UA Client to change the state of this state machine to the Cleared state. The signature of this Method is specified below. Table 30 specifies its representation in the AddressSpace.

Signature

	Clear ()
Table 30 – Clear Method AddressSpace Definition
Attribute Value
BrowseNameClear
References Node Class BrowseName DataType TypeDefinition ModellingRule
7.1.5.4 Stop

The Stop Method allows an OPC UA Client to change the state of this state machine to the Stopping state. The signature of this Method is specified below. Table 31 specifies the Arguments and AddressSpace representation.

Signature

	Stop ()
Table 31 – Stop Method AddressSpace Definition
Attribute Value
BrowseNameStop
References Node Class BrowseName DataType TypeDefinition ModellingRule

7.1.6 RunningStateMachineType ObjectType Definition

7.1.6.1 Overview

The RunningStateMachineType is a sub-state machine of the FunctionalStateMachine and includes detailed substates. It is formally defined in Table 32.

The Running StateMachine is depicted in Figure 17.

Figure 17 - RunningStateMachine
Table 32 – RunningStateMachineType Definition
Attribute Value
BrowseNameRunningStateMachineType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the FiniteStateMachineType defined in OPC 10000-5
0:HasComponentObjectCompleteStateType
0:HasComponentObjectCompleteToResettingTransitionType
0:HasComponentObjectCompletingStateType
0:HasComponentObjectCompletingToCompleteTransitionType
0:HasComponentObjectExecuteStateType
0:HasComponentObjectExecuteToCompletingTransitionType
0:HasComponentObjectExecuteToHoldingTransitionType
0:HasComponentObjectExecuteToSuspendingTransitionType
0:HasComponentObjectHeldStateType
0:HasComponentObjectHeldToUnholdingTransitionType
0:HasComponentMethodHoldO
0:HasComponentObjectHoldingStateType
0:HasComponentObjectHoldingToHeldTransitionType
0:HasComponentObjectIdleStateType
0:HasComponentObjectIdleToStartingTransitionType
0:HasComponentMethodResetO
0:HasComponentObjectResettingStateType
0:HasComponentObjectResettingToIdleTransitionType
0:HasComponentObjectStartingStateType
0:HasComponentObjectStartingToExecuteTransitionType
0:HasComponentObjectStartingToHoldingTransitionType
0:HasComponentMethodSuspendO
0:HasComponentObjectSuspendedStateType
0:HasComponentObjectSuspendedToHoldingTransitionType
0:HasComponentObjectSuspendedToUnsuspendingTransitionType
0:HasComponentObjectSuspendingStateType
0:HasComponentObjectSuspendingToHoldingTransitionType
0:HasComponentObjectSuspendingToSuspendedTransitionType
0:HasComponentMethodToCompleteO
0:HasComponentMethodUnholdO
0:HasComponentObjectUnholdingStateType
0:HasComponentObjectUnholdingToExecuteTransitionType
0:HasComponentObjectUnholdingToHoldingTransitionType
0:HasComponentMethodUnsuspendO
0:HasComponentObjectUnsuspendingStateType
0:HasComponentObjectUnsuspendingToExecuteTransitionType
0:HasComponentObjectUnsuspendingToHoldingTransitionType
Conformance Units
LADS RunningStateMachineType

Complete: Complete indicates that the process associated with the active protocol has come to its defined end. The unit/device will wait in this state until a Reset command is issued (in which case it will transition to Resetting), or until the unit/device is Stopped or Aborted.

Completing: Once the process associated with the current mode has reached a defined threshold (e.g., the required number of samples for the current job have been analysed or the cultivation/fermentation process has reached is final stage in terms of cell count, product yield, cell viability, etc.), the unit/device transitions from Execute to Completing. All steps necessary to shut down the current process are carried out in this state. The unit/device then transitions automatically to the Complete state.

Execute: The unit/device is actively carrying out the behaviour or activity defined by the selected protocol and its associated processing mode. Examples of a unit/device in processing mode include when the unit/device is performing an analytical run, cultivation/fermentation in the case of a bioreactor, or another defined unit of operation provided by the instrument (e.g., separation in the case of a centrifuge).

Held: The unit/device is paused, waiting for internal process conditions to clear. In this state, the unit/device shall not continue processing, although it may dry cycle if required (e.g., maintaining process conditions critical for the preservation of the samples or culture). A transition to Unholding will occur once internal unit/device conditions have cleared, or if the Unhold command is initiated by an operator.

Holding: The unit/device will transition from Execute to Holding if conditions internal to the unit/device require a pause in processing. Examples of such conditions include low levels of materials required for processing (e.g., consumables, reagents, buffers, etc.) or other minor issues requiring operator service. After all steps required to hold the unit/device have been completed, the unit/device will transition automatically to the Held state.

Idle: The unit/device is in an error-free state, waiting to start. The unit/device transitions automatically to Idle after all steps necessary for Resetting have been completed. All conditions achieved during Resetting are maintained. A Start command will transition the unit/device from Idle to Starting.

Resetting: In response to a Reset command, the unit/device will transition to Resetting from either Stopped or Complete. In this state the unit/device attempts to clear any standing errors or stop causes. If successful, the unit/device transitions to Idle. No hazardous motion should occur while in this state.

Starting: The unit/device completes all steps necessary to begin execution of the active protocol. Typical steps during this state include but are not limited to inspecting system setup (checking sufficient supplies of resources and consumables), priming of fluids, homing of handling systems, or equilibration of process conditions. A Start command will cause the unit/device to transition from Idle to Starting. The unit/device will transition automatically from Starting to Execute once all required steps have been completed.

Suspended: The unit/device is paused, waiting for external process conditions to clear. In this state, the unit/device shall not continue processing, but may dry cycle if required (e.g., maintaining process conditions critical for the preservation of the samples or culture, including but not limited to temperature, oxygen or pH levels, etc.). Once external conditions have returned to normal, the unit/device will transition to Unsuspending, with or without operator intervention.

Suspending: The unit/device will transition from Execute to Suspending if conditions external to the unit/device require a pause in processing. Such conditions include faults to upstream or downstream equipment. The decision to Suspend may be made by a human operator supervising the process, an automated supervisory system monitoring the conditions of the overall process line/workflow, or by unit/device Sensors detecting downstream blockages or upstream scarcity of samples, etc. (In the former case, the unit/device is ‘blocked”; in the latter case, the unit/device is “starved”.) After all steps required to suspend the unit/device have been completed, the unit/device will automatically transition to the Suspended state.

Unholding: After all internal process conditions that caused the unit/device to hold have cleared, the unit/device completes all steps required to resume execution of the active protocol. Once all required actions to unhold the unit/device have been completed, the unit/device will transition automatically to the Execute state.

Unsuspending: After all external process conditions that caused the unit/device to suspend have cleared, the unit/device completes all steps required to resume execution of the active protocol.

The children of the RunningStateMachineType have additional References, which are defined in Table 33.

Table 33 – RunningStateMachineType additional References
SourceBrowsePath Reference Type Is Forward TargetBrowsePath
IdleToStarting0:FromStateTrueIdle
0:ToStateTrueStarting
0:HasEffectTrueTransitionEventType
StartingToExecute0:FromStateTrueStarting
0:ToStateTrueExecute
0:HasEffectTrueTransitionEventType
ExecuteToCompleting0:FromStateTrueExecute
0:ToStateTrueCompleting
0:HasCauseTrueToComplete
0:HasEffectTrueTransitionEventType
CompletingToComplete0:FromStateTrueCompleting
0:ToStateTrueComplete
0:HasEffectTrueTransitionEventType
CompleteToResetting0:FromStateTrueComplete
0:ToStateTrueResetting
0:HasCauseTrueReset
0:HasEffectTrueTransitionEventType
ResettingToIdle0:FromStateTrueResetting
0:ToStateTrueIdle
0:HasEffectTrueTransitionEventType
ExecuteToSuspending0:FromStateTrueExecute
0:ToStateTrueSuspending
0:HasCauseTrueSuspend
0:HasEffectTrueTransitionEventType
SuspendingToSuspended0:FromStateTrueSuspending
0:ToStateTrueSuspended
0:HasEffectTrueTransitionEventType
UnsuspendingToExecute0:FromStateTrueUnsuspending
0:ToStateTrueExecute
0:HasEffectTrueTransitionEventType
ExecuteToHolding0:FromStateTrueExecute
0:ToStateTrueHolding
0:HasCauseTrueHold
0:HasEffectTrueTransitionEventType
HoldingToHeld0:FromStateTrueHolding
0:ToStateTrueHeld
0:HasEffectTrueTransitionEventType
HeldToUnholding0:FromStateTrueHeld
0:ToStateTrueUnholding
0:HasCauseTrueUnhold
0:HasEffectTrueTransitionEventType
UnholdingToExecute0:FromStateTrueUnholding
0:ToStateTrueExecute
0:HasEffectTrueTransitionEventType
SourceBrowsePath Reference Type Is Forward TargetBrowsePath
SuspendingToHolding0:FromStateTrueSuspending
0:ToStateTrueHolding
0:HasCauseTrueHold
0:HasEffectTrueTransitionEventType
StartingToHolding0:FromStateTrueStarting
0:ToStateTrueHolding
0:HasCauseTrueHold
0:HasEffectTrueTransitionEventType
SuspendedToHolding0:FromStateTrueSuspended
0:ToStateTrueHolding
0:HasCauseTrueHold
0:HasEffectTrueTransitionEventType
UnsuspendingToHolding0:FromStateTrueUnsuspending
0:ToStateTrueHolding
0:HasCauseTrueHold
0:HasEffectTrueTransitionEventType
UnholdingToHolding0:FromStateTrueUnholding
0:ToStateTrueHolding
0:HasCauseTrueHold
0:HasEffectTrueTransitionEventType

The Component Variables of the RunningStateMachineType have additional Attributes, as defined in Table 34.

Table 34 – RunningStateMachineType Attribute Values for Child Nodes
BrowsePath Value Attribute
1
2
3
4
5
6
7
8
9
10
11
12
1
2
5
6
7
8
9
10
11
12
BrowsePath Value Attribute
13
14
15
16
17
18
19
7.1.6.2 Hold

The Hold Method allows an OPC UA Client to change the state of this state machine to Holding. The signature of this Method is specified below. Table 35 specifies its representation in the AddressSpace.

Signature

	Hold ()
Table 35 – Hold Method AddressSpace Definition
Attribute Value
BrowseNameHold
References Node Class BrowseName DataType TypeDefinition ModellingRule
7.1.6.3 Reset

The Reset Method allows an OPC UA Client to change the state of this state machine to Resetting. The signature of this Method is specified below. Table 36 specifies its representation in the AddressSpace.

Signature

	Reset ()
Table 36 – Reset Method AddressSpace Definition
Attribute Value
BrowseNameReset
References Node Class BrowseName DataType TypeDefinition ModellingRule
7.1.6.4 Suspend

The Suspend Method allows an OPC UA Client to change the state of this state machine to the Suspending state. The signature of this Method is specified below. Table 37 specifies its representation in the AddressSpace.

Signature

	Suspend ()
Table 37 – Suspend Method AddressSpace Definition
Attribute Value
BrowseNameSuspend
References Node Class BrowseName DataType TypeDefinition ModellingRule
7.1.6.5 ToComplete

The ToComplete Method allows an OPC UA Client to change the state of this state machine to Completed. The signature of this Method is specified below. Table 38 specifies its representation in the AddressSpace.

Signature

	ToComplete ()
Table 38 – ToComplete Method AddressSpace Definition
Attribute Value
BrowseNameToComplete
References Node Class BrowseName DataType TypeDefinition ModellingRule
7.1.6.6 Unhold

The Unhold Method allows an OPC UA Client to change the state of this state machine to Unholding. The signature of this Method is specified below. Table 39 specifies its representation in the AddressSpace.

Signature

	Unhold ()
Table 39 – Unhold Method AddressSpace Definition
Attribute Value
BrowseNameUnhold
References Node Class BrowseName DataType TypeDefinition ModellingRule
7.1.6.7 Unsuspend

The Unsuspend Method allows an OPC UA Client to change the state of this state machine to Unsuspending. The signature of this Method is specified below. Table 40 specifies its representation in the AddressSpace.

Signature

	Unsuspend ()
Table 40 – Unsuspend Method AddressSpace Definition
Attribute Value
BrowseNameUnsuspend
References Node Class BrowseName DataType TypeDefinition ModellingRule

7.1.7 FunctionalUnitStateMachineType Definition

7.1.7.1 Overview

The FunctionalUnitStateMachineType represents the state of a FunctionalUnit in a LADS Device. It uses the same StateTypes and TransitionTypes as its parent but specifies the additional Start Method to trigger state changes.

The FunctionalUnitStateMachineType is formally defined in Table 41.

Table 41 – FunctionalUnitStateMachineType Definition
Attribute Value
BrowseNameFunctionalUnitStateMachineType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the FunctionalStateMachineType defined in 7.1.5
0:HasComponentMethodStartO
0:HasComponentMethodStartProgramO
Conformance Units
LADS FunctionalUnitStateMachineType

Start is used to start a FunctionalUnit with properties.

StartProgram is used to start a FunctionalUnit with a Program Template.

7.1.7.2 Start

The Start Method is used when a Client application wants to initiate/execute an/the operation of a FunctionalUnit. The Properties Argument can be used to provide an optional list of property values when initiating the operation. The listed items represent key-value pairs that conform to the OPC UA KeyValuePair core datatype. The qualified name provided via the key field must match the BrowseName of a Property member in the FunctionalUnit’s SupportedPropertySet.

The signature of this Method is specified below. Table 42 and Table 43 specify the Arguments and AddressSpace representation, respectively.

The Start Method should not be called by a Client with anonymous authentication.

Signature

	Start (
		[in]	KeyValuePair[]	Properties)
Table 42 – Start Method Arguments
Argument Description
PropertiesA set of Properties that parameterize the execution of the Functional Unit.
Table 43 – Start Method AddressSpace Definition
Attribute Value
BrowseNameStart
References Node Class BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:InputArgumentsArgument[1]0:PropertyTypeM
7.1.7.3 StartProgram

The StartProgram Method is used when a Client application wants to start running a program based on a ProgramTemplate of a FunctionalUnit. The Properties Argument can be used to provide an optional list of property values when initiating a program run. The listed items represent key-value pairs that conform to the OPC UA KeyValuePair core datatype. The qualified name provided via the key field must match the BrowseName of a Property member in the FunctionalUnit’s SupportedPropertySet.

In contrast to the Start Method, additional fixed properties must also be set.

The signature of this Method is specified below. Table 44 and Table 45 specify the Arguments and AddressSpace representation, respectively.

The Start Method should not be called by a Client with anonymous authentication.

Signature

	StartProgram (
		[in]	0:String	ProgramTemplateId
		[in]	KeyValueType[]	Properties
		[in]	0:String	SupervisoryJobId
		[in]	0:String	SupervisoryTaskId
		[in]	SampleInfoType[]	Samples
		[out]	0:String	DeviceProgramRunId)
Table 44 – StartProgram Method Arguments
Argument Description
ProgramTemplateIdThe unique identifier of the program template used for the program-run. The template must be a member of the ProgramTemplateSet.
PropertiesA Key/Value set for parameterization of the function.
SupervisoryJobIdThe SupervisoryJobId assigned to this program.
SupervisoryTaskIdThe Id of the SupervisoryTask.
SamplesAn array of the SampleInfoType that describes the samples processed in this program-run.
DeviceProgramRunIdThe Id of the created program run.
Table 45 – StartProgram Method AddressSpace Definition
Attribute Value
BrowseNameStartProgram
References Node Class BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:InputArgumentsArgument[5]0:PropertyTypeM
0:HasPropertyVariable0:OutputArgumentsArgument[1]0:PropertyTypeM

DeviceProgramRunId is the internal program identifier assigned by the Device to the program run to generate this result. It is used to identify a Result object and is returned to the Client when the StartProgram Method is called.

SupervisoryJobId is the identifier for the execution of a specific workflow, consisting of one or multiple tasks. It is provided as an Argument of the StartProgram() Method which initiates the program run.

SupervisoryTaskId is the unique identifier of the specific task in the supervisory system to which the result belongs. It is provided as an Argument of the StartProgram() Method which initiates the program run.

7.1.8 LADSComponentsType ObjectType Definition

The LADSComponentsType is used for organising LADSComponentsType objects in an unordered list structure. It is formally defined in Table 46.

Table 46 – LADSComponentsType Definition
Attribute Value
BrowseNameLADSComponentsType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the MachineComponentsType defined in OPC 40001-1
0:HasComponentObject<Component>LADSComponentTypeOP
GeneratesEventObjectTypeGeneralModelChangeEventType
0:HasPropertyVariableNodeVersion0:String0:PropertyTypeO
Conformance Units
LADS LADSComponentsType

<Components> is a placeholder for the Components.

7.1.9 LADSOperationModeStateMachineType ObjectType Definition

The LADSOperationModeStateMachineType is a subtype of 4:MachineryOperationModeStateMachineType that adds optional Methods to the statemachine. It is formally defined in Table 46.

Table 47 – LADSOperationModeStateMachineType Definition
Attribute Value
BrowseNameLADSOperationModeStateMachineType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 4:MachineryOperationModeStateMachineType
0:HasComponentMethodGotoMaintenanceO
0:HasComponentMethodGotoProcessingO
0:HasComponentMethodGotoSetupO
Conformance Units
LADS LADSOperationModeStatemachineType
7.1.9.1 GotoMaintenance

The GotoMaintenance Method brings the LADSDevice in the Maintenance state.

The signature of this Method is specified below. Table 52 specifies its representation in the AddressSpace.

Signature

	GotoMaintenance ()
Table 48 – GoToMaintenance Method AddressSpace Definition
Attribute Value
BrowseNameGotoMaintenance
References Node Class BrowseName DataType TypeDefinition ModellingRule
7.1.9.2 GotoProcessing

The GotoMaintenance Method brings the LADSDevice in the Processing state.

The signature of this Method is specified below. Table 52 specifies its representation in the AddressSpace.

Signature

	GotoProcessing ()
Table 49 – GoToProcessing Method AddressSpace Definition
Attribute Value
BrowseNameGotoProcessing
References Node Class BrowseName DataType TypeDefinition ModellingRule
7.1.9.3 GotoSetup

The GotoSetup Method brings the LADSDevice in the Setup state.

The signature of this Method is specified below. Table 52 specifies its representation in the AddressSpace.

Signature

	GotoSetup ()
Table 50 – GoToSetup Method AddressSpace Definition
Attribute Value
BrowseNameGotoSetup
References Node Class BrowseName DataType TypeDefinition ModellingRule

7.1.10 MaintenanceTaskType Definition

7.1.10.1 Overview

The MaintenanceTaskType shall be used to implement instances of maintenance tasks applicable at both the Device and Component levels. Maintenance tasks include activities such as periodic maintenance, cleaning, calibration, and validation.

Maintenance tasks for a Device shall be grouped under the Maintenance functional group present in the LADSDeviceType.

The MaintenanceTaskType is formally defined in Table 51.

Table 51 – MaintenanceTaskType Definition
Attribute Value
BrowseNameMaintenanceTaskType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the MaintenanceRequiredAlarmType defined in OPC 10000-100
0:HasPropertyVariableLastExecutionDate0:UtcTime0:PropertyTypeO
0:HasPropertyVariableLastOperatingCycles0:UInt320:PropertyTypeO
0:HasPropertyVariableLastOperatingTime0:Duration0:PropertyTypeO
0:HasPropertyVariableNextOperatingCycles0:UInt320:PropertyTypeO
0:HasPropertyVariableNextOperatingTime0:Duration0:PropertyTypeO
0:HasPropertyVariableRecurrencePeriod0:Duration0:PropertyTypeO
0:HasComponentMethodResetTaskO
0:HasComponentMethodStartTaskO
0:HasComponentMethodStopTaskO
0:HasInterfaceObjectTypeIMaintenanceEventTypeDefined in OPC 10000-110 Section 12.2
Applied from IMaintenanceEventType
0:HasPropertyVariable3:ConfigurationChanged0:Boolean0:PropertyTypeO
0:HasPropertyVariable3:EstimatedDowntime0:Duration0:PropertyTypeO
0:HasPropertyVariable3:MaintenanceMethod3:MaintenanceMethodEnum0:PropertyTypeO
0:HasComponentObject3:MaintenanceState3:MaintenanceEventStateMachineTypeM
0:HasPropertyVariable3:MaintenanceSupplier3:NameNodeIdDataType0:PropertyTypeO
0:HasPropertyVariable3:PartsOfAssetReplaced3:NameNodeIdDataType[]0:PropertyTypeO
0:HasPropertyVariable3:PartsOfAssetServiced3:NameNodeIdDataType[]0:PropertyTypeO
0:HasPropertyVariable3:PlannedDate0:UtcTime0:PropertyTypeO
0:HasPropertyVariable3:QualificationOfPersonnel3:NameNodeIdDataType0:PropertyTypeO
Conformance Units
LADS MaintenanceTaskType

LastExecutionDate is the date when the Task was last performed. Optional, as the Task may have never run before.

LastOperatingCycles is the number of cycles during the operating time (as defined in Section 9.3 of EN 13306-2017) recorded at the time of the last execution of the Task.

LastOperatingTime is the total amount of operating time (as defined in Section 9.3 of EN 13306-2017) in milliseconds (ms) by the Device at the time of the last execution of the Task.

NextOperatingCycles is the number of cycles during operating time (as defined in Section 9.3 of EN 13306-2017) to be completed before the next execution of the Task.

NextOperatingTime is the total amount of operating time (as defined in Section 9.3 of EN 13306-2017) in milliseconds (ms) by the Device before the next execution of the Task.

RecurrencePeriod is the period of repetition of the Task, specified in milliseconds. Optional, as not all Tasks have a recurrence period.

ResetTask Method resets the condition of the Task so that it is ready to be re-run.

Start Method starts the execution of the Task.

Stop Method stops the execution of the Task.

7.1.10.2 ResetTask

The ResetTask Method resets the execution of the Task so that it is ready to be re-run.

Optional, as instruments may not support resetting a maintenance task via a method call. The same effect can be achieved by means of a device-specific control.

Upon successful execution of the ResetTask Method, the MaintenanceState shall be changed to Planned and an accompanying event shall be raised. Also, the ActiveState and AckState properties are set to “False”.

The signature of this Method is specified below. Table 52 specifies its representation in the AddressSpace.

Signature

	ResetTask ()
Table 52 – ResetTask Method AddressSpace Definition
Attribute Value
BrowseNameReset
References Node Class BrowseName DataType TypeDefinition ModellingRule
7.1.10.3 StartTask

The Start Method starts the execution of the Task.

Optional, as instruments may not support starting a maintenance task via a method call. The same effect can be achieved by means of a device-specific control.

Upon successful execution of the Start Method, the MaintenanceState shall be changed to Executing and an accompanying event shall be raised.

The signature of this Method is specified below. Table 53 specifies its representation in the AddressSpace.

Signature

	StartTask ()
Table 53 – StartTask Method AddressSpace Definition
Attribute Value
BrowseNameStartTask
References Node Class BrowseName DataType TypeDefinition ModellingRule
7.1.10.4 StopTask

The StopTask Method stops of the execution of the task.

Optional, as instruments may not support aborting the task via a method call. The same effect can be achieved by means of a device-specific control.

It includes 2 optional input parameters: MaintenanceTaskStopResult and Comment to document the outcome of the maintenance task.

Upon successful execution of the Stop Method, the MaintenanceState shall be changed to Finished and an accompanying event shall be raised. Also, the ActiveState and AckState properties are set to “False”.

The signature of this Method is specified below. Table 54 and Table 55 specify the Arguments and AddressSpace representation, respectively.

Signature

	StopTask (
		[in]	MaintenanceTaskResultEnum	MaintenanceTaskStopResult,
		[in]	LocalizedText	Comment)
Table 54 – StopTask Method Arguments
Argument Description
MaintenanceTaskStopResultGive the reason why the task is stopped.
CommentAdd an additional comment to describe the call
Table 55 – StopTask Method AddressSpace Definition
Attribute Value
BrowseNameStopTask
References Node Class BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory