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

Table 15 – LADSDeviceType Definition

Attribute

Value

BrowseName

LADSDeviceType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the DeviceType defined in OPC 10000-100

0:HasAddIn

Object

4:Components

LADSComponentsType

O

0:HasComponent

Object

FunctionalUnitSet

FunctionalUnitSetType

M

0:HasProperty

Variable

3:HierarchicalLocation

0:String

0:PropertyType

O

0:HasAddIn

Object

2:Identification

4:MachineIdentificationType

M

0:HasProperty

Variable

3:OperationalLocation

0:String

0:PropertyType

O

0:HasComponent

Object

DeviceState

LADSDeviceStateMachineType

M

0:HasComponent

Object

Maintenance

MaintenanceSetType

O

0:Organizes

Object

4:MachineryBuildingBlocks

0:FolderType

O

0:HasAddIn

Object

4:MachineryItemState

4:MachineryItemState_StateMachineType

O

0:HasAddIn

Object

4:MachineryOperationMode

LADSOperationModeStateMachineType

O

0:HasAddIn

Object

2:OperationCounters

4:MachineryOperationCounterType

O

0:HasAddIn

Object

4:LifetimeCounters

4:MachineryLifetimeCounterType

O

Conformance Units

LADS LADSDeviceType

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

Note: The BrowseName of Components does not follow the naming conventions of this spec (should be ComponentSet). This is for harmonization with the Machinery Specification.

FunctionalUnitSet contains the Functional Units of this Device.

HierarchicalLocation pro vides 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 pro vides 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:MachineryBuildingBlocks

0:HasAddIn

True

LADSDeviceType

4:MachineryItemState

4:MachineryBuildingBlocks

0:HasAddIn

True

LADSDeviceType

4:MachineryOperationMode

4:MachineryBuildingBlocks

0:HasAddIn

True

LADSDeviceType

2:OperationCounters

4:MachineryBuildingBlocks

0:HasAddIn

True

LADSDeviceType

4:LifetimeCounters

4:MachineryBuildingBlocks

0:HasAddIn

True

LADSDeviceType

4:Components

4:MachineryBuildingBlocks

0:HasAddIn

True

LADSDeviceType

2:Identification

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

image019.png

Figure 15 – LADSDeviceStateMachine

The LADSDeviceStateMachineType is formally defined in Table 17.

Table 17 – LADSDeviceStateMachineType Definition

Attribute

Value

BrowseName

LADSDeviceStateMachineType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the FiniteStateMachineType defined in OPC 10000-5

0:HasComponent

Method

GotoOperate

O

0:HasComponent

Method

GotoShutdown

O

0:HasComponent

Method

GotoSleep

O

0:HasComponent

Object

Operate

StateType

0:HasComponent

Object

OperateToShutdown

TransitionType

0:HasComponent

Object

OperateToSleep

TransitionType

0:HasComponent

Object

Initialization

InitialStateType

0:HasComponent

Object

InitializationToOperate

TransitionType

0:HasComponent

Object

Shutdown

StateType

0:HasComponent

Object

Sleep

StateType

0:HasComponent

Object

SleepToOperate

TransitionType

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: Initialization is the state in which the LADS Device waits for the completion of the power-up setup. Its sub-states are out of scope of the LADS specification.

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

InitializationToOperate

0:FromState

True

Initialization

0:ToState

True

Operate

0:HasEffect

True

TransitionEventType

OperateToSleep

0:FromState

True

Operate

0:ToState

True

Sleep

0:HasCause

True

GotoSleep

0:HasEffect

True

TransitionEventType

SleepToOperate

0:FromState

True

Sleep

0:ToState

True

Operate

0:HasCause

True

GotoOperate

0:HasEffect

True

TransitionEventType

OperateToShutdown

0:FromState

True

Operate

0:ToState

True

Shutdown

0:HasCause

True

GotoShutdown

0:HasEffect

True

TransitionEventType

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

Initialization

0:StateNumber

1

Operate

0:StateNumber

2

Sleep

0:StateNumber

3

Shutdown

0:StateNumber

4

SleepToOperate

0:TransitionNumber

3

OperateToShutdown

0:TransitionNumber

4

OperateToSleep

0:TransitionNumber

2

InitializationToOperate

0:TransitionNumber

1

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

BrowseName

GotoOperate

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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

BrowseName

GotoShutdown

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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

BrowseName

GotoSleep

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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

BrowseName

LADSComponentType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the 2:ComponentType defined in OPC 10000-100

0:HasAddIn

Object

Components

LADSComponentsType

O

0:HasAddIn

Object

2:Identification

M

0:HasComponent

Object

Maintenance

MaintenanceSetType

O

0:HasProperty

Variable

3:OperationalLocation

0:String

0:PropertyType

O

0:HasProperty

Variable

3:HierarchicalLocation

0:String

0:PropertyType

O

0:Organizes

Object

4:MachineryBuildingBlocks

0:FolderType

O

0:HasAddIn

Object

2:OperationCounters

4:MachineryOperationCounterType

O

0:HasAddIn

Object

4:LifetimeCounters

4:MachineryLifetimeCounterType

O

0:HasInterface

ObjectType

2:IDeviceHealthType

Applied from 2:IDeviceHealthType

0:HasComponent

Variable

2:DeviceHealth

2:DeviceHealthEnumeration

0:BaseDataVariableType

O

0:HasComponent

Object

2:DeviceHealthAlarms

0:FolderType

O

Conformance Units

LADS LADSComponentType

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

Note: The BrowseName of Components does not follow the naming conventions of this spec (should be ComponentSet). This is for harmonization with the Machinery Specification.

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 pro vides 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:MachineryBuildingBlocks

0:HasAddIn

True

LADSComponentType

2:OperationCounters

4:MachineryBuildingBlocks

0:HasAddIn

True

LADSComponentType

4:LifetimeCounters

4:MachineryBuildingBlocks

0:HasAddIn

True

LADSComponentType

4:Components

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

BrowseName

FunctionalUnitType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the TopologyElementType defined in OPC 10000-100

0:HasComponent

Object

ProgramManager

ProgramManagerType

O

0:HasComponent

Object

FunctionalUnitState

FunctionalUnitStateMachineType

M

0:HasComponent

Object

SupportedPropertiesSet

SupportedPropertiesSetType

O

0:HasComponent

Object

FunctionSet

FunctionSetType

O

0:HasComponent

Object

Operational

1:FunctionalGroupType

O

0:HasInterface

ObjectType

2:ITagNameplateType

Implements the 2:ITagNameplateType

0:HasProperty

Variable

2:AssetId

0:String

0:PropertyType

O

0:HasProperty

Variable

2:ComponentName

LocalizedText

0:PropertyType

O

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.

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 s tates, 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.

image020.png

Figure 16 – FunctionalStateMachine

Table 26 – FunctionalStateMachineType Definition

Attribute

Value

BrowseName

FunctionalStateMachineType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the 0:FiniteStateMachineType defined in OPC 10000-5

0:HasComponent

Variable

0:AvailableTransitions

0:NodeId[]

0:BaseDataVariableType

M

0:HasComponent

Variable

0:AvailableStates

0:NodeId[]

0:BaseDataVariableType

M

0:HasComponent

Method

Abort

O

0:HasComponent

Object

Aborted

StateType

0:HasComponent

Object

AbortedToClearing

TransitionType

0:HasComponent

Object

Aborting

StateType

0:HasComponent

Object

AbortingToAborted

TransitionType

0:HasComponent

Method

Clear

O

0:HasComponent

Object

Clearing

StateType

0:HasComponent

Object

ClearingToStopped

TransitionType

0:HasComponent

Object

Running

StateType

0:HasComponent

Object

RunningStateMachine

RunningStateMachineType

O

0:HasComponent

Object

RunningToAborting

TransitionType

0:HasComponent

Object

RunningToStopping

TransitionType

0:HasComponent

Method

Stop

O

0:HasComponent

Object

Stopped

InitialStateType

0:HasComponent

Object

StoppedToRunning

TransitionType

0:HasComponent

Object

Stopping

StateType

0:HasComponent

Object

StoppingToStopped

TransitionType

0:HasComponent

Variable

0:CurrentState

0:LocalizedText

FiniteStateVariableType

M

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

AbortedToClearing

0:FromState

True

Aborted

0:ToState

True

Clearing

0:HasCause

True

Clear

0:HasEffect

True

TransitionEventType

AbortingToAborted

0:FromState

True

Aborting

0:ToState

True

Aborted

0:HasEffect

True

TransitionEventType

ClearingToStopped

0:FromState

True

Clearing

0:ToState

True

Stopped

0:HasEffect

True

TransitionEventType

RunningToAborting

0:FromState

True

Running

0:ToState

True

Aborting

0:HasCause

True

Abort

0:HasEffect

True

TransitionEventType

RunningToStopping

0:FromState

True

Running

0:ToState

True

Stopping

0:HasCause

True

Stop

0:HasEffect

True

TransitionEventType

StoppedToRunning

0:FromState

True

Stopped

0:ToState

True

Running

0:HasEffect

True

TransitionEventType

StoppingToStopped

0:FromState

True

Stopping

0:ToState

True

Stopped

0:HasEffect

True

TransitionEventType

Running

0:HasSubStateMachine

True

RunningStateMachine

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

Aborted

0:StateNumber

1

Aborting

0:StateNumber

2

Clearing

0:StateNumber

3

Running

0:StateNumber

5

Stopped

0:StateNumber

4

Stopping

0:StateNumber

6

AbortedToClearing

0:TransitionNumber

1

AbortingToAborted

0:TransitionNumber

2

StoppingToStopped

0:TransitionNumber

4

StoppedToRunning

0:TransitionNumber

5

RunningToAborting

0:TransitionNumber

6

ClearingToStopped

0:TransitionNumber

7

RunningToStopping

0:TransitionNumber

8

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

BrowseName

Abort

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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

BrowseName

Clear

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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

BrowseName

Stop

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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.

