Figure 8 provides an overview of the signal model, which is an extension to the types defined in OPC 10000-8.
Figure 8 - Signal Model Overview
This specification adds new sub-types to each of the existing VariableTypes in OPC 10000-8.
The AnalogSignalVariableType is used for analog variables representing temperature, flow, pressure, etc.. The AnalogSignalVariableType is a subtype of the AnalogUnitRangeType and adds the optional components ActualValue, SimulationValue and Damping. The model and its subtypes are illustrated in Figure 9.
Figure 9 - AnalogSignal and Signal Object Model
The AnalogSignalVariableType can be used to model any analog signal type. It extends the AnalogUnitRangeType defined in OPC 10000-8 to add additional information such as values for simulation and damping as well as dictionary references.
The ActualValue contains the unsimulated value during a simulation and SimulationValue contains the value to be used during simulation, as illustrated in Figure 10. The Value attribute always represents what is being reported by the Variable.
AnalogSignalVariableType is formally defined in Table 24.
Table 24 - AnalogSignalVariableType
Attribute |
Value |
||||
BrowseName |
AnalogSignalVariableType |
||||
IsAbstract |
False |
||||
ValueRank |
−2 (−2 = ‘Any’) |
||||
DataType |
Number |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of AnalogUnitRangeType defined in OPC 10000-8 |
|||||
|
|
|
|
|
|
0:HasComponent |
Variable |
ActualValue |
0:Number{Any} |
0:BaseDataVariableType |
0:Optional |
0:HasComponent |
Variable |
SimulationValue |
0:Number{Any} |
0:BaseDataVariableType |
0:Optional |
|
|
|
|
|
|
0:HasComponent |
Variable |
SimulationState |
0:Boolean |
0:BaseDataVariableType |
0:Optional |
0:HasProperty |
Variable |
Damping |
0:Float |
0:PropertyType |
0:Optional |
0:HasDictionaryEntry |
Object |
|
0:IrdiDictionaryEntryType |
|
|
|
|
|
|
|
|
0:HasSubtype |
VariableType |
TemperatureMeasurementVariableType |
|
||
0:HasSubtype |
VariableType |
PressureMeasurementVariableType |
|
||
0:HasSubtype |
VariableType |
FlowMeasurementVariableType |
|
||
0:HasSubtype |
VariableType |
LevelMeasurementVariableType |
|
||
0:HasSubtype |
VariableType |
ActualDensityVariableType |
|
||
0:HasSubtype |
VariableType |
ControlVariableType |
|
||
0:HasSubtype |
VariableType |
TotalizerVariableType |
|
||
0:HasSubtype |
VariableType |
AnalyticalMeasurementVariableType |
|
AnalogSignalVariableType also extends AnalogUnitRangeType by providing additional references. These references provide dictionary entries for all of the variables defined by this addition as well as dictionary references for fields in the parent AnalogUnitRangeType. See Table 25 for a complete definition.
Table 25 - AnalogSignalVariableType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
ActualValue |
0:HasDictionaryEntry |
0:True |
|
SimulationValue |
0:HasDictionaryEntry |
0:True |
|
Damping |
0:HasDictionaryEntry |
0:True |
|
SimulationState |
0:HasDictionaryEntry |
0:True |
The VariableType is extended in this definition to include the dictionary reference. The dictionary provides an additional description of Value which is copied here for clarity – “ABN634#001 defines parameter indicating the input or output value of a device using the units of measure of the process variable.”
ActualValue reflects the measured value independent of the simulation state. It is further described by dictionary entry ABN644#001 which states “defines parameter indicating the value of the not simulated process variable of a device using the units of measure of the process variable”.
SimulationValue provides a value that substitutes Value if the simulation is enabled. It is further described by dictionary entry ABN613#001 which states “defines parameter indicating the simulated value of a variable using the units of measure of the simulated variable”.
Damping provides a value that is used to flatten changes in the value. It is further described by dictionary entry ABH526#001 which states “defines for the output of a first-order system forced by a step or an impulse, the time required to complete 63.2% of the total rise or decay at any instant during the process”.
SimulationState is defined by IRDI as ABN611#001 which states “defines parameter indicating the state of simulation” and used also to enable/disable simulation.
The Property EngineeringUnits – inherited from AnalogUnitRangeType (see OPC 10000-8 Amendment 1) – shall be used to define the unit for the AnalogSignalVariableType instance and also for its ActualValue and SimulationValue component Variables.
In addition, each EngineeringUnits Property shall provide a HasDictionaryEntry reference to the IEC Common Data Dictionary entry for "unit of measure" which is 3:0112/2///61987#ABA968#002. Figure 11 illustrates this with an example.
Figure 11 - EngineeringUnits Property with HasDictionaryEntry Reference
If MultiStateDictionaryEntryDiscreteType Variables reference an IEC 61987 CDD PROPERTY with a Value list, the following mapping applies:
- For each possible element in the "Value list" map the Preferred name of the element to the „EnumValues“ Property.
- For each possible element in the "Value list" map the IRDI of the element to the „EnumDictionaryEntries“ Property.
An example for the SensorConnection Property with IRDI 0112/2///61987#ABB091#002 is in Table 26:
Table 26 - Example of a MultiStateDictionaryEntryDiscreteType with CDD reference
IEC 61987 CDD |
ecl@ss |
OPC UA mapping |
|
„Value list“ attribute |
„Value list“ attributeto be defined |
„EnumValues“ Property |
„EnumDictionaryEntries“ Property |
0112/2///61987#ABL113 - 4-wire |
0173-1#02-CCCnnn#00n |
[0] "4-wire" |
[0] 3:0112/2///61987#ABL113#001 |
0112/2///61987#ABL114 - 3-wire |
0173-1#02-CCCnnn#00n |
[1] "3-wire" |
[1] 3:0112/2///61987#ABL114#001 |
0112/2///61987#ABL115 - 2-wire |
0173-1#02-CCCnnn#00n |
[2] "2-wire" |
[2] 3:0112/2///61987#ABL115#001 |
0112/2///61987#ABI407 – others |
0173-1#02-CCCnnn#00n |
[3] "others" |
[3] 3:0112/2///61987#ABI407#004 |
The TemperatureMeasurementVariableType is a subtype of the AnalogSignalVariableType. It is formally defined in Table 27.
Table 27 - TemperatureMeasurementVariableType
Attribute |
Value |
||||
BrowseName |
TemperatureMeasurementVariableType |
||||
IsAbstract |
False |
||||
ValueRank |
−2 (−2 = ‘Any’) |
||||
DataType |
Float |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of AnalogSignalVariableType |
|||||
0:HasComponent |
Variable |
SensorType |
0:UInt32{Any} |
0:MultiStateDictionaryEntryDiscreteType |
0:Mandatory |
0:HasComponent |
Variable |
SensorConnection |
0:UInt32{Any} |
0:MultiStateDictionaryEntryDiscreteType |
0:Optional |
0:HasComponent |
Variable |
SensorReference |
0:UInt32{Any} |
0:MultiStateDictionaryEntryDiscreteType |
0:Optional |
0:HasDictionaryEntry |
Object |
|
0:IrdiDictionaryEntryType |
|
This type defines temperature and is formally defined by ABA927#005.
ABA927#005 defines for a physical system exchanging quantities of heat with two bodies, during a reversible cycle, a positive state quantity characterizing each body and proportional to the quantity of heat exchanged with this body (Temperature).
For SensorType there are two possible IRDIs as target of the HasDictionaryEntry reference, depending on the kind of the connected sensor. In case of RTD (thermoresistance) sensors the IRDI 3:0112/2///61987#ABB088#002 shall be referenced, in case of thermocouple sensors the IRDI 3:0112/2///61987#ABB092#002 shall be referenced. For mapping rules see 8.2.4.
SensorType: ABB088#002 defines classification of RTDs based on material and resistance used.
SensorType: ABB092#002 defines classification of a thermocouple according to the material pair or standard type code.
SensorConnection: ABB091#002 defines classification of an RTD connection based on the number of wires used. For mapping rules see 8.2.4.
SensorReference: ABB093#002 defines type of reference junction for a thermocouple. For mapping rules see 8.2.4.
Table 28 - TemperatureMeasurementVariableType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
SensorConnection |
0:HasDictionaryEntry |
0:True |
|
SensorReference |
0:HasDictionaryEntry |
0:True |
The FlowMeasurementVariableType is a subtype of the AnalogSignalVariableType. It is formally defined in Table 29.
Table 29 - FlowMeasurementVariableType
Attribute |
Value |
||||
BrowseName |
FlowMeasurementVariableType |
||||
IsAbstract |
False |
||||
ValueRank |
−2 (−2 = ‘Any’) |
||||
DataType |
Float |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of AnalogSignalVariableType |
|||||
0:HasProperty |
Variable |
LowFlowCutOff |
0:Float{Any} |
0:PropertyType |
0:Mandatory |
0:HasComponent |
Variable |
FlowDirection |
0:UInt32{Any} |
0:MultiStateDictionaryEntryDiscreteType |
0:Optional |
0:HasSubtype |
VariableType |
MassFlowRateVariableType |
|
||
0:HasSubtype |
VariableType |
ActualVolumeFlowRateVariableType |
|
||
0:HasSubtype |
VariableType |
NormalizedVolumeFlowRateVariableType |
|
This type defines flow and is formally defined within the subtypes.
LowFlowCutOff: ABJ724#002 defines value of flow cut-off in units of span.
FlowDirection: ABN594#002 defines configuration parameter of the value sign of the flow signal for forward flow. For mapping rules see 8.2.4.
Table 30 - FlowMeasurementVariableType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
LowFlowCutOff |
0:HasDictionaryEntry |
0:True |
|
FlowDirection |
0:HasDictionaryEntry |
0:True |
The PressureMeasurementVariableType is a subtype of the AnalogSignalVariableType. It is formally defined in Table 31.
Table 31 - PressureMeasurementVariableType
Attribute |
Value |
|||||
BrowseName |
PressureMeasurementVariableType |
|||||
IsAbstract |
False |
|||||
ValueRank |
−2 (−2 = ‘Any’) |
|||||
DataType |
Float |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
|
Subtype of AnalogSignalVariableType |
||||||
0:HasDictionaryEntry |
Object |
|
0:IrdiDictionaryEntryType |
|
This type defines pressure and is formally defined within ABN616#001.
ABN616#001 defines at a point of a surface, scalar quantity equal to the limit of the quotient of the magnitude of the component vector normal to the surface of the force acting at this point, by the area of a surface containing the point, when all the dimensions of that surface tend to zero (Pressure).
The LevelMeasurementVariableType is a subtype of the AnalogSignalVariableType. It is formally defined in Table 32.
Table 32 - LevelMeasurementVariableType
Attribute |
Value |
|||||
BrowseName |
LevelMeasurementVariableType |
|||||
IsAbstract |
False |
|||||
ValueRank |
−2 (−2 = ‘Any’) |
|||||
DataType |
Float |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
|
Subtype of AnalogSignalVariableType |
||||||
0:HasDictionaryEntry |
Object |
|
0:IrdiDictionaryEntryType |
|
This type defines level and is formally defined within ABH329#001.
ABH329#002 defines height of process material in a tank, vessel, silo or other container.
The MassFlowRateVariableType is a subtype of the FlowMeasurementVariableType. It is formally defined in Table 33.
Table 33 - MassFlowRateVariableType
Attribute |
Value |
||||
BrowseName |
MassFlowRateVariableType |
||||
IsAbstract |
False |
||||
ValueRank |
−2 (−2 = ‘Any’) |
||||
DataType |
Float |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of FlowMeasurementVariableType |
|||||
0:HasDictionaryEntry |
Object |
|
0:IrdiDictionaryEntryType |
|
This type defines mass flow and is formally defined within ABB290#005.
ABB290#005 defines mass of material flowing per unit time.
The ActualVolumeFlowRateVariableType is a subtype of the FlowMeasurementVariableType. It is formally defined in Table 34.
Table 34 - ActualVolumeFlowRateVariableType
Attribute |
Value |
||||||
BrowseName |
ActualVolumeFlowRateVariableType |
||||||
IsAbstract |
False |
||||||
ValueRank |
−2 (−2 = ‘Any’) |
||||||
DataType |
Float |
||||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
||
Subtype of FlowMeasurementVariableType |
|||||||
0:HasDictionaryEntry |
Object |
|
0:IrdiDictionaryEntryType |
|
This type defines volume flow and is formally defined within ABB291#005.
ABB291#005 defines actual volume of fluid that passes a given point per unit time.
The NormalizedVolumeFlowRateVariableType is a subtype of the FlowMeasurementVariableType. It is formally defined in Table 35.
Table 35 - NormalizedVolumeFlowRateVariableType
Attribute |
Value |
||||||
BrowseName |
NormalizedVolumeFlowRateVariableType |
||||||
IsAbstract |
False |
||||||
ValueRank |
−2 (−2 = ‘Any’) |
||||||
DataType |
Float |
||||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
||
Subtype of FlowMeasurementVariableType |
|||||||
0:HasDictionaryEntry |
Object |
|
0:IrdiDictionaryEntryType |
|
This type defines normalized volume flow and is formally defined within ABB292#005.
ABB292#001 defines volume of material flowing per unit time calculated to base conditions.
The ActualDensityVariableType is a subtype of the AnalogSignalVariableType. It is formally defined in Table 36.
Table 36 - ActualDensityVariableType
Attribute |
Value |
||||||
BrowseName |
ActualDensityVariableType |
||||||
IsAbstract |
False |
||||||
ValueRank |
−2 (−2 = ‘Any’) |
||||||
DataType |
Float |
||||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
||
Subtype of AnalogSignalVariableType |
|||||||
0:HasDictionaryEntry |
Object |
|
0:IrdiDictionaryEntryType |
|
This type defines density and is formally defined within ABA946#004.
ABA946#001 defines density measured under operating conditions.
The ControlVariableType is a subtype of the AnalogSignalVariableType. It is formally defined in Table 37.
Table 37 - ControlVariableType
Attribute |
Value |
||||
BrowseName |
ControlVariableType |
||||
IsAbstract |
False |
||||
ValueRank |
−2 (−2 = ‘Any’) |
||||
DataType |
Float |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of AnalogSignalVariableType |
|||||
0:HasComponent |
Variable |
Setpoint |
0:Float{Any} |
0:BaseAnalogType |
0:Mandatory |
0:HasComponent |
Variable |
OperatingDirection |
0:UInt32 |
0:MultiStateDictionaryEntryDiscreteType |
0:Mandatory |
0:HasComponent |
Variable |
ActuatorType |
0:UInt32 |
0:MultiStateDictionaryEntryDiscreteType |
0:Mandatory |
0:HasDictionaryEntry |
Object |
|
0:IrdiDictionaryEntryType |
|
This type defines control which is used e.g. for an actuator, positioner.
ABJ683#001 defines parameter indicating the current output value of the block (READBACK_VALUE).
Setpoint: ABN607#001 defines set point for a valve position.
OperatingDirection: ABD740#002 defines output change to a given input signal. For mapping rules see 8.2.4.
ActuatorType: ABD742#002 defines classification of a positioner according to the actuator for which it can be used. For mapping rules see 8.2.4.
Table 38 - ControlVariableType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
Setpoint |
0:HasDictionaryEntry |
0:True |
|
OperatingDirection |
0:HasDictionaryEntry |
0:True |
|
ActuatorType |
0:HasDictionaryEntry |
0:True |
The TotalizerVariableType provides means to summarize pulses. The TotalizerVariableType is a subtype of the AnalogSignalVariableType. It is formally defined in Table 39.
Table 39 - TotalizerVariableType
Attribute |
Value |
||||
BrowseName |
TotalizerVariableType |
||||
IsAbstract |
False |
||||
ValueRank |
−2 (−2 = ‘Any’) |
||||
DataType |
Number |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of AnalogSignalVariableType |
|||||
0:HasProperty |
Variable |
PulseValue |
0:Number |
0:PropertyType |
0:Mandatory |
0:HasProperty |
Variable |
PulseWidth |
0:Float |
0:PropertyType |
0:Mandatory |
This type defines a totalizer value.
For TotalizerVariableType there are two possible IRDIs as target of the HasDictionaryEntry reference, depending on the type of the totalized quantity. In case of mass totalization the IRDI 3:0112/2///61987#ABH327#001 shall be referenced, in case of actual volume totalization the IRDI 3:0112/2///61987#ABH328#001 shall be referenced. The related HasDictionaryEntry reference shall be defined after the concrete totalizer type is known.
PulseValue: ABA418#002 defines mass quantity assigned to one pulse.
PulseValue: ABE882#001 defines volume quantity assigned to one pulse.
PulseWidth: ABA635#002 defines factory setting of the pulse width.
Table 40 - TotalizerVariableType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
PulseWidth |
0:HasDictionaryEntry |
0:True |
For PulseValue there are two possible IRDIs as target of the HasDictionaryEntry reference, depending on the type of the totalized quantity. The dictionary entry for PulseValue shall be 3:0112/2///61987#ABA418#001 for mass flow and 3:0112/2///61987#ABE882#001 for volume flow.
The AnalyticalMeasurementVariableType is a subtype of the AnalogSignalVariableType. It is formally defined in Table 41.
Table 41 - AnalyticalMeasurementVariableType
Attribute |
Value |
||||
BrowseName |
AnalyticalMeasurementVariableType |
||||
IsAbstract |
False |
||||
ValueRank |
−2 (−2 = ‘Any’) |
||||
DataType |
Float |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of AnalogSignalVariableType |
This type defines analytical measurement.
The TwoStateDiscreteSignalVariableType is used for process variables, that can have two states, and illustrated in Figure 8. It is formally defined in Table 42.
Table 42 - TwoStateDiscreteSignalVariableType
Attribute |
Value |
||||
BrowseName |
TwoStateDiscreteSignalVariableType |
||||
IsAbstract |
False |
||||
ValueRank |
−2 (−2 = ‘Any’) |
||||
DataType |
Boolean |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of TwoStateDiscreteType defined in OPC 10000-8 |
|||||
0:HasComponent |
Variable |
ActualValue |
0:Boolean{Any} |
0:BaseDataVariableType |
0:Optional |
0:HasComponent |
Variable |
SimulationValue |
0:Boolean{Any} |
0:BaseDataVariableType |
0:Optional |
0:HasComponent |
Variable |
SimulationState |
0:Boolean |
0:BaseDataVariableType |
0:Optional |
0: HasDictionaryEntry |
Object |
|
0:IrdiDictionaryEntryType |
|
ActualValue: ABN645#001 defines parameter indicating the binary value of a not simulated binary process variable of a device.
SimulationValue: ABN632#001 parameter indicating the simulated value of a binary variable.
SimulationState is defined by IRDI as ABN611#001 which states “defines parameter indicating the state of simulation” and used also to enable/disable simulation.
Table 43 - TwoStateDiscreteSignalVariableType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
ActualValue |
0:HasDictionaryEntry |
0:True |
|
SimulationValue |
0:HasDictionaryEntry |
0:True |
|
SimulationState |
0:HasDictionaryEntry |
0:True |
The MultiStateDiscreteSignalVariableType is used for process variables that can have more than two states. It is formally defined in Table 44.
Table 44 - MultiStateDiscreteSignalVariableType
Attribute |
Value |
||||
BrowseName |
MultiStateDiscreteSignalVariableType |
||||
IsAbstract |
False |
||||
ValueRank |
−1 (−1 = ‘Scalar’) |
||||
DataType |
UInt32 |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of MultiStateDictionaryEntryDiscreteBaseType defined in OPC 10000-19 |
|||||
0:HasComponent |
Variable |
ActualValue |
0:UInt32 |
0:BaseDataVariableType |
0:Optional |
0:HasComponent |
Variable |
SimulationValue |
0:UInt32 |
0:BaseDataVariableType |
0:Optional |
0:HasComponent |
Variable |
SimulationState |
0:Boolean |
0:BaseDataVariableType |
0:Optional |
0:HasDictionaryEntry |
Object |
|
0:IrdiDictionaryEntryType |
|
ActualValue: ABN646#001 parameter indicating the discrete value of the not simulated discrete process variable of a device.
SimulationValue: ABN637#001 defines parameter indicating the simulated discrete value of a variable, which can have multiple states.
SimulationState is defined by IRDI as ABN611#001 which states “defines parameter indicating the state of simulation” and used also to enable/disable simulation.
Table 45 - MultiStateDiscreteSignalVariableType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
ActualValue |
0:HasDictionaryEntry |
0:True |
|
SimulationValue |
0:HasDictionaryEntry |
0:True |
|
SimulationState |
0:HasDictionaryEntry |
0:True |
The DiscreteSignalVariableType is used for process variables of any data type, Integer, UInteger, Boolean, Structure etc. E.g. the data type Structure can be for aggregation of multiple values into one signal variable. ActualValue contains the unsimulated value during a simulation and SimulationValue contains the value to be used during simulation.
The DiscreteSignalVariableType is a subtype of the DiscreteItemType defined in OPC 10000-8 and adds optionally ActualValue and SimulationValue components. It is formally defined in Table 46.
Table 46 - DiscreteSignalVariableType
Attribute |
Value |
||||
BrowseName |
DiscreteSignalVariableType |
||||
IsAbstract |
False |
||||
ValueRank |
−2 (−2 = ‘Any’) |
||||
DataType |
BaseDataType |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of DiscreteItemType defined in OPC 10000-8 |
|||||
0:HasComponent |
Variable |
ActualValue |
0:BaseDataType{Any} |
0:BaseDataVariableType |
0:Optional |
0:HasComponent |
Variable |
SimulationValue |
0:BaseDataType{Any} |
0:BaseDataVariableType |
0:Optional |
0:HasComponent |
Variable |
SimulationState |
0:Boolean |
0:BaseDataVariableType |
0:Optional |
ActualValue: ABN644#001 parameter indicating the discrete value of the not simulated discrete process variable of a device.
SimulationValue: ABN613#001 defines parameter indicating the simulated discrete value of a variable, which can have multiple states.
SimulationState is defined by IRDI as ABN611#001 which states “defines parameter indicating the state of simulation” and used also to enable/disable simulation.
Table 47 - DiscreteSignalVariableType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
ActualValue |
0:HasDictionaryEntry |
0:True |
|
SimulationValue |
0:HasDictionaryEntry |
0:True |
|
SimulationState |
0:HasDictionaryEntry |
0:True |