7.6 Control Functions
7.6.1 BaseControlFunctionType ObjectType Definition
The BaseControlFunctionType provides an abstract superclass for all control functions. It is formally defined in Table 88.
| 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.
7.6.2 ControlFunctionStateMachineType Definition
7.6.2.1 Overview
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.
| 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.
7.6.2.2 Start
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()| Attribute | Value | ||||
| BrowseName | Start | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
7.6.2.3 StartWithTargetValue
The StartWithTargetValue Method starts a Function on the LADS Device with the target value as an argument.
Table 92 specify the Arguments and AddressSpace representation, respectively.
Signature
StartWithTargetValue (
[in] Number TargetValue)| Argument | Description |
| TargetValue | (Optional) This value can be used to set the target value parallel with the start method. |
| Attribute | Value | ||||
| BrowseName | StartWithTargetValue | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:InputArguments | 0:Argument[] | 0:PropertyType | M |
7.6.3 ControllerTuningParameterType Definition
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).
| 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 | |||||
7.6.4 PidControllerParameterType Definition
The PidControllerParameterType contains the parameters of an PID controller. It is formally defined in Table 94.
| 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.
7.6.5 AnalogControlFunctionType ObjectType Definition
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.
| 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.
| BrowsePath | References | NodeClass | BrowseName | DataType | TypeDefinition | Others |
| ControlFunctionState | HasComponent | Method | StartWithTargetValue | O |
7.6.5.1 StartWithTargetValue
The StartWithTargetValue Method starts a Function on the LADS Device with the target value as an argument.
Table 92 specify the Arguments and AddressSpace representation, respectively.
Signature
StartWithTargetValue (
[in] Double TargetValue)| Argument | Description |
| TargetValue | (Optional) This value can be used to set the target value parallel with the start method. |
| Attribute | Value | ||||
| BrowseName | StartWithTargetValue | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:InputArguments | 0:Argument[] | 0:PropertyType | M |
7.6.6 AnalogControlFunctionWithComposedTargetValueType ObjectType Definition
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.
| 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.
7.6.7 AnalogControlFunctionWithRelativeTargetValueType Definition
7.6.7.1 Overview
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.
| 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 | |||||
7.6.7.2 ModifyTargetValueBy
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:Double Value
)| 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. |
| Attribute | Value | ||||
| BrowseName | ModifyTargetValueBy | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:InputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
7.6.8 AnalogControlFunctionWithTotalizerType ObjectType Definition
7.6.8.1 Overview
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.
| 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.
7.6.8.2 ResetTotalizer
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
)| 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. |
| Attribute | Value | ||||
| BrowseName | ResetTotalizer | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:InputArguments | 0:Argument[] | 0:PropertyType | 0:Mandatory |
7.6.9 MultiModeAnalogControlFunctionType ObjectType Definition
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.
| 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.
7.6.10 ControllerParameterType ObjectType Definition
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).
| 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.
7.6.11 DiscreteControlFunctionType ObjectType Definition
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.
| 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.
7.6.12 MultiStateDiscreteControlFunctionType ObjectType Definition
The MultiStateDiscreteControlFunctionType describes a discrete control function (using more than two discrete values). It is formally defined in Table 109.
| 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 | |||||
| BrowsePath | References | NodeClass | BrowseName | DataType | TypeDefinition | Others |
| ControlFunctionState | HasComponent | Method | StartWithTargetValue | O |
7.6.12.1 StartWithTargetValue
The StartWithTargetValue Method starts a Function on the LADS Device with the target value as an argument.
Table 92 specify the Arguments and AddressSpace representation, respectively.
Signature
StartWithTargetValue (
[in] UInt32 TargetValue)| Argument | Description |
| TargetValue | (Optional) This value can be used to set the target value parallel with the start method. |
| Attribute | Value | ||||
| BrowseName | StartWithTargetValue | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:InputArguments | 0:Argument[] | 0:PropertyType | M |
7.6.13 TwoStateDiscreteControlFunctionType ObjectType Definition
The TwoStateDiscreteControlFunctionType describes a discrete control function with two possible values (e.g., on/off). It is formally defined in Table 113.
| 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 | |||||
| BrowsePath | References | NodeClass | BrowseName | DataType | TypeDefinition | Others |
| ControlFunctionState | HasComponent | Method | StartWithTargetValue | O |
7.6.13.1 StartWithTargetValue
The StartWithTargetValue Method starts a Function on the LADS Device with the target value as an argument.
Table 92 specify the Arguments and AddressSpace representation, respectively.
Signature
StartWithTargetValue (
[in] Boolean TargetValue)| Argument | Description |
| TargetValue | (Optional) This value can be used to set the target value parallel with the start method. |
| Attribute | Value | ||||
| BrowseName | StartWithTargetValue | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | 0:InputArguments | 0:Argument[] | 0:PropertyType | M |
7.6.14 TimerControlFunctionType ObjectType Definition
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.
| 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.