image021.png

Figure 17 - RunningStateMachine

Table 32 – RunningStateMachineType Definition

Attribute

Value

BrowseName

RunningStateMachineType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the FiniteStateMachineType defined in OPC 10000-5

0:HasComponent

Object

Complete

StateType

0:HasComponent

Object

CompleteToResetting

TransitionType

0:HasComponent

Object

Completing

StateType

0:HasComponent

Object

CompletingToComplete

TransitionType

0:HasComponent

Object

Execute

StateType

0:HasComponent

Object

ExecuteToCompleting

TransitionType

0:HasComponent

Object

ExecuteToHolding

TransitionType

0:HasComponent

Object

ExecuteToSuspending

TransitionType

0:HasComponent

Object

Held

StateType

0:HasComponent

Object

HeldToUnholding

TransitionType

0:HasComponent

Method

Hold

O

0:HasComponent

Object

Holding

StateType

0:HasComponent

Object

HoldingToHeld

TransitionType

0:HasComponent

Object

Idle

StateType

0:HasComponent

Object

IdleToStarting

TransitionType

0:HasComponent

Method

Reset

O

0:HasComponent

Object

Resetting

StateType

0:HasComponent

Object

ResettingToIdle

TransitionType

0:HasComponent

Object

Starting

StateType

0:HasComponent

Object

StartingToExecute

TransitionType

0:HasComponent

Object

StartingToHolding

TransitionType

0:HasComponent

Method

Suspend

O

0:HasComponent

Object

Suspended

StateType

0:HasComponent

Object

SuspendedToHolding

TransitionType

0:HasComponent

Object

SuspendedToUnsuspending

TransitionType

0:HasComponent

Object

Suspending

StateType

0:HasComponent

Object

SuspendingToHolding

TransitionType

0:HasComponent

Object

SuspendingToSuspended

TransitionType

0:HasComponent

Method

ToComplete

O

0:HasComponent

Method

Unhold

O

0:HasComponent

Object

Unholding

StateType

0:HasComponent

Object

UnholdingToExecute

TransitionType

0:HasComponent

Object

UnholdingToHolding

TransitionType

0:HasComponent

Method

Unsuspend

O

0:HasComponent

Object

Unsuspending

StateType

0:HasComponent

Object

UnsuspendingToExecute

TransitionType

0:HasComponent

Object

UnsuspendingToHolding

TransitionType

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

IdleToStarting

0:FromState

True

Idle

0:ToState

True

Starting

0:HasEffect

True

TransitionEventType

StartingToExecute

0:FromState

True

Starting

0:ToState

True

Execute

0:HasEffect

True

TransitionEventType

ExecuteToCompleting

0:FromState

True

Execute

0:ToState

True

Completing

0:HasCause

True

ToComplete

0:HasEffect

True

TransitionEventType

CompletingToComplete

0:FromState

True

Completing

0:ToState

True

Complete

0:HasEffect

True

TransitionEventType

CompleteToResetting

0:FromState

True

Complete

0:ToState

True

Resetting

0:HasCause

True

Reset

0:HasEffect

True

TransitionEventType

ResettingToIdle

0:FromState

True

Resetting

0:ToState

True

Idle

0:HasEffect

True

TransitionEventType

ExecuteToSuspending

0:FromState

True

Execute

0:ToState

True

Suspending

0:HasCause

True

Suspend

0:HasEffect

True

TransitionEventType

SuspendingToSuspended

0:FromState

True

Suspending

0:ToState

True

Suspended

0:HasEffect

True

TransitionEventType

UnsuspendingToExecute

0:FromState

True

Unsuspending

0:ToState

True

Execute

0:HasEffect

True

TransitionEventType

ExecuteToHolding

0:FromState

True

Execute

0:ToState

True

Holding

0:HasCause

True

Hold

0:HasEffect

True

TransitionEventType

HoldingToHeld

0:FromState

True

Holding

0:ToState

True

Held

0:HasEffect

True

TransitionEventType

HeldToUnholding

0:FromState

True

Held

0:ToState

True

Unholding

0:HasCause

True

Unhold

0:HasEffect

True

TransitionEventType

UnholdingToExecute

0:FromState

True

Unholding

0:ToState

True

Execute

0:HasEffect

True

TransitionEventType

SourceBrowsePath

Reference Type

Is Forward

TargetBrowsePath

SuspendingToHolding

0:FromState

True

Suspending

0:ToState

True

Holding

0:HasCause

True

Hold

0:HasEffect

True

TransitionEventType

StartingToHolding

0:FromState

True

Starting

0:ToState

True

Holding

0:HasCause

True

Hold

0:HasEffect

True

TransitionEventType

SuspendedToHolding

0:FromState

True

Suspended

0:ToState

True

Holding

0:HasCause

True

Hold

0:HasEffect

True

TransitionEventType

UnsuspendingToHolding

0:FromState

True

Unsuspending

0:ToState

True

Holding

0:HasCause

True

Hold

0:HasEffect

True

TransitionEventType

UnholdingToHolding

0:FromState

True

Unholding

0:ToState

True

Holding

0:HasCause

True

Hold

0:HasEffect

True

TransitionEventType

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

Complete

0:StateNumber

1

Completing

0:StateNumber

2

Execute

0:StateNumber

3

Held

0:StateNumber

4

Holding

0:StateNumber

5

Idle

0:StateNumber

6

Resetting

0:StateNumber

7

Starting

0:StateNumber

8

Suspended

0:StateNumber

9

Suspending

0:StateNumber

10

Unholding

0:StateNumber

11

Unsuspending

0:StateNumber

12

IdleToStarting

0:TransitionNumber

1

StartingToExecute

0:TransitionNumber

2

CompleteToResetting

0:TransitionNumber

5

ResettingToIdle

0:TransitionNumber

6

ExecuteToSuspending

0:TransitionNumber

7

SuspendingToSuspended

0:TransitionNumber

8

SuspendedToUnsuspending

0:TransitionNumber

9

UnsuspendingToExecute

0:TransitionNumber

10

ExecuteToHolding

0:TransitionNumber

11

HoldingToHeld

0:TransitionNumber

12

BrowsePath

Value Attribute

HeldToUnholding

0:TransitionNumber

13

UnholdingToExecute

0:TransitionNumber

14

SuspendingToHolding

0:TransitionNumber

15

StartingToHolding

0:TransitionNumber

16

SuspendedToHolding

0:TransitionNumber

17

UnsuspendingToHolding

0:TransitionNumber

18

UnholdingToHolding

0:TransitionNumber

19

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

BrowseName

Hold

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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

BrowseName

Reset

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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

BrowseName

Suspend

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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

BrowseName

ToComplete

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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

BrowseName

Unhold

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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

BrowseName

Unsuspend

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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

BrowseName

FunctionalUnitStateMachineType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the FunctionalStateMachineType defined in 7.1.5

0:HasComponent

Method

Start

O

0:HasComponent

Method

StartProgram

O

Conformance Units

LADS FunctionalUnitStateMachineType

Start is used to start a FunctionalUnit with properties.

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

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.

Note: Results must be created between the start (calling the Start/StartProgram method or a manual start) and the end of a Program. So, the result must be complete before the ActiveProgram state machine transitions to the Complete state.

Signature

Start (

[in]KeyValuePair[]Properties)

Table 42 – Start Method Arguments

Argument

Description

Properties

A set of Properties that parameterize the execution of the Functional Unit.

Table 43 – Start Method AddressSpace Definition

Attribute

Value

BrowseName

Start

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

0:InputArguments

Argument[1]

0:PropertyType

M

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.

Note: Results must be created between the start (calling the Start/StartProgram method or a manual start) and the end of a program. So, the result must be complete before the ActiveProgram state machine transitions to the Complete state.

Signature

StartProgram (

[in]0:StringProgramTemplateId

[in]KeyValueType[]Properties

[in]0:StringSupervisoryJobId

[in]0:StringSupervisoryTaskId

[in]SampleInfoType[]Samples

[out]0:StringDeviceProgramRunId)

Table 44 – StartProgram Method Arguments

Argument

Description

ProgramTemplateId

The unique identifier of the program template used for the program-run. The template must be a member of the ProgramTemplateSet.

Properties

A Key/Value set for parameterization of the function.

SupervisoryJobId

The SupervisoryJobId assigned to this program.

SupervisoryTaskId

The Id of the SupervisoryTask.

Samples

An array of the SampleInfoType that describes the samples processed in this program-run.

DeviceProgramRunId

The Id of the created program run.

Table 45 – StartProgram Method AddressSpace Definition

Attribute

Value

BrowseName

StartProgram

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

0:InputArguments

Argument[5]

0:PropertyType

M

0:HasProperty

Variable

0:OutputArguments

Argument[1]

0:PropertyType

M

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.

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

BrowseName

LADSComponentsType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the MachineComponentsType defined in OPC 40001-1

0:HasComponent

Object

<Component>

LADSComponentType

OP

GeneratesEvent

ObjectType

GeneralModelChangeEventType

0:HasProperty

Variable

NodeVersion

0:String

0:PropertyType

O

Conformance Units

LADS LADSComponentsType

<Components> is a placeholder for the Components.

Note: This type is not a subtype of the SetType because the component hierarchy from OPC UA for Machinery (OPC 40001-1) can be used.

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

BrowseName

LADSOperationModeStateMachineType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the 4:MachineryOperationModeStateMachineType

0:HasComponent

Method

GotoMaintenance

O

0:HasComponent

Method

GotoProcessing

O

0:HasComponent

Method

GotoSetup

O

Conformance Units

LADS LADSOperationModeStatemachineType

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

BrowseName

GotoMaintenance

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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

BrowseName

GotoProcessing

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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

BrowseName

GotoSetup

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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.

Note: All existing Properties of an instance of MaintenanceTaskType should to be saved persistent. So, the values can be loaded after an restart of the server.

Table 51 – MaintenanceTaskType Definition

Attribute

Value

BrowseName

