6.4.2 UnitType and subtypes

6.4.2.1 General

The Units model describes the relations between UnitType, ServerUnitType and AlternativeUnitType.

The UnitType is the base class and defines details that are relevant of all derived types.

Figure 10 – Units model
6.4.2.2 UnitType ObjectType Definition

It is formally defined in Table 43.

Table 43 – UnitType definition
Attribute Value
BrowseNameUnitType
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the BaseObjectType defined in OPC 10000-5
HasPropertyVariableSymbolLocalizedTextPropertyTypeM
HasPropertyVariableUnitSystemStringPropertyTypeM
HasPropertyVariableDisciplineStringPropertyTypeO
Conformance Units
Data Access Quantities Base

The DisplayName Attribute of each instance shall provide the name of the unit, e.g. “second”, “degree Celsius” or “square metre”. This matches the “description” field of the EUInformation structure (see 5.6.4.3).

The Description Attribute should be used to expose a more verbose explanation of the UnitType instance.

The Symbol Property is used for the symbol of the unit (e.g. "h" for hour or "m/s" for meter per second). If no symbol is defined for the unit, the DisplayName Attribute shall be used as symbol. Symbol matches the “displayName” field of the EUInformation structure (see 5.6.4.3).

The UnitSystem Property describes the system of units (e.g. ISQ) in which the unit is specified. If any of the well-known systems defined in Table 44 is used, the acronym in the column “UnitSystem” shall be used for the value of this Property.

Table 44 – Non-exhaustive list of well-known systems of units
UnitSystem System of units
ISQ

International System of Quantities (ISO/IEC 80000)

Fully covers and thus replaces SI (ISO 1000)

USCSUS Customary Unit System
ISUBritish imperial system of units
MSUMyanmar Units of measurement
TROYTroy units of weight
CGScentimetre–gram–second system of units
GAUSSGaussian System of units
FPSfoot–pound–second system of units

Syntax References: Instances of the UnitType can identify the unit in a specific external reference work using HasDictionaryEntry References – see 6.3.2.

6.4.2.3 ServerUnitType ObjectType Definition

Instances of ServerUnitType define the units utilizes in the Server. They are assigned to the proper Quantities. EngineeringUnit Properties can refer to it. It is formally defined in Table 45.

Table 45 – ServerUnitType definition
Attribute Value
BrowseNameServerUnitType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the UnitType
HasComponentObjectAlternativeUnitsBaseObjectTypeO
HasPropertyVariableConversionLimitConversionLimitEnumPropertyTypeM
HasComponentObjectCoherentUnitUnitTypeO
Conformance Units
Data Access Quantities Base

The optional Object AlternativeUnits contains Objects of the AlternativeUnitsType. These explicitly specify the units into which the conversion can be made.

The mandatory Property ConversionLimit indicates whether the ServerUnit can be converted. A distinction is made between NO_CONVERSION, LIMITED and UNLIMITED.

UNLIMITED means the client can perform conversions based on the rules defined by the given UnitSystem.

LIMITED conversion means that a conversion can not be performed by simply applying the rules defined by the given UnitSystem. Either only the conversions mentioned in the AlternativeUnits are to be used or the client requires application specific know-how for a conversion on his own.

NO_CONVERSION means that no conversion is allowed (e.g. for statistical values).

The CoherentUnit of a value is a derived unit that, for a given system of quantities and for a chosen set of base units, is a product of powers of base units, with the proportionality factor being one. Therefore it shall share the same UnitSystem as the ServerUnit.

The components of the ServerUnitType have additional subcomponents which are defined in Table 46.

Table 46 – ServerUnitType Additional Subcomponents
BrowsePath References NodeClass BrowseName DataType TypeDefinition Other
AlternativeUnitsHasComponentObject<AlternativeUnit>AlternativeUnitTypeMP
6.4.2.4 AlternativeUnitType ObjectType Definition

The AlternativeUnitType describes alternative units to a ServerUnit. It is required to specify a conversion method for a value from the ServerUnit to this AlternativeUnit. It is formally defined in Table 47.

The use of conversions enables that a server and a client can work with different units and even in different systems of units. E.g. a server works with imperial units and a client uses metric units.

As a single server can distribute values to a number of clients with different needs the actual conversion has to be performed at client side.

Table 47 – AlternativeUnitType definition
Attribute Value
BrowseNameAlternativeUnitType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the UnitType
HasPropertyVariableLinearConversionLinearConversionDataTypePropertyTypeO
HasPropertyVariableMathMLConversionStringPropertyTypeO
HasPropertyVariableMathMLInverseConversionStringPropertyTypeO
Conformance Units
Data Access Alternative Units

The Server shall provide either a LinearConversion or a MathMLConversion together with a corresponding MathMLInverseConversion. It can provide Linear and MathML conversions in parallel.

The optional Property LinearConversion represents a simple conversion according to the following formula. The values (a, b, c, d) are given in a Structure as defined in the LinearConversionDataType in chapter 6.6.2. The value x is published by the Server in the named server unit and y is the value converted into the named alternative unit.

Figure 11 – MathML example linear conversion

This also defines the inverse conversion to be used if a Client wants to write a value to the Server. The values (a, b, c, d) are given in a Structure as defined in the LinearConversionDataType in chapter 6.6.2. The value y1 is the value that the Client wants to write to the Server in the named alternative unit and x1 is the value the Client actually has to write to the Server instead

Figure 12 – MathML example inverse linear conversion

The optional Property MathMLConversion allows the specification of all kinds of conversion methods. The MathML syntax is used for this. Within the MathML expression X always stands for the value at the server side and Y for the value at the client side. An example (formula of the LinearConversion) looks as follows.