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