MaintenanceTaskType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the MaintenanceRequiredAlarmType defined in OPC 10000-100

0:HasProperty

Variable

LastExecutionDate

0:UtcTime

0:PropertyType

O

0:HasProperty

Variable

LastOperatingCycles

0:UInt32

0:PropertyType

O

0:HasProperty

Variable

LastOperatingTime

0:Duration

0:PropertyType

O

0:HasProperty

Variable

NextOperatingCycles

0:UInt32

0:PropertyType

O

0:HasProperty

Variable

NextOperatingTime

0:Duration

0:PropertyType

O

0:HasProperty

Variable

RecurrencePeriod

0:Duration

0:PropertyType

O

0:HasComponent

Method

ResetTask

O

0:HasComponent

Method

StartTask

O

0:HasComponent

Method

StopTask

O

0:HasInterface

ObjectType

IMaintenanceEventType

Defined in OPC 10000-110 Section 12.2

Applied from IMaintenanceEventType

0:HasProperty

Variable

3:ConfigurationChanged

0:Boolean

0:PropertyType

O

0:HasProperty

Variable

3:EstimatedDowntime

0:Duration

0:PropertyType

O

0:HasProperty

Variable

3:MaintenanceMethod

3:MaintenanceMethodEnum

0:PropertyType

O

0:HasComponent

Object

3:MaintenanceState

3:MaintenanceEventStateMachineType

M

0:HasProperty

Variable

3:MaintenanceSupplier

3:NameNodeIdDataType

0:PropertyType

O

0:HasProperty

Variable

3:PartsOfAssetReplaced

3:NameNodeIdDataType[]

0:PropertyType

O

0:HasProperty

Variable

3:PartsOfAssetServiced

3:NameNodeIdDataType[]

0:PropertyType

O

0:HasProperty

Variable

3:PlannedDate

0:UtcTime

0:PropertyType

O

0:HasProperty

Variable

3:QualificationOfPersonnel

3:NameNodeIdDataType

0:PropertyType

O

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.

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

BrowseName

Reset

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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

BrowseName

StartTask

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

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]MaintenanceTaskResultEnumMaintenanceTaskStopResult,

[in]LocalizedTextComment)

Table 54 – StopTask Method Arguments

Argument

Description

MaintenanceTaskStopResult

Give the reason why the task is stopped.

Comment

Add an additional comment to describe the call

Table 55 – StopTask Method AddressSpace Definition

Attribute

Value

BrowseName

StopTask

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

0:Mandatory

The ProgramManagerType provides the FunctionalUnit’s program manager. It is formally defined in Table 56.

Table 56 – ProgramManagerType Definition

Attribute

Value

BrowseName

ProgramManagerType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the TopologyElementType Type defined in OPC 10000-100

0:HasComponent

Object

ActiveProgram

ActiveProgramType

M

0:HasComponent

Object

ProgramTemplateSet

ProgramTemplateSetType

M

0:HasComponent

Object

ResultSet

ResultSetType

M

0:HasComponent

Method

Download

O

0:HasComponent

Method

Remove

O

0:HasComponent

Method

Upload

O

Conformance Units

LADS ProgramManagerType

ActiveProgram represents the ongoing operational state of a FunctionalUnit on a Device, providing user-friendly, sequential insight into the progress and context of the currently running program.

ProgramTemplateSet holds the template set associated with the ProgramManager.

ResultSet contains the results of program runs. It includes information about where and by whom the run was initiated, the template used along with any additional parameters, the samples included, contextual information to link the results with the associated samples, and where the results are provided.

Note: The Properties argument of the ProgramTemplateManager’s Upload and Download Method is intended to provide vendor-specific information and/or to extend the opaque ByteString with transparent metadata. This enables legacy devices to continue using proprietary program formats while also being able to transport transparent metadata for the LADS server itself or possible device drivers.

Note: Results must be created between the start (calling Start/StartProgram method or a manual start) and the end of a Program. So, the result must be complete before the ActiveProgram state machine transitions to the Complete state.

The Download Method is used to transfer a Program Template from the Server to the Client. The signature for this Method is specified below. Table 58 specifies its representation in the AddressSpace.

Signature

Download (

[in]StringTemplateId

[out]KeyValueType[]AdditionalParameters

[out]ByteStringData

)

Table 57 – Download Method Arguments

Argument

Description

TemplateId

Unique identifier of the template to be downloaded.

AdditionalParameters

Additional properties of the program template.

Data

Opaque program template data.

Table 58 – Download Method AddressSpace Definition

Attribute

Value

BrowseName

Download

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

M

HasProperty

Variable

0:OutputArguments

0:Argument[]

0:PropertyType

M

The Remove Method deletes the Program Template from the Server. Table 60 specifies its representation in the AddressSpace.

Signature

Remove (

[in]StringTemplateId

)

Table 59 – Remove Method Arguments

Argument

Description

TemplateId

Unique identifier of the template to be removed.

Table 60 – Remove Method AddressSpace Definition

Attribute

Value

BrowseName

Remove

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

M

The Upload Method is used to transfer a Program Template from a Client to the Server. An instance of the ProgramTemplateType (see 7.2.5) needs to be created in the ProgramTemplateSet for each uploaded Program Template.

The properties of a Program Template and the information included are vendor specific. Considering the multiple different formats and ways of defining Program Templates in the laboratory and analytical domain, LADS handles the inner structure of the Program Template itself as a black box.

The properties of the instance of a ProgramTemplateType should be set via an Upload method call based on the Data and AdditionalParameter inputs.

Table 62 specifies its representation in the AddressSpace.

Signature

Upload

(

[in]KeyValueType[]AdditionalParameters

[in]ByteStringData

[out]StringTemplateId

)

Table 61 – Upload Method Arguments

Argument

Description

AdditionalParameters

Additional properties of the program template.

Data

Opaque program template data.

TemplateId

The unique identifier of the template which might be generated by the device/functional-unit itself or might be provided as element of the opaque input data..

Table 62 – Upload Method AddressSpace Definition

Attribute

Value

BrowseName

Upload

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

M

0:HasProperty

Variable

0:OutputArguments

0:Argument[]

0:PropertyType

M

The ResultType provides the results of a specific program run. It is formally defined in Table 63.

Table 63 – ResultType Definition

Attribute

Value

BrowseName

ResultType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of 0:BaseObjectType defined in OPC 10000-5

0:HasProperty

Variable

ApplicationUri

0:String

0:PropertyType

M

0:HasProperty

Variable

Description

0:LocalizedText

0:PropertyType

M

0:HasProperty

Variable

DeviceProgramRunId

0:String

0:PropertyType

O

0:HasProperty

Variable

EstimatedRuntime

0:Duration

0:PropertyType

O

0:HasComponent

Object

FileSet

ResultFileSetType

M

0:HasProperty

Variable

SupervisoryJobId

0:String

0:PropertyType

M

0:HasComponent

Object

ProgramTemplate

ProgramTemplateType

M

0:HasProperty

Variable

Properties

KeyValueType[]

0:PropertyType

M

0:HasProperty

Variable

Samples

SampleInfoType[]

0:PropertyType

M

0:HasProperty

Variable

Started

0:DateTime

0:PropertyType

M

0:HasProperty

Variable

Stopped

0:DateTime

0:PropertyType

M

0:HasProperty

Variable

SupervisoryTaskId

0:String

0:PropertyType

M

0:HasProperty

Variable

TotalPauseTime

0:Duration

0:PropertyType

O

0:HasProperty

Variable

TotalRuntime

0:Duration

0:PropertyType

O

0:HasProperty

Variable

User

0:String

0:PropertyType

M

0:HasComponent

Object

VariableSet

VariableSetType

M

0:HasProperty

Variable

Samples

SampleInfoType[]

0:PropertyType

M

Conformance Units

LADS ResultType

ApplicationUri provides information about the remote client that initiated the program run generating the result. It must align with the ApplicationUri in the ApplicationDescription (refer to OPC 10000-4 section 7.1) of a Session (refer to OPC 10000-4 section 5.6.2). In instances where the program was initiated locally and cannot be attributed to an OPC UA Client, the ApplicationUri of the Server should be utilized.

User provides information about the remote client user that initiated the program run generating the result. User must be a human-readable value, based on the UserIdentityToken (refer to OPC 10000-4 section 7.36). In instances where the program was initiated locally and cannot be attributed to an OPC UA Client, the local user of the Server should be utilized.

Recommendations for creating the User parameter are as follows:

• AnonymousIdentityToken: This should not be utilized.

• UserNameIdentityToken: The UserName field should be utilized.

• X509IdentityToken: The Common Name of the certificate should be utilized.

• IssuedIdentityToken (JWT): The Name field of the access Token Claim should be utilized (refer to 10000-6 section 6.5.3.2).

Description is the human-readable description of the specific program run that created this result and the result itself.

DeviceProgramRunId is the internal program identifier assigned by the Device to the program run generating 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 steps. 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.

ProgramTemplate is an immutable copy of the Program Template attributes with which the result was generated and is provided for documentation and traceability purposes. This copy will not change even if the original is changed.

Properties is a list of key-value pairs with KeyValueType which is provided when calling the StartProgram() Method. It can be utilized when performing the program run and is provided in the ResultType object for documentation and traceability purposes.

Samples is a list of sample-specific information with SampleInfoType which is provided when calling the StartProgram() Method. It can be utilized when performing the program run and is provided in the ResultType object for documentation and traceability purposes.

Started is the timestamp of when the program was started.

Stopped is the timestamp of when the program was stopped.

EstimatedRuntime is the time that was estimated for the program execution.

TotalRuntime is the total time of program execution, including paused states. The paused states are Held and Suspended.

TotalPauseTime is the time the program execution for the result was in a paused state. The paused states are Held and Suspended.

The EstimatedRuntime, TotalRuntime and TotalPauseTime information is retrieved from the last value of the ActiveProgram properties.

FileSet is a list of represented files of ResultFileType objects which were generated during the run. The format of the individual files is represented via an associated MIME type attribute.

