DataVariablesrepresent the content of an Object. For example, a file Objectmay be defined that contains a stream of bytes. The stream of bytes may be defined as a DataVariablethat is an array of bytes. Propertiesmay be used to expose the creation time and owner of the file Object.

For example, if a DataVariableis defined by a data structure that contains two fields, “startTime” and “endTime” then it might have a Propertyspecific to that data structure, such as “earliestStartTime”.

As another example, function blocks in control systems might be represented as Objects. The parameters of the function block, such as its setpoints, may be represented as DataVariables. The function block Objectmight also have Propertiesthat describe its execution time and its type.

DataVariablesmay have additional DataVariables, but only if they are complex. In this case, their DataVariablesshall always be elements of their complex definitions. Following the example introduced by the description of Propertiesin 4.4.2, the Servercould expose “startTime” and “endTime” as separate components of the data structure.

As another example, a complex DataVariablemay define an aggregate of temperature values generated by three separate temperature transmitters that are also visible in the AddressSpace. In this case, this complex DataVariablecould define HasComponent Referencesfrom it to the individual temperature values that it is composed of.