## 5.6.3.1 General

EUInformation contains information about the EngineeringUnits.

The intention of the OPC UA standard is not to define a set of units but a way to expose units based on existing systems. Since there is not a single worldwide set of units used in all industries, the EUInformation structure includes a separate field (the namespaceUri) to identify the system on which the exposed unit is based.

The default OPC UA mapping is based on UN/CEFACT as defined in clause 5.6.3.3, because it can be programmatically interpreted by generic OPC UA Clients. However, the EUInformation structure has been defined such that other standards bodies can incorporate their engineering unit definitions into OPC UA. If Servers use such an approach then they shall identify this standards body by using a proper URI in EUInformation.namespaceUri.

## 5.6.3.2 Definition of EUInformation

The EUInformation elements are defined in Table 16.

Table 16 – EUInformation DataType structure

Name Type Description
EUInformation structure
namespaceUri String Identifies the organization (company, standards organization) that defines the EUInformation.
unitId Int32    Identifier for programmatic evaluation.−1 is used if a unitId is not available.
displayName LocalizedText The displayName of the engineering unit is typically the abbreviation of the engineering unit, for example “h” for hour or “m/s” for meter per second.
description LocalizedText Contains the full name of the engineering unit such as “hour” or “meter per second”.

Its representation in the AddressSpace is defined in Table 17.

Table 17 – EUInformation definition

Attribute Value
BrowseName EUInformation
IsAbstract False

Subtype of Structure defined in OPC 10000-5.

References NodeClass BrowseName DataType TypeDefinition Other
Conformance Units
Base Info EUInformation

## 5.6.3.3 Mapping of UN/CEFACT to EUInformation

This clause specifies how to apply the “Codes for Units of Measurement” published by the “United Nations Centre for Trade Facilitation and Electronic Business” (see https://www.unece.org/cefact/codesfortrade/codes_index.html). This recommendation establishes a single list of code elements to represent units of the International System of Units (SI Units) like units of measure for length, mass (weight), volume and other quantities and in addition covers administration, commerce, transport, science, technology, industry etc. It provides a fixed code that can be used for automated evaluation.

Table 18 contains a small excerpt of the relevant columns in the UNECE recommendation:

Table 18 – Examples from the UNECE Recommendation

Excerpt from Recommendation N°. 20, Annex 1
Common Code Name Symbol
MMT millimetre mm
HMT hectometre hm
KMT kilometre km
KMQ kilogram per cubic metre kg/m3
FAH degree Fahrenheit °F

The mapping of the UNECE common codes to EUInformation.unitId, EUInformation.displayName, and EUInformation.description is available here:

http://www.opcfoundation.org/UA/EngineeringUnits/UNECE/UNECE_to_OPCUA.csv

This mapping has been generated as follows:

• The namespaceUri shall be http://www.opcfoundation.org/UA/units/un/cefact
• The Common Code (represented as an alphanumeric variable length of 3 characters) has been converted into an 32 Bit Integer and is used for the unitId. The following pseudo code specifies the conversion algorithm:
Int32 unitId = 0;		Int32 c;		for (i=0; i<=3;i++)		{
c = CommonCode[i];		if (c == 0) break;		// end of Common Code		unitId = unitId << 8;		unitId = unitId | c;	}

• The Symbol field is used for displayName. The localeId field of EUInformation.displayName shall be an empty string.
• The Name field is used for description. If the name is copied, then the localeId field of EUInformation.description shall be an empty string. If the name is localized then the localeId field shall specify the correct locale.