The VariableTypesin this subclause define the characteristics of AnalogItems. The types have identical semantics and Propertiesbut with diverging ModellingRulesfor individual Properties.

The Propertiesare only described once - in 5.3.2.2. The descriptions apply to the Propertiesfor the otherVariableTypesas well.

This VariableTypeis the base type for analog items. All Propertiesare optional. Subtypes of this base type will mandate some of the Properties. The BaseAnalogTypederives from the DataItemType. It is formally defined in Table 2.

Table 2– BaseAnalogType definition

Attribute

Value

BrowseName

BaseAnalogType

IsAbstract

False

ValueRank

−2 (−2 = ‘Any’)

DataType

Number

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the DataItemTypedefined in 5.3.1; i.e. the Propertiesof that type are inherited.

HasSubtype

VariableType

AnalogItemType

Defined in 5.3.2.3

HasSubtype

VariableType

AnalogUnitType

Defined in 5.3.2.4

HasProperty

Variable

InstrumentRange

Range

PropertyType

Optional

HasProperty

Variable

EURange

Range

PropertyType

Optional

HasProperty

Variable

EngineeringUnits

EUInformation

PropertyType

Optional

Conformance Units

Data Access BaseAnalogType

The following paragraphs describe the Propertiesof this VariableType. If the analog item’s Valuecontains an array, the Propertiesshall apply to all elements in the array.

InstrumentRange defines the value range that can be returned by the instrument.

Example:InstrumentRange::= {-9999.9, 9999.9}

Although defined as optional, it is strongly recommended for Serversto support this Property. Without an InstrumentRangebeing provided, Clientswill commonly assume the full range according to the DataType.

The InstrumentRange Property may also be used to restrict a Built-in DataType such as Byte or Int16) to a smaller range of values.

Examples:

UInt4: InstrumentRange::= {0, 15}

Int6: InstrumentRange::= {-32, 31}

The Range Data Typeis specified in 5.6.2.

EURangedefines the value range likely to be obtained in normal operation. It is intended for such use as automatically scaling a bar graph display.

Sensor or instrument failure or deactivation can result in a returned item value which is actually outside of this range. Clientsoftware must be prepared to deal with this possibility. Similarly a Clientmay attempt to write a value that is outside of this range back to the server. The exact behaviour (accept, reject, clamp, etc.) in this case is Server-dependent. However, in general Serversshall be prepared to handle this.

Example: EURange::= {-200.0,1400.0}

See also 6.2for a special monitoring filter (PercentDeadband) which is based on the engineering unit range.

NOTE If EURange is not provided on an instance, the PercentDeadband filter cannot be used for that instance (see clause 6.2).

EngineeringUnits specifies the units for theDataItem’s value (e.g., DEGC, hertz, seconds). The EUInformationtype is specified in 5.6.3.

It is important to note that understanding the units of a measurement value is essential for a uniform system. In an open system in particular where Serversfrom different cultures might be used, it is essential to know what the units of measurement are. Based on such knowledge, values can be converted if necessary before being used. Therefore, although defined as optional, support of the EngineeringUnits Property is strongly advised.

OPC UA recommends using the “Codes for Units of Measurement(see UN/CEFACT: UNECE Recommendation N° 20). The mapping to the EngineeringUnits Property is specified in 5.6.3.

Examples for unit mixup: In 1999, the Mars Climate Orbiter crashed into the surface of Mars. The main reason was a discrepancy over the units used. The navigation software expected data in newton second; the company who built the orbiter provided data in pound-force seconds. Another, less expensive, disappointment occurs when people used to British pints order a pint in the USA, only to be served what they consider a short measure.

The StatusCode SemanticsChangedbit shall be set if any of the EURange(could change the behaviour of a Subscriptionif a PercentDeadbandfilter is used) or EngineeringUnits(could create problems if the Clientuses the value to perform calculations) Propertiesare changed (see clause 5.2for additional information).

This VariableTyperequires the EURange Property. The AnalogItemTypederives from the BaseAnalogType. It is formally defined in Table 3.

Table 3– AnalogItemType definition

Attribute

Value

BrowseName

AnalogItemType

IsAbstract

False

ValueRank

−2 (−2 = ‘Any’)

DataType

Number

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseAnalogTypedefined in 5.3.2.2; i.e. the Propertiesof that type are inherited.

HasSubtype

VariableType

AnalogUnitRangeType

Defined in 5.3.2.5

HasProperty

Variable

EURange

Range

PropertyType

Mandatory

Conformance Units

Data Access AnalogItemType

This VariableTyperequires the EngineeringUnits Property. The AnalogUnitTypederives from the BaseAnalogType. It is formally defined in Table 4.

Table 4– AnalogUnitType definition

Attribute

Value

BrowseName

AnalogUnitType

IsAbstract

False

ValueRank

−2 (−2 = ‘Any’)

DataType

Number

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseAnalogTypedefined in 5.3.2.2; i.e. the Propertiesof that type are inherited.

HasProperty

Variable

EngineeringUnits

EUInformation

PropertyType

Mandatory

Conformance Units

Data Access AnalogUnitType

The AnalogUnitRangeTypederives from the AnalogItemTypeand additionaly requires the EngineeringUnits Property. It is formally defined in Table 5.

Table 5– AnalogUnitRangeType definition

Attribute

Value

BrowseName

AnalogUnitRangeType

IsAbstract

False

ValueRank

−2 (−2 = ‘Any’)

DataType

Number

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the AnalogItemTypedefined in 5.3.2.3; i.e. the Propertiesof that type are inherited.

HasProperty

Variable

EngineeringUnits

EUInformation

PropertyType

Mandatory

Conformance Units

Data Access AnalogUnitRangeType