The ReferenceType HasStructuredComponentcan be used to expose the entries of a multi-dimensional array of a Variableas subvariables. The same is true for the ModellingRule ExposesItsArray. However, both concepts handle this differently, as described in this section.

Using the HasStructuredComponent ReferenceType, the BrowseNameof the subvariable is defined and reflects the place in the array. That is, if the order in the array is changing, e.g. by deleting the first entry, the values of the correponding subvariables change, and the subvariable with the highest index is removed. When subscribing to a subvariable, the Clientalways get the value assigned to the place in the array. The same behaviour can be achieved when subscribing to the corresponding IndexRangeon the parent Variable.

Using the ExposesItsArray ModellingRule, the BrowseNameof the subvariables are not defined and do not reflect the place in the array. That is, if the order in the array is changing, e.g. by deleting the first entry, the values of the corresponding subvariables do not change, and the subvariable containing the first entry is removed. When subscribing to a subvariable, the order of the array is not considered. Even if the order is changing, the Clientsubscribing to the subvariable will observe the original subscribed content.

In Figure 37, an example is given, visualizing the differences. VariableA uses HasStructuredComponent. When the first entry in the array is deleted, the Values of the Variablesrepresenting the first and second entry are changed accordingly, and the third Variableis deleted.

VariableB uses ExposesItsArray. When the first entry in the array is deleted, the values of the Variablesoriginally representing the second and third entry of the array do not change, but the Variablerepresenting the first entry is deleted.

image040.png

Figure 37– Difference between HasStructuredComponent and ExposesItsArray