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.

image034.png

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.

image035.png

Figure A.11 – A VariableType with abstract Number DataType

image036.png

Figure A.12 – A VariableType with a concrete Structure DataType

image037.png

Figure A.13 – A Variable type with a built-in DataType