VariableSet contains additional vendor-specific sample data that was created during a run. The value of the variables in the set or in a nested structure in the set are immutable. Thus, the value attribute is not allowed to change from the Client or Server side after the creation of a Node.

The ResultFileType provides a description of a file that is part of a result of a program manager run. It is formally defined in Table 64.

Table 64 – ResultFileType Definition

Attribute

Value

BrowseName

ResultFileType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of 0:BaseObjectType defined in OPC 10000-5

0:HasComponent

Object

File

FileType

O

0:HasProperty

Variable

MimeType

0:String

0:PropertyType

M

0:HasProperty

Variable

Name

0:String

0:PropertyType

M

0:HasProperty

Variable

URL

0:String

0:PropertyType

O

Conformance Units

LADS ResultFileType

File is the OPC UA Node of the file with the method for downloading the file.

MimeType is the MIME type of the file.

Name is the name that describes the file. The name may be different from the filename on the filesystem.

URL is a URL from which the file can be downloaded.

Note: This specification allows for transferring the result file using either the native OPC UA FileType or a different protocol. For example, the URL property can be used with a second protocol (e.g., FTP). The advantage of the OPC UA method is that all information can be provided using a single protocol. No secondary access management and security implementation is needed. For Brownfield applications where a second protocol exists, this second protocol can be used to reduce the implementation effort.

The ActiveProgramType specifies the current state of operation of a FunctionalUnit. It provides context and information about the currently active program on the Device. This allows users to follow the progress of a program run in a standardized fashion by organising steps into a flat, linear sequence. It is formally defined in Table 65.

Table 65 – ActiveProgramType Definition

Attribute

Value

BrowseName

ActiveProgramType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of 0:BaseObjectType defined in OPC 10000-5

0:HasProperty

Variable

CurrentPauseTime

Duration

0:PropertyType

O

0:HasProperty

Variable

CurrentRuntime

Duration

0:PropertyType

O

0:HasProperty

Variable

CurrentStepName

LocalizedText

0:PropertyType

O

0:HasProperty

Variable

CurrentStepNumber

UInt32

0:PropertyType

O

0:HasProperty

Variable

CurrentStepRuntime

Duration

0:PropertyType

O

0:HasProperty

Variable

EstimatedRuntime

Duration

0:PropertyType

O

0:HasProperty

Variable

EstimatedStepNumbers

UInt32

0:PropertyType

O

0:HasProperty

Variable

EstimatedStepRuntime

Duration

0:PropertyType

O

0:HasProperty

Variable

DeviceProgramRunId

String

0:PropertyType

O

0:HasProperty

Variable

CurrentProgramTemplate

3:NameNodeIdDataType

0:PropertyType

O

Conformance Units

LADS ActiveProgramType

The status of all properties must be communicated through various StatusCodes, depending on the situation:

• For a device that has not had a prior run and therefore cannot estimate the runtime, the StatusCode should be BadWaitingForInitialData. This indicates that the system is waiting for initial data to compute the estimated runtime.

• If the runtime cannot be estimated due to process-related reasons or incompatibility, the StatusCode should be BadNoData. This communicates that no data is available to estimate the runtime.

• If the runtime can be computed and the program is currently running or paused, the StatusCode should be Good. This indicates that the estimated runtime is available and the program is in progress.

• If the runtime can be computed after the program run but the value might not be the most current, the StatusCode should be UncertainLastUsableValue. This communicates that the last known value is being used for the estimated runtime, but it may not be the most up to date.

Additional StatusCodes are allowed depending on the specific situation (e.g., technical problems).

CurrentPauseTime is the current pause-time of the program run. The CurrentPauseTime is set to 0 at the start of the program and is counted upwards when the program run is in a paused state. The paused state is an aggregation of the Suspended and Held states.

CurrentRuntime is the current runtime of the program run. The CurrentRuntime is set to 0 at the start of the program and is counted upwards, as long as the program run is not in a paused state. The paused state is an aggregation of the Suspended and Held states.

CurrentStepName is the name of the current step.

CurrentStepNumber is the number/index of the current step (incremented whenever the next step is entered).

CurrentStepRuntime is the runtime of the current step. The CurrentStepRuntime is set to 0 at the start of the current step and is counted upwards, as long as the program run is not in paused state. The paused state is an aggregation of the Suspended and Held states.

EstimatedRuntime is the estimated runtime of the current program run.

EstimatedStepNumbers is the estimated total number of steps of the current program run.

EstimatedStepRuntime is the estimated runtime of the current program step.

CurrentProgramTemplate provides the template-id as well as the node-id of the currently executed program.

DeviceProgramRunId represents a device-specific unique internal identifier for this program run. Its value shall be identical to the return value of the last call to the FunctionalUnit’s StartProgram() Method. It is used to identify the result object corresponding to this program run within the FunctionalUnit’s result set.

The ProgramTemplateType provides a Program Template. It is formally defined in Table 66.

A Program Template is stored within the ProgramTemplateSet of a ProgramManager and can be selected to be executed as the ActiveProgram for the FunctionalUnit. Alternative common names for a Program Template are protocol, program, or recipe.

Clients (e.g., supervisory system clients, such as ELN or LIMS) can utilize the ProgramTemplateSet and Program Template objects to:

  • List all templates available on a FunctionalUnit,
  • Select a template for execution as the ActiveProgram.

The Download Method (see 7.2.1.2) and Upload Method (see 7.2.1.4) functions of the ProgramManagerType can be used to download and upload Program Templates.

Considering the multiple different formats and ways of defining Program Templates in the laboratory and analytical domain, LADS handles the Program Template itself as a black box.

The information contained is read-only and the properties are set based on information included in the Program Template itself. This is beyond the scope of the LADS specification. Thus, only generic information about the context and purpose of the Program Template is provided here.

Table 66 – ProgramTemplateType Definition

Attribute

Value

BrowseName

ProgramTemplateType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5

0:HasProperty

Variable

Author

String

0:PropertyType

M

0:HasProperty

Variable

Created

DateTime

0:PropertyType

M

0:HasProperty

Variable

Description

LocalizedText

0:PropertyType

M

0:HasProperty

Variable

Modified

DateTime

0:PropertyType

M

0:HasProperty

Variable

DeviceTemplateId

0:String

0:PropertyType

M

0:HasProperty

Variable

SupervisoryTemplateId

0:String

0:PropertyType

O

0:HasProperty

Variable

Version

0:String

0:PropertyType

M

Conformance Units

LADS ProgramTemplateType

Author is the user who created the template.

Created is the time of the template’s creation.

Description is a human-readable description of the template.

Modified is the time of last modification.

DeviceTemplateId is the program template’s identifier unique within the scope of the device.

SupervisoryTemplateId is an optional enterprise-wide unique identifier for the template. This can be utilized to refer the template to supervisory systems.

Version is the version of the template (the format is at the user’s discretion).

The SupportedPropertyType provides argument names and links to variables within the information model, typically target values or parameters of Functions. This makes it possible to specify a list of KeyValueTypess as an input object. It is formally defined in Table 67.

The SupportedPropertyType is used in the SupportedPropertiesSet of the FunctionalUnit. The name of each Argument object is used as a key in the KeyValueType list input Argument of the Start()/StartFunctions() Method. Each Argument object should contain an Organizes Reference to the target variable to which it belongs. Thus, the metadata of the target variable can be introspected online. The name of the SupportedProperty object is typically an argument name for a variable in the Device.

Table 67 – SupportedPropertyType Definition

Attribute

Value

BrowseName

SupportedPropertyType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5

Conformance Units

LADS SupportedPropertyType

The SetType provides an unordered set of objects. It is formally defined in Table 68.

Table 68 – SetType Definition

Attribute

Value

BrowseName

SetType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the FolderType defined in OPC 10000-5

0:HasProperty

Variable

NodeVersion

0:String

0:PropertyType

O

0:HasComponent

Object

<SetElement>

BaseObjectType

OP

0:GeneratesEvent

ObjectType

0:GeneralModelChangeEventType

Conformance Units

LADS SetType

NodeVersion and the GeneralModelChangeEventType are mechanisms to notify Clients that the content of the set has changed and shall be used as defined in OPC 10000-3.

SetElement is the element of the set. Subtypes of the SetType will override this Node.

The SupportedPropertiesSetType provides a set of properties which are supported as members of a properties list Argument for Method calls, such as FunctionalUnit.StartFunctions() or ActiveProgram.Start(). It is formally defined in Table 69.

Table 69 – SupportedPropertiesSetType Definition

Attribute

Value

BrowseName

SupportedPropertiesSetType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the SetType defined in 7.2.5

0:HasComponent

Object

<SetElement>

SupportedPropertyType

OP

Conformance Units

LADS SupportedPropertiesSetType

SetElement is the element of the set and is overridden with SupportedPropertiesType.

The ResultSetType is used for organising ResultType objects in an unordered list structure. It is formally defined in Table 70.

Table 70 – ResultSetType Definition

Attribute

Value

BrowseName

ResultSetType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the SetType defined in 7.2.5

0:HasComponent

Object

<SetElement>

ResultType

OP

Conformance Units

LADS ResultSetType

SetElement is the element of the set and is overridden with ResultSetType.

The ResultFileSetType is used for organising ResultFileType objects in an unordered list structure. It is formally defined in Table 71.

Table 71 – ResultFileSetType Definition

Attribute

Value

BrowseName

ResultFileSetType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the SetType defined in 7.2.5

0:HasComponent

Object

<SetElement>

ResultFileType

OP

Conformance Units

LADS ResultFileSetType

SetElement is the element of the set and is overridden with ResultFileSetType.

The FunctionalUnitSetType provides a set of a FunctionalUnit. It is formally defined in Table 72.

Table 72 – FunctionalUnitSetType Definition

Attribute

Value

BrowseName

FunctionalUnitSetType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the SetType defined in 7.2.5

0:HasComponent

Object

<SetElement>

FunctionalUnitType

