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 42.

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 may distribute values to a number of clients with different needs the actual conversion has to be performed at client side.

 Attribute Value BrowseName AlternativeUnitType IsAbstract False References NodeClass BrowseName DataType TypeDefinition Other Subtype of the UnitType HasProperty Variable LinearConversion LinearConversionDataType PropertyType O HasProperty Variable MathMLConversion String PropertyType O HasProperty Variable MathMLInverseConversion String PropertyType O Conformance Units Data Access Alternative Units

The Server shall provide either a LinearConversion or a MathMLConversion together with a corresponding MathMLInverseConversion. It may 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 valuex is published by the server in the named server unit andy is the value converted into the named alternative unit.

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 valuey1 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

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.