DataVariablesrepresent the content of an Object. DataVariablesare defined using the Variable NodeClass, specified in Table 13.

DataVariables identify their Propertiesusing HasProperty References. Complex DataVariablesuse HasComponent Referencesto expose their component DataVariables.

The Property NodeVersionindicates the version of the DataVariable.

The Property LocalTimeindicates the difference between the SourceTimestamp of the value and the standard time at the location in which the value was obtained.

The Property AllowNullsindicates if null values are allowed for the Value Attribute.

The Property ValueAsTextprovides a localized text representation for enumeration values.

The Property MaxStringLengthindicates the maximum number of bytes of a Stringor the textfield of a LocalizedTextvalue. If a Serverdoes not impose a maximum number of bytes or is not able to determine the maximum number of bytes this Propertyshall not be provided. If this Propertyis provided, then the MaxCharacters Propertyshall not be provided.

The Property MaxCharactersindicates the maximum number of Unicode characters of a Stringor the textfield of a LocalizedTextvalue. If a Serverdoes not impose a maximum number of Unicode characters or is not able to determine the maximum number of Unicode characters this Propertyshall not be provided. If this Propertyis provided then the MaxStringLength Propertyshall not be provided.

The Property MaxByteStringLengthindicates the maximum number of bytes of a ByteStringvalue. If a Serverdoes not impose a maximum number of bytes or is not able to determine the maximum number of bytes this Propertyshall not be provided.

The Property MaxArrayLengthindicates the maximum allowed array length of the value.

The Property EngineeringUnitsindicates the engineering units of the value. There are no additional Propertiesdefined for DataVariablesin this part of this document. Additional parts of this series of standards may define additional Propertiesfor DataVariables. OPC 10000-8defines a set of Propertiesthat can be used for DataVariables.

The Property CurrencyUnitrepresents the currency of the value. The information in the structure is designed to be suited for human users and for automated systems.

DataVariablesmay use additional Referencesto define relationships to other Nodes. No restrictions are placed on the types of Referencesused or on the NodeClassesof the Nodesthat may be referenced. However, restrictions may be defined by the ReferenceTypeexcluding its use for DataVariables. Standard ReferenceTypesare described in Clause 7.

A DataVariableis intended to be defined in the context of an Object. However, complex DataVariablesmay expose other DataVariables, and ObjectTypesand complex VariableTypesmay also contain DataVariables. Therefore each DataVariableshall be the TargetNodeof at least one HasComponent Referencecoming from an Object, an ObjectType, a DataVariableor a VariableType. DataVariablesshall not be the TargetNodeof any HasProperty References. Therefore, a HasComponent Referencepointing to a Variable Nodeidentifies it as a DataVariable.

The HasTypeDefinition Referencepoints to the VariableTypeused as type definition of the DataVariable.

If the DataVariable is used as InstanceDeclaration(see 4.5) all Nodesreferenced with forward hierarchical Referencesshall have unique BrowseNamesin the context of this DataVariable.