OPC UA subtypes

FactoryTalk Linx OPC UA Connector supports both simple and complex subtypes.
Use the DataType model to define simple and structured data types. DataTypes describe the contents of the
Value
attribute of Variables and VariableTypes. A DataType might be a subtype of another DataType.
A simple subtype represents a single value, which includes all signed or unsigned Integers, Boolean, Float, Double, String, Guid, XmlElement, and StatusCode. The subtype’s encoded data on-the-wire is identical to the supertype. For example, there is no difference in the encoded bits of a
UInt32
and any of its subtypes.
Clients can read the DataType attribute of a Variable or VariableType to identify the DataType of the Value. An example of a simple DataType is Duration. It is handled on the wire as a Double but the Client can read the DataType attribute and interpret the Double value as a Duration.
Subtypes of Structures and Enumerations are complex subtypes.
A Structured subtype extends the supertype’s definition by adding additional fields. In this case, the subtype’s encoded data on-the-wire is different from the supertype.
An Enumeration subtype has different mappings from a numeric value to a string. The value transmitted on the wire is numeric, but the associated text varies with each Enumeration. For example, one Enumeration may associate the value “1” with the text “Red”, and another Enumeration may associate “1” with “High Limit”.
The OPC spec allows subtyping of other types of definition. Subtyping of ObjectTypes and VariableTypes allows:
  • Clients that only know the supertype to handle an instance of the subtype as if it were an instance of the supertype.
  • Instances of the supertype to be replaced by instances of the subtype.
  • Subtypes to inherit common characteristics of the supertype.
Abstract DataTypes are also supported. These do not have any encodings and cannot be transmitted on the wire. Variables and VariableTypes may use abstract DataTypes to indicate that their Value may be any one of the subtypes of the abstract DataType. An example of an abstract DataType is Integer, and its subtypes include SByte, Int16, Int32, and Int64.
References are used to relate Nodes to each other. The
HasSubtype
reference expresses a relationship to a subtype, and the inverse
SubtypeOf
reference identifies the parent type of this type. Subtypes are identified when the DataType’s Node contains the reverse reference SubtypeOf.
As shown here, all the items below the simple DataType String are subtypes and are supported, such as NumericRange.
OPC UA subtype
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.
Normal