OP

Conformance Units

LADS FunctionalUnitSetType

SetElement is the element of the set and is overridden with FunctionalUnitType.

The FunctionSetType is used for organising FunctionType objects in an unordered list structure. It is formally defined in Table 73.

Table 73 – FunctionSetType Definition

Attribute

Value

BrowseName

FunctionSetType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the SetType defined in 7.2.5

0:HasComponent

Object

<SetElement>

FunctionType

OP

Conformance Units

LADS FunctionSetType

SetElement is the element of the set and is overridden with FunctionType.

The ControllerParameterSetType is used for organising ControllerParameterType objects in an unordered list structure. It is formally defined in Table 74.

Table 74 – ControllerParameterSetType Definition

Attribute

Value

BrowseName

FunctionSetType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the SetType defined in 7.2.5

0:HasComponent

Object

<SetElement>

FunctionType

OP

Conformance Units

LADS ControllerParameterSetType

SetElement is the element of the set and is overridden with ControllerParameterSetType.

The ProgramTemplateSetType is used for organising ProgramTemplateType objects in an unordered list structure. It is formally defined in Table 75.

Table 75 – ProgramTemplateSetType Definition

Attribute

Value

BrowseName

ProgramTemplateSetType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the SetType defined in 7.2.5

0:HasComponent

Object

<SetElement>

ProgramTemplateType

OP

Conformance Units

LADS ProgramTemplateSetType

SetElement is the element of the set and is overridden with ProgramTemplateType.

The VariableSetType is used for storing additional sample data that was created during a run. It is formally defined in Table 76.

Table 76 – VariableSetType Definition

Attribute

Value

BrowseName

VariableSetType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the SetType defined in 7.2.5

0:HasComponent

Variable

<VariableSetElement >

BaseDataType

BaseVariableType

OP

0:HasComponent

Object

<SetElement>

BaseObjectType

OP

Conformance Units

LADS VariableSetType

VariableSetElement: Placeholder for vendor-specific properties.

SetElement: Placeholder for one or more objects that hold vendor-specific data that was created during a run. Objects follow these rules:

  • The type of each object shall be BaseObjectType. Each object may have arbitrary child nodes.
  • The structure and data contained in each object are vendor specific.
  • It is up to the vendor whether the list contains objects with the same kind of data or objects of different kinds of data.
  • The structure may be nested.

For objects and properties added to the VariableSet, vendors shall use only types from the OPC UA base specification, specifically:

Vendors should annotate each node with a reference to a dictionary entry.

Vendors should specify the structure in their documentation. See Annex D for a typical example.

The MaintenanceSetType is a set containing all maintenance tasks for a Device or Component according to the recommendations in OPC UA 10000-110. It is formally defined in Table 77.

Table 77 – MaintenanceSetType Definition

Attribute

Value

BrowseName

MaintenanceSetType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the SetType defined in OPC 10000-100

0:HasComponent

Object

<SetElement>

MaintenanceTaskType

OP

Conformance Units

LADS MaintenanceSetType

SetElement is a placeholder for the maintenance tasks.

The following ObjectTypes are used to describe Functions of the LADS Device. LADS Device Functions can be divided into general functions, control functions (see 7.6) and Sensor functions (see 7.4.2).

The inheritance structure for all functions in this specification is shown in Figure 18.

image022.png

Figure 18 – Inheritance structure for all Functions in LADS

The FunctionType provides an abstract function type. It is formally defined in Table 78.

Table 78 – FunctionType Definition

Attribute

Value

BrowseName

FunctionType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the TopologyElementType defined in OPC 10000-100

0:HasComponent

Object

Configuration

1:FunctionalGroupType

O

0:HasComponent

Object

FunctionSet

FunctionSetType

O

0:HasProperty

Variable

IsEnabled

Boolean

0:PropertyType

M

Conformance Units

LADS FunctionType

Configuration is used to organize parameters for configuration of the Function.

FunctionSet contains sub-functions of the Function.

IsEnabled indicates whether the Function can currently be executed on the Device. A Function may be disabled for several reasons including not licensed, missing hardware modules, or missing supplies.

The BaseSensorFunctionType is an abstract ObjectType used as a base for derivation of Sensor Functions. A Sensor Function is a Function that measures data. In LADS this is mainly data from the physical domain, but other domains are not excluded. In addition to the FunctionType, the Operational and Tuning FunctionalGroups were added for operational/tuneable Parameters and Methods. Furthermore, an AlarmMonitor of the Type ExclusiveLevelAlarm was added to observe unusual conditions in the measured data.

The ParameterSet was specialized to hold Parameters of the BaseSensorFunctionType.

The BaseSensorFunctionType is formally defined in Table 79.

Table 79 – BaseSensorFunctionType Definition

Attribute

Value

BrowseName

BaseSensorFunctionType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the FunctionType defined in 7.4

Conformance Units

LADS BaseSensorFunctionType

The AnalogSensorFunctionType is an abstract subtype of the BaseSensorFunctionType which represents analogue measured values. The AnalogSensorFunctionType is formally defined in Table 80.

Table 80 – AnalogSensorFunctionType Definition

Attribute

Value

BrowseName

AnalogSensorFunctionType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseSensorFunctionType defined in 7.5.1

0:HasComponent

Object

AlarmMonitor

ExclusiveLevelAlarmType

O

0:HasComponent

Variable

RawValue

Double{Any}

AnalogUnitRangeType

M

0:HasComponent

Variable

SensorValue

Double{Any}

AnalogUnitRangeType

M

0:HasComponent

Object

Calibration

1:FunctionalGroupType

O

0:HasComponent

Variable

CalibrationValues

Double[]

BaseDataVariableType

O

0:HasProperty

Variable

Damping

Double

0:PropertyType

O

0:HasComponent

Object

Operational

1:FunctionalGroupType

M

0:HasComponent

Object

Tuning

1:FunctionalGroupType

O

Conformance Units

LADS AnalogSensorFunctionType

AlarmMonitor indicates whether the limit of an analogue Sensor is exceeded. See: 10000-9: Alarms & Conditions | ExclusiveLevelAlarmType.

RawValue is the raw value measured at the Sensor element, such as the Nernst voltage of a pH Sensor element.

SensorValue is the calibrated and optionally compensated/filtered process value.

Calibration is used to organize parameters for configuration of this Function.

CalibrationValues is an array of calibration values for converting the Sensor’s raw value to the process value.

Damping is a low-pass filter parameter used for signal damping.

Operational is used to organize parameters for operation of this Function.

Tuning is used to organize parameters for operation of this Function.

The AnalogArraySensorFunctionType is a concrete subtype of the AnalogSensorFunctionType which represents an array of analogue measured values. This is an extension point for all analogue measured values without built-in compensation on the Sensor. The AnalogArraySensorFunctionType is formally defined in Table 81.

Table 81 – AnalogArraySensorFunctionType Definition

Attribute

Value

BrowseName

AnalogArraySensorFunctionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the AnalogSensorFunctionType defined in 7.5.2

0:HasComponent

Variable

RawValue

Double{OneOrMoreDimensions}

AnalogUnitRangeType

M

0:HasComponent

Variable

SensorValue

Double{OneOrMoreDimensions}

AnalogUnitRangeType

M

Conformance Units

LADS AnalogArraySensorFunctionType

RawValue is the raw value measured at the Sensor element, such as the Nernst voltage of a pH Sensor element.

SensorValue is the calibrated and optionally compensated/filtered process value.

The AnalogScalarSensorFunctionType is a concrete subtype of the AnalogSensorFunctionType which represents an analogue measured value. This is an extension point for all analogue measured values without built-in compensation on the Sensor. The AnalogScalarSensorFunctionType is formally defined in Table 81.

Table 82 – AnalogScalarSensorFunctionType Definition

Attribute

Value

BrowseName

AnalogScalarSensorFunctionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the AnalogSensorFunctionType defined in 7.5.2

0:HasComponent

Variable

RawValue

Double

AnalogUnitRangeType

M

0:HasComponent

Variable

SensorValue

Double

AnalogUnitRangeType

M

Conformance Units

LADS AnalogScalarSensorFunctionType

RawValue is the raw value measured at the Sensor element, such as the Nernst voltage of a pH Sensor element.

SensorValue is the calibrated and optionally compensated/filtered process value.

The AnalogScalarSensorFunctionWithCompensationType is a concrete subtype of the AnalogScalarSensorFunctionType which represents a measured value with compensation. This is an extension point for all analogue measured values with built-in compensation on the Sensor. The AnalogScalarSensorFunctionWithCompensationType is formally defined in Table 83.

Table 83 – AnalogScalarSensorFunctionWithCompensationType Definition

Attribute

Value

BrowseName

AnalogScalarSensorFunctionWithCompensationType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the AnalogScalarSensorFunctionType defined in 7.5.4

0:HasComponent

Variable

CompensationValue

Double

AnalogUnitRangeType

M

Conformance Units

LADS AnalogScalarSensorFunctionWithCompensationType

CompensationValue is the compensation value used while calculating the process value, such as the temperature at the Sensor element for pH or DO Sensors.

The DiscreteSensorFunctionType is an abstract subtype of the base SensorFunctionType which represents a discrete measured value. It is formally defined in Table 84.

Table 84 – DiscreteSensorFunctionType Definition

Attribute

Value

BrowseName

DiscreteSensorFunctionType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseSensorFunctionType defined in 7.5.1

0:HasComponent

Variable

SensorValue

BaseDataType

DiscreteItemType

M

0:HasComponent

Object

Operational

1:FunctionalGroupType

M

Conformance Units

LADS DiscreteSensorFunctionType

SensorValue is a discrete process value.

Operational is used to organize parameters for operation of this Function.

The TwoStateDiscreteSensorFunctionType represents a Boolean value that is measured by a Sensor. It is formally defined in Table 85.

Table 85 – TwoStateDiscreteSensorFunctionType Definition

Attribute

Value

BrowseName

TwoStateDiscreteSensorFunctionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the DiscreteSensorFunctionType defined in 7.5.1

0:HasComponent

Variable

SensorValue

0:Boolean

TwoStateDiscreteType

M

Conformance Units

LADS TwoStateDiscreteSensorFunctionType

SensorValue a Boolean sensor value representing one of two discrete states.

The MultiStateDiscreteSensorFunctionType represents a value that is measured by a Sensor and can only be set to a discrete set of values. It is formally defined in Table 86.

Table 86 – MultiStateDiscreteSensorFunctionType Definition

Attribute

Value

BrowseName

MultiStateDiscreteSensorFunctionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the DiscreteSensorFunctionType defined in 7.5.1

0:HasComponent

Variable

SensorValue

0:UInt32

MultiStateDiscreteType

M

Conformance Units

LADS MultiStateDiscreteSensorFunctionType

SensorValue a UInt:32 sensore representing one out of multiple discrete states.

The MultiSensorFunctionType is a concrete subtype of the BaseSensorFunctionType which represents complex detectors with multiple sensors targeting a specific measurement task, e.g. diode array detector of a HPLC system.The specific sensor elements are represented by sensor-functions in the FunctionSet. The MultiSensorFunctionType is formally defined in Table 87.

Table 87 – MultiSensorFunctionType

Attribute

Value

BrowseName

MultiSensorFunctionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseSensorFunctionType defined in 7.5.1

0:HasComponent

Object

FunctionSet

FunctionSetType

M

Conformance Units

LADS MultiSensorFunctionType

FunctionSet contains the sensor-functions of the different sensor elements.

The BaseControlFunctionType provides an abstract superclass for all control functions. It is formally defined in Table 88.

Table 88 – BaseControlFunctionType Definition

Attribute

Value

BrowseName

BaseControlFunctionType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the FunctionType defined in7.4.2

0:HasComponent

Object

AlarmMonitor

0:ExclusiveDeviationAlarmType

O

0:HasComponent

Object

ControllerTuningParameter

ControllerTuningParameterType

O

0:HasComponent

Object

Operational

1:FunctionalGroupType

M

0:HasComponent

Object

ControlFunctionState

ControlFunctionStateMachineType

M

Conformance Units

LADS BaseControlFunctionType

AlarmMonitor indicates whether the deviation from a set point exceeds the limit. See: 10000-9: Alarms & Conditions | ExclusiveDeviationAlarmType.

ControllerTuningParameter contains information on the Controller configuration. For example, the K factor of a PID control.

Operational is a FunctionalGroup that shall organize the CurrentState property of the ControlFunctionState StateMachine and all its remote invocable Methods. Furthermore, it shall organize at least the CurrentValue and TargetValue Properties found in the ParameterSet Object. Additional references to Properties or Methods within the scope of this Object are at the implementor’s discretion (e.g., AlarmMonitor Properties).

ControlFunctionState is a state machine which represents the execution state and controls the execution of the Function.

The ControlFunctionStateMachineType represents the state of a Function 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 ControlFunctionStateMachineType is formally defined in Table 89.

Table 89 – ControlFunctionStateMachineType Definition

Attribute

Value

BrowseName

ControlFunctionStateMachineType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the FunctionalStateMachineType defined in 7.1.5

0:HasComponent

Method

Start

O

0:HasComponent

Method

StartWithTargetValue

O

Conformance Units

LADS ControlFunctionStateMachineType

Start starts a Function on the LADS Device.

The Start Method starts a Function on the LADS Device.

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

Signature

Start()

Table 90 – Start Method AddressSpace Definition

Attribute

Value

BrowseName

Start

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

The StartWithTargetValue Method starts a Function on the LADS Device with the target value as an argument.

The signature of this Method is specified below. Table 91 and Note: The optional TargetValue can be also empty. In this case it should be handled as it not exiting.Note: The optional TargetValue can be also empty. In this case it should be handled as it not exiting.

Table 92 specify the Arguments and AddressSpace representation, respectively.

Signature

StartWithTargetValue (

[in]NumberTargetValue)

Table 91 – StartWithTargetValue Method Arguments

Argument

Description

TargetValue

(Optional) This value can be used to set the target value parallel with the start method.

Note: The optional TargetValue can be also empty. In this case it should be handled as it not exiting.

Table 92 – StartWithTargetValue Method AddressSpace Definition

Attribute

Value

BrowseName

StartWithTargetValue

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

M

The ControllerTuningParameterType is an abstract class. It is formally defined in Table 93. Subtypes of the ControllerTuningParameterType contain the parameters and information about a Controller (configuration).

Table 93 – ControllerTuningParameterType Definition

Attribute

Value

BrowseName

ControllerTuningParameterType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5

Conformance Units

LADS ControllerTuningParameterType

The PidControllerParameterType contains the parameters of an PID controller. It is formally defined in Table 94.

Table 94 – PidControllerParameterType Definition

Attribute

Value

BrowseName

PidControllerParameterType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the ControllerTuningParameterType defined in 7.6.2

HasComponent

Variable

CtrlP

Double

AnalogUnitRangeType

O

HasComponent

Variable

CtrlTd

Double

AnalogUnitRangeType

O

HasComponent

Variable

CtrlTi

Double

AnalogUnitRangeType

O

Conformance Units

LADS PidControllerParameterType

CtrlP is the proportional controller parameter.

CtrlTd is the derivate controller parameter.

CtrlTi is the integrator controller parameter.

The AnalogControlFunctionType describes an analogue control function (using analogue values). In addition to the LADS BaseControlFunctionType, the ParameterSet has been made Mandatory. More specialized analogue control functions can be derived from this ObjectType. The AnalogControlFunctionType is formally defined in Table 95.

Table 95 – AnalogControlFunctionType Definition

Attribute

Value

BrowseName

AnalogControlFunctionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseControlFunctionType defined in 7.6.1

0:HasComponent

Variable

CurrentValue

0:Double

AnalogUnitRangeType

M

0:HasComponent

Variable

TargetValue

0:Double

AnalogUnitRangeType

M

Conformance Units

LADS AnalogControlFunctionType

CurrentValue is the current process value.

TargetValue is the targeted set-point value.

Table 96 – AnalogControlFunctionType AdditionalSubcomponents

BrowsePath

References

NodeClass

BrowseName

DataType

TypeDefinition

Others

ControlFunctionState

HasComponent

Method

StartWithTargetValue

O

The StartWithTargetValue Method starts a Function on the LADS Device with the target value as an argument.

The signature of this Method is specified below. Table 91 and Note: The optional TargetValue can be also empty. In this case it should be handled as it not exiting.Note: The optional TargetValue can be also empty. In this case it should be handled as it not exiting.

Table 92 specify the Arguments and AddressSpace representation, respectively.

Signature

StartWithTargetValue (

[in]DoubleTargetValue)

Table 97 – StartWithTargetValue Method Arguments

Argument

Description

TargetValue

(Optional) This value can be used to set the target value parallel with the start method.

Note: The optional TargetValue can be also empty. In this case it should be handled as it not exiting.

Table 98 – StartWithTargetValue Method AddressSpace Definition

Attribute

Value

BrowseName

StartWithTargetValue

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

M

The AnalogControlFunctionWithComposedTargetValueType describes an analogue control function (using analogue values), but the TargetValue is composed of several partial values.

An example of a composed target value used in mechanical stress analysers involves combining a static/constant base value with periodically changing values for defined amplitude, frequency, and waveform.

As the TargetValue is calculated from variables in the TargetValueSet, it should be read-only.

The AnalogControlFunctionWithComposedTargetValueType is formally defined in Table 99.

Table 99 – AnalogControlFunctionWithComposedTargetValueType Definition

Attribute

Value

BrowseName

AnalogControlFunctionWithComposedTargetValueType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the AnalogControlFunctionType defined in 7.6.5

0:HasComponent

Object

TargetValueSet

VariableSetType

M

Conformance Units

LADS AnalogControlFunctionWithComposedTargetValueType

TargetValueSet contains the partial values for the target value.

The AnalogControlFunctionWithRelativeTargetValueType supports applications where the target value is typically modified by relative increments or decrements.

Examples of its usage include position controllers where the actuator needs to modify its position relative to the last defined position by a specific amount, or dispenser controllers that are responsible for aspirating or dispensing a certain volume of fluid.

The optional DecreaseRate and IncreaseRate variables can be utilized to customize the dynamics of the resulting action based on application-specific requirements. These variables allow for adapting to factors such as viscosity when aspirating or dispensing fluids.

AnalogControlFunctionWithRelativeTargetValueType is formally defined in Table 100.

Table 100 – AnalogControlFunctionWithRelativeTargetValueType Definition

Attribute

Value

BrowseName

AnalogControlFunctionWithRelativeTargetValueType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the AnalogControlFunctionType defined in 7.6.5

0:HasComponent

Variable

DecreaseRate

Double

AnalogUnitRangeType

O

0:HasComponent

Method

ModifyTargetValueBy

O

0:HasComponent

Variable

IncreaseRate

Double

AnalogUnitRangeType

O

Conformance Units

LADS AnalogControlFunctionWithRelativeTargetValueType

The ModifyTargetValueBy Method is used to modify the current TargetValue by a relative amount. The resulting value shall be limited to the TargetValue’s allowed range (EURange).

The direction of the action is application dependent and is controlled by the sign of the provided value. For instance, negative values may indicate moving left and positive values may indicate moving right, or positive values may be used for aspirating a defined volume while negative values may be used for dispensing a defined volume.

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

Signature

ModifyTargetValueBy (

[in]0:DoubleValue

)

Table 101 – ModifyTargetValueBy Method Arguments

Argument

Description

Value

Relative value by which the target value will be changed. The resulting value will typically be limited to the target-value’s allowed range. Provided values can be positive or negative.

Table 102 – ModifyTargetValueBy Method AddressSpace Definition

Attribute

Value

BrowseName

ModifyTargetValueBy

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

0:Mandatory

