All the rules in A.5 for ObjectTypes also apply to VariableTypes with these notable differences:
The base AML SUC for OPC UA VariableTypes is BaseVariableType;
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 |
IsAbstract |
X |
If 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. |
Value |
X |
If not present in the AML Object, the attribute value is NULL in OPC UA. |
DataType |
|
Never present in the AML Object. The UA DataType is inferred by the DataType of the AML Value attribute. |
ValueRank |
X |
If not present in the AML Object, the value in OPC UA shall be Scalar (1). |
ArrayDimensions |
X |
If not present in the AML Object, the attribute is also omitted in OPC UA. |
AccessLevel |
X |
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 |
UserAccessLevel |
|
Never present in the AML Object. |
MinimumSamplingInterval |
X |
If not present in the AML Object, the attribute is also omitted in OPC UA. |
Historizing |
|
Never present in the AML Object. |
AccessLevelEx |
X |
The 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