The ExposesItsArray ModellingRuleexposes a special semantic on VariableTypeshaving a single- or multidimensional array as the data type. It indicates that each value of the array will also be exposed as a Variablein the AddressSpace.

The ExposesItsArray ModellingRulecan only be applied on InstanceDeclarationsof NodeClass Variablethat are part of a VariableTypehaving a single- or multidimensional array as its data type.

The VariableA having this ModellingRuleshall be referenced by a forward hierarchical Referencefrom a VariableType B. B shall have a ValueRankvalue that is equal to or larger than zero. A should have a data type that reflects at least parts of the data that is managed in the array of B. Each instance of B shall reference one instance of A for each of its array elements. The used Referenceshall be of the same type as the hierarchical Referencethat connects B with A or a subtype of it. If there are more than one forward hierarchical Referencesbetween A and B, then all instances based on B shall be referenced with all those References.

Figure 28gives an example. A is an instance of Type_A having two entries in its value array. Therefore it references two instances of the same type as the InstanceDeclarationArrayExpose. The BrowseNamesof those instances are not defined by the ModellingRule. In general, it is not possible to get a Variablerepresenting a specific entry in the array (e.g. the second). Clientswill typically either get the array or access the Variablesdirectly, so there is no need to provide that information.

image031.png

Figure 28– Example on using ExposesItsArray

It is allowed to reference A by other InstanceDeclarationsas well. Those Referenceshave to be reflected on each instance based on A.

Figure 29gives an example. The PropertyEUUnit is referenced by ArrayExpose and therefore each instance based on ArrayExpose references the instance based on the InstanceDeclarationEUUnit.

image032.png

Figure 29– Complex example on using ExposesItsArray