The AnalogControlFunctionWithTotalizerType describes an analogue control (using analogue values) function with totalizer.

Typical usage examples include but are not limited to fluid controllers where the quantity of fluid needs to be accurately measured and totalled for metering purposes.

AnalogControlFunctionWithTotalizerType is formally defined in Table 103.

Table 103 – AnalogControlFunctionWithTotalizerType Definition

Attribute

Value

BrowseName

AnalogControlFunctionWithTotalizerType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the AnalogControlFunctionType defined in 7.6.5

0:HasComponent

Method

ResetTotalizer

O

0:HasComponent

Variable

TotalizedValue

Double

AnalogUnitRangeType

M, RO

Conformance Units

LADS AnalogControlFunctionWithTotalizerType

ResetTotalizer resets the totalizer to a specific value, or to zero if no input value is specified.

TotalizedValue is the totalized process value. It can be reset at any time using the ResetTotalizer() command.

The ResetTotalizer Method resets the totalizer to a specific value, or to zero if no input value is specified. The signature of this Method is specified below. Table 104 and Table 105 specify the Arguments and AddressSpace representation, respectively.

Signature

ResetTotalizer (

[in] 0:Double value

)

Table 104 – ModifyTargetValueBy Method Arguments

Argument

Description

Value

Relative value by which the target value will be changed. The resulting value will typically be limited to the target-value’s allowed range. Provided values can be positive or negative.

Table 105 – ResetTotalizer Method AddressSpace Definition

Attribute

Value

BrowseName

ResetTotalizer

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

0:Mandatory

The MultiModeAnalogControlFunctionType is used when a controller or actuator can be operated in different modes, depending on how the target value and current value are represented.

A common example in the laboratory and analytical domain is a peristaltic pump. In this case, the user can choose from various operation modes, such as relative pump speed (0 to 100%), absolute pump rotor speed in RPM, volumetric rate in mL/min (requiring pump calibration), or mass flow rate in g/min (requiring knowledge of the fluid density).

Another example in the laboratory and analytical domain is centrifuges. Operators can select between RPM or RCF (Rotational Centrifugal Force, defined as a multiple of G-force) modes. The RCF mode considers the radius of the centrifuge rotor when converting RCF to RPM.

When the centrifuge is operated in RCF mode, the RPM target value for the motor controller is calculated based on the RCF target value, while the reported RCF current value is calculated using the inverse function based on the measured rotation speed:

Centrifuge.RPM.TargetValue = f(Centrifuge.RCF.TargetValue, Radius)

Centrifuge.RCF.CurrentValue = f-1(Centrifuge.RPM.CurrentValue, Radius)

As shown, a sequence of simple (typically bijective) mathematical equations can be used to convert between the target and current values of different modes. For example, linear functions are used in the pump example, while quadratic functions are used in the centrifuge example.

Essentially, the MultiModeAnalogControlFunctionType is modelled utilizing one common state machine with its methods to control the operation of the underlying resource (inherited from BaseControlFunctionType), a set of target/current value pairs, and a variable that allows the selection of the currently commanding mode.

The MultiModeAnalogControlFunctionType is formally defined in Table 95.

Table 106 – MultiModeAnalogControlFunctionType Definition

Attribute

Value

BrowseName

MultiModeAnalogControlFunctionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseControlFunctionType defined in 7.6.1

0:HasComponent

Object

ControllerModeSet

ControllerParameterSetType

M

0:HasComponent

Variable

CurrentMode

0:UInt32

0:MultiStateDiscreteType

M, RW

Conformance Units

LADS MultiModeAnalogControlFunctionType

ControllerModeSet is the set of target/current value pairs.

CurrentMode defines the currently selected mode. Its EnumStrings array lists the different defined modes, which shall match the names of the corresponding elements in the ControllerModeSet.

Note: The EnumStrings array contains LocalizedText entries. The DisplayName of the ControllerMode is used to map the child node of the ControllerModeSet. The locale should be “en-US” or empty.

The ControllerParameterType represents a pair of target and current value variables for a specific mode of the MultiModeAnalogControlFunction (which typically have the same engineering unit).

Table 107 – ControllerParameterType Definition

Attribute

Value

BrowseName

ControllerParameterType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5

0:HasComponent

Object

AlarmMonitor

0:ExclusiveDeviationAlarmType

O

0:HasComponent

Variable

CurrentValue

0:Double

0:AnalogUnitRangeType

M, R

0:HasComponent

Variable

TargetValue

0:Double

0:AnalogUnitRangeType

M, RW

Conformance Units

LADS ControllerParameterType

AlarmMonitor indicates whether the deviation from a setpoint exceeds the limit. See: 10000-9: Alarms & Conditions | ExclusiveDeviationAlarmType.

CurrentValue is the current process value.

TargetValue is the targeted set-point value.

The DiscreteControlFunctionType describes a discrete control function (using discrete values). More specialized discrete control functions can be derived from this ObjectType. The DiscreteControlFunctionType is formally defined in Table 108.

Table 108 – DiscreteControlFunctionType Definition

Attribute

Value

BrowseName

DiscreteControlFunctionType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseControlFunctionType defined in 7.6.1

0:HasComponent

Variable

CurrentValue

BaseDataType

DiscreteItemType

M

0:HasComponent

Variable

TargetValue

BaseDataType

DiscreteItemType

M

Conformance Units

LADS DiscreteControlFunctionType

CurrentValue is a current discrete process value.

TargetValue is the targeted set-point value.

The MultiStateDiscreteControlFunctionType describes a discrete control function (using more than two discrete values). It is formally defined in Table 109.

Table 109 – MultiStateDiscreteControlFunctionType Definition

Attribute

Value

BrowseName

MultiStateDiscreteControlFunctionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the DiscreteControlFunctionType defined in 7.6.1

0:HasComponent

Variable

CurrentValue

UInt32

MultiStateDiscreteType

M

0:HasComponent

Variable

TargetValue

UInt32

MultiStateDiscreteType

M

Conformance Units

LADS MultiStateDiscreteControlFunctionType

Table 110 – MultiStateDiscreteControlFunctionType AdditionalSubcomponents

BrowsePath

References

NodeClass

BrowseName

DataType

TypeDefinition

Others

ControlFunctionState

HasComponent

Method

StartWithTargetValue

O

The StartWithTargetValue Method starts a Function on the LADS Device with the target value as an argument.

The signature of this Method is specified below. Table 91 and Note: The optional TargetValue can be also empty. In this case it should be handled as it not exiting.Note: The optional TargetValue can be also empty. In this case it should be handled as it not exiting.

Table 92 specify the Arguments and AddressSpace representation, respectively.

Signature

StartWithTargetValue (

[in]UInt32TargetValue)

Table 111 – StartWithTargetValue Method Arguments

Argument

Description

TargetValue

(Optional) This value can be used to set the target value parallel with the start method.

Note: The optional TargetValue can be also empty. In this case it should be handled as it not exiting.

Table 112 – StartWithTargetValue Method AddressSpace Definition

Attribute

Value

BrowseName

StartWithTargetValue

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

M

The TwoStateDiscreteControlFunctionType describes a discrete control function with two possible values (e.g., on/off). It is formally defined in Table 113.

Table 113 – TwoStateDiscreteControlFunctionType Definition

Attribute

Value

BrowseName

TwoStateDiscreteControlFunctionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the DiscreteControlFunctionType defined in 7.6.7

0:HasComponent

Variable

CurrentValue

Boolean

TwoStateDiscreteType

M

0:HasComponent

Variable

TargetValue

Boolean

TwoStateDiscreteType

M

Conformance Units

LADS TwoStateDiscreteControlFunctionType

Table 114 – TwoStateDiscreteControlFunctionType AdditionalSubcomponents

BrowsePath

References

NodeClass

BrowseName

DataType

TypeDefinition

Others

ControlFunctionState

HasComponent

Method

StartWithTargetValue

O

The StartWithTargetValue Method starts a Function on the LADS Device with the target value as an argument.

The signature of this Method is specified below. Table 91 and Note: The optional TargetValue can be also empty. In this case it should be handled as it not exiting.Note: The optional TargetValue can be also empty. In this case it should be handled as it not exiting.

Table 92 specify the Arguments and AddressSpace representation, respectively.

Signature

StartWithTargetValue (

[in]BooleanTargetValue)

Table 115 – StartWithTargetValue Method Arguments

Argument

Description

TargetValue

(Optional) This value can be used to set the target value parallel with the start method.

Note: The optional TargetValue can be also empty. In this case it should be handled as it not exiting.

Table 116 – StartWithTargetValue Method AddressSpace Definition

Attribute

Value

BrowseName

StartWithTargetValue

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

M

The TimerControlFunctionType defines a simple “one shot” Timer which stops once it has elapsed. It follows the design of other LADS ControlFunctions, utilizing the same state machine and similar variable definitions. The TimerFunctionType is formally defined in Table 117.

Once started, the CurrentValue counts upwards from zero until it reaches the TargetValue.

The DifferenceValue is calculated by subtracting the CurrentValue from the TargetValue. Thus, it counts downwards from the TargetValue to zero.

As soon as the CurrentValue reaches the TargetValue, the CurrentState of the TimerFunction automatically transitions to Off. This is typically accompanied by some (internal) action/effect, such as stopping the execution of a Function or similar.

In the SuspendedState the CurrentValue holds its current value and does not count further until the state switches back to On, either due to a Client command or an internal state change.

Table 117 – TimerControlFunctionType Definition

Attribute

Value

BrowseName

TimerControlFunctionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseControlFunctionType defined in 7.6.1

0:HasComponent

Variable

CurrentValue

Duration

AnalogUnitRangeType

O

0:HasComponent

Variable

DifferenceValue

Duration

AnalogUnitRangeType

O

0:HasComponent

Variable

TargetValue

Duration

AnalogUnitRangeType

O

Conformance Units

LADS TimerControlFunctionType

CurrentValue is the elapsed time in milliseconds since the Timer was started.

DifferenceValue is the remaining time in milliseconds until the Timer will be stopped.

