All the rules in 0 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.10.
Figure A.10 – Attributes of BaseVariableType
Table A.6 shows the additional attributes introduced by the BaseVariableType SUC.
Table A.6 – Mapping UA Variable/VariableType NodeClass attributes to BaseVariableType SUC attributes
Attribute name |
Included in SUC |
Notes |
IsAbstract |
ü |
If not present in the AML SUC type, the value is assumed to be FALSE. In instances, this attribute has no meaning and should be deleted or ignored. |
Value |
ü |
If not present in the AML SUC, the attribute value is NULL in OPC UA. |
DataType |
|
Never present in the AML SUC. The UA DataType is inferred by the DataType of the AML Value attribute. |
ValueRank |
ü |
If not present in the AML SUC, the value in UA is assumed to be Any (2) |
ArrayDimensions |
ü |
If not present in the AML SUC, the attribute is also omitted in OPC UA. |
AccessLevel |
ü |
If not present in the AML SUC, the value of all fields is presumed to be FALSE. Only the fields of AccessLevelType that make sense for configuration are included in the AML attribute type. OPC UA Servers may override some or all of the configured values |
UserAccessLevel |
|
Never present in the AML SUC. |
MinimumSamplingInterval |
ü |
If not present in the AML SUC, the attribute is also omitted in OPC UA. |
Historizing |
|
Never present in the AML SUC. |
AccessLevelEx |
|
Never present in the AML SUC. |
BaseDataType is the root abstract DataType that all other OPC UA DataTypes derive from. 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.11, Figure A.12 and Figure A.13 show some examples of derived VariableTypes with more restrictive DataTypes.
Figure A.11 – A VariableType with abstract Number DataType
Figure A.12 – A VariableType with a concrete Structure DataType