A.6 VariableType mapping

All the rules in A.5 for ObjectTypes also apply to VariableTypes with these notable differences:

  1. The base AML SUC for OPC UA VariableTypes is BaseVariableType;

  2. VariableTypes have a “Value” attribute and other attributes related to Value.

In BaseVariableType, the Value attribute has the DataType BaseDataType, as shown in Figure A.11.

Figure A.11 – Attributes of BaseVariableType

Table A.7 shows the additional attributes introduced by the BaseVariableType SUC.

Table A.7 – Mapping UA Variable/VariableType NodeClass attributes to BaseVariableType SUC attributes
Attribute name

Included in

SUC or Instances

Notes
IsAbstractXIf not present in the AML SUC type, the value shall be FALSE. In some instances, this attribute has no meaning and should be deleted or ignored.
ValueXIf not present in the AML Object, the attribute value is NULL in OPC UA.
DataTypeNever present in the AML Object. The UA DataType is inferred by the DataType of the AML Value attribute.
ValueRankXIf not present in the AML Object, the value in OPC UA shall be Scalar (‑1).
ArrayDimensionsXIf not present in the AML Object, the attribute is also omitted in OPC UA.
AccessLevelXIf not present in the AML Object, the value of all fields is unknown. OPC UA Servers may override some or all of the configured values
UserAccessLevelNever present in the AML Object.
MinimumSamplingIntervalXIf not present in the AML Object, the attribute is also omitted in OPC UA.
HistorizingNever present in the AML Object.
AccessLevelExXThe bit fields of AccessLevelEx that are also contained in AccessLevel are not mapped to AML. If not present in the AML Object, the value of all fields is unknown. OPC UA Servers may override some or all of the configured values.

BaseDataType is the root abstract DataType from which all other OPC UA DataTypes derive. The semantic implied by this is that the Value of an instance can be any valid DataType. Typically, VariableTypes that derive from BaseVariable type will alter the DataType of Value to be more restrictive. This could be other abstract DataTypes like the Number AttributeType or a concrete AttributeType from an OPC UA-based AML AttributeTypeLibrary, or an allowed built-in DataType from Table A.2. Figure A.12, Figure A.13, and Figure A.14 show some examples of derived VariableTypes with more restrictive DataTypes.

Figure A.12 – A VariableType with abstract Number DataType
Figure A.13 – A VariableType with a concrete Structure DataType
Figure A.14 – A Variable type with a built-in DataType