TargetValue is the target time in milliseconds.

The CoverFunctionType is used to control the cover, door, or lid of a Laboratory Device. In addition to the FunctionType, the Operational FunctionalGroup was added for operational Parameters and Methods. Additionally, CoverStateMachine was added to monitor/control the state of a Device. The CoverFunctionType is formally defined in Table 118.

Table 118 – CoverFunctionType Definition

Attribute

Value

BrowseName

CoverFunctionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the FunctionType defined in 7.4

0:HasComponent

Object

Operational

1:FunctionalGroupType

M

0:HasComponent

Object

CoverState

CoverStateMachineType

M

Conformance Units

LADS CoverFunctionType

CoverState is a state machine which controls the cover of a LADS Device. See CoverStateMachineType for details about the controlling state machine.

The CoverStateMachineType is used to control the lid, door, or cover of a LADS Device. One Device may have any arbitrary number of lids, doors, covers and their corresponding CoverFunction. It is formally defined in Table 119.

The CoverStateMachine is depicted in Figure 19.

image023.png

Figure 19 – Overview of the CoverStateMachine

Table 119 – CoverStateMachineType Definition

Attribute

Value

BrowseName

CoverStateMachineType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the FiniteStateMachineType defined in OPC 10000-5

0:HasComponent

Method

Close

O

0:HasComponent

Object

Closed

StateType

0:HasComponent

Object

ClosedToError

TransitionType

0:HasComponent

Object

ClosedToLocked

TransitionType

0:HasComponent

Object

ClosedToLocking

TransitionType

0:HasComponent

Object

ClosedToOpened

TransitionType

0:HasComponent

Object

ClosedToOpening

TransitionType

0:HasComponent

Object

Closing

StateType

0:HasComponent

Object

ClosingToClosed

TransitionType

0:HasComponent

Object

Error

StateType

0:HasComponent

Object

ErrorToOpened

TransitionType

0:HasComponent

Method

Lock

O

0:HasComponent

Object

Locked

StateType

0:HasComponent

Object

LockedToClosed

TransitionType

0:HasComponent

Object

LockedToError

TransitionType

0:HasComponent

Object

LockedToUnlocking

TransitionType

0:HasComponent

Object

Locking

StateType

0:HasComponent

Object

LockingToLocked

TransitionType

0:HasComponent

Method

Open

O

0:HasComponent

Object

Opened

StateType

0:HasComponent

Object

OpenedToClosed

TransitionType

0:HasComponent

Object

OpenedToClosing

TransitionType

0:HasComponent

Object

Opening

StateType

0:HasComponent

Object

OpeningToOpened

TransitionType

0:HasComponent

Method

Reset

O

0:HasComponent

Method

Unlock

O

0:HasComponent

Object

Unlocking

StateType

0:HasComponent

Object

UnlockingToClosed

TransitionType

Conformance Units

LADS CoverStateMachineType

Close is a Optional Method that can be called in the Opened state to close the cover of the Device.

Closed is the state of the LADS Device cover when it is closed.

ClosedToError is triggered if the closed cover has a malfunction, such as on locking or opening.

ClosedToLocked is triggered if the closed cover is also locked. This can either be done manually on the Device or by calling the Lock Method remotely.

ClosedToLocking is triggered if the closed cover starts the process of closing. This can either be done manually on the Device or by calling the Lock Method remotely.

ClosedToOpened is triggered if the cover of the Device is opened. This can be done either manually or by calling the Open Method remotely.

ClosedToOpening is triggered in the process of opening the cover. This can be done either manually or by calling the Open Method remotely.

Closing is the transitive state of the LADS Device cover when it is in the process of closing.

ClosingToClosed is triggered if the cover has ended its process of closing and is finally closed.

Error is the state of the LADS Device cover when it is in an error state. For example, if the locking did not work properly or there is some kind of malfunction on locking/closing the Device cover.

ErrorToOpened is triggered if the cover recovers from an Error state. This can either be done manually or by calling the Reset Method.

Lock is a Optional Method that can be called from the Closed state to lock the cover of the Device.

Locked is the state of the LADS Device cover when it is closed and locked.

LockedToClosed is triggered if the locked cover is unlocked. This can either be done manually on the Device or by calling the Unlock Method remotely.

LockedToError is triggered if the locked cover has a malfunction, such as on unlocking.

LockedToUnlocking is triggered if the locked cover starts the process of unlocking. This can either be done manually on the Device or by calling the Unlock Method remotely.

Locking is the transitive state of the LADS Device cover when it is in the process of locking.

LockingToLocked is triggered if the cover has ended its locking process is finally locked.

Open is a Mandatory Method that can be called from the Closed state to open the cover of the Device.

Opened is the state of the LADS Device cover when it is opened.

OpenedToClosed is triggered if the cover of the Device is closed, either manually or by calling the Close Method remotely.

OpenedToClosing is triggered if the cover of the Device starts the process of closing, either manually or by calling the Close Method remotely.

Opening is the transitive state of the LADS Device cover when it is in the process of opening.

OpeningToOpened is triggered if the cover has ended its opening process is finally opened.

Unlock is a Optional Method that can be called from the Locked state to unlock the cover of the Device.

Unlocking is the transitive state of the LADS Device cover when it is in the process of unlocking.

UnlockingToClosed is triggered if the cover has ended its unlocking process is finally closed.

Reset is a Mandatory Method that can be called from the Error state to open the cover of the Device.

The children of the CoverStateMachineType have additional References, which are defined in Table 120.

Table 120 – CoverStateMachineType additional References

SourceBrowsePath

Reference Type

Is Forward

TargetBrowsePath

ClosedToError

0:FromState

True

Closed

0:ToState

True

Error

0:HasEffect

True

TransitionEventType

ClosedToLocked

0:FromState

True

Closed

0:ToState

True

Locked

0:HasCause

True

Lock

0:HasEffect

True

TransitionEventType

ClosedToLocking

0:FromState

True

Closed

0:ToState

True

Locking

0:HasCause

True

Lock

ClosedToOpened

0:FromState

True

Closed

0:ToState

True

Opened

0:HasCause

True

Open

0:HasEffect

True

TransitionEventType

ClosedToOpening

0:FromState

True

Closed

0:ToState

True

Opening

0:HasCause

True

Open

ClosingToClosed

0:FromState

True

Closing

0:ToState

True

Closed

ErrorToOpened

0:FromState

True

Error

0:ToState

True

Opened

0:HasCause

True

Reset

0:HasEffect

True

TransitionEventType

LockedToClosed

0:FromState

True

Locked

0:ToState

True

Closed

0:HasCause

True

Unlock

0:HasEffect

True

TransitionEventType

LockedToError

0:FromState

True

Locked

0:ToState

True

Error

0:HasEffect

True

TransitionEventType

LockedToUnlocking

0:FromState

True

Locked

0:ToState

True

Unlocking

0:HasCause

True

Unlock

LockingToLocked

0:FromState

True

Locking

0:ToState

True

Locked

OpenedToClosed

0:FromState

True

Opened

0:ToState

True

Closed

0:HasCause

True

Close

0:HasEffect

True

TransitionEventType

OpenedToClosing

0:FromState

True

Opened

0:ToState

True

Closing

0:HasCause

True

Close

OpeningToOpened

0:FromState

True

Opening

0:ToState

True

Opened

UnlockingToClosed

0:FromState

True

Unlocking

0:ToState

True

Closed

The Component Variables of the CoverStateMachineType have additional Attributes, as defined in Table 121.

Table 121 – CoverStateMachineType Attribute Values for Child Nodes

BrowsePath

Value Attribute

Closed

0:StateNumber

1

Closing

0:StateNumber

5

Error

0:StateNumber

2

Locked

0:StateNumber

3

Locking

0:StateNumber

6

Opened

0:StateNumber

4

Opening

0:StateNumber

7

Unlocking

0:StateNumber

8

ClosedToError

0:TransitionNumber

6

ClosedToLocked

0:TransitionNumber

3

ClosedToLocking

0:TransitionNumber

8

ClosedToOpened

0:TransitionNumber

2

ClosedToOpening

0:TransitionNumber

9

ClosingToClosed

0:TransitionNumber

10

ErrorToOpened

0:TransitionNumber

7

LockedToClosed

0:TransitionNumber

4

LockedToError

0:TransitionNumber

5

LockedToUnlocking

0:TransitionNumber

11

LockingToLocked

0:TransitionNumber

12

OpenedToClosed

0:TransitionNumber

1

OpenedToClosing

0:TransitionNumber

13

OpeningToOpened

0:TransitionNumber

14

UnlockingToClosed

0:TransitionNumber

15

The Close Method can be called in the Opened state to close the cover of the Device. The signature of this Method is specified below. Table 122 specifies its representation in the AddressSpace.

Signature

Close ()

Table 122 – Close Method AddressSpace Definition

Attribute

Value

BrowseName

Close

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

The Lock Method can be called from the Closed state to lock the cover of the Device. The signature of this Method is specified below. Table 123 specifies its representation in the AddressSpace.

Signature

Lock ()

Table 123 – Lock Method AddressSpace Definition

Attribute

Value

BrowseName

Lock

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

The Open Method can be called from the Closed state to open the cover of the Device. The signature of this Method is specified below. Table 124 specifies its representation in the AddressSpace.

Signature

Open ()

Table 124 – Open Method AddressSpace Definition

Attribute

Value

BrowseName

Open

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

The Reset Method can be called from the Error state to open the cover of the Device. The signature of this Method is specified below. Table 125 specifies the Arguments and AddressSpace representation.

Signature

Reset ()

Table 125 – Reset Method AddressSpace Definition

Attribute

Value

BrowseName

Reset

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

The Unlock Method can be called to unlock the cover. The signature of this Method is specified below. Table 126 specifies its representation in the AddressSpace.

Signature

Unlock ()

Table 126 – Unlock Method AddressSpace Definition

Attribute

Value

BrowseName

Unlock

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule