Arrays
In OPC UA werden Arrays bei UA_Variable-Nodes über die Attribute ValueRank und ArrayDimensions beschrieben. Der eigentliche DataType gibt dabei immer den Elementtyp an, also zum Beispiel Int32, Double oder String.
ValueRank
ValueRank legt fest, ob eine Variable ein Skalar oder ein Array ist und wie viele Dimensionen das Array besitzt.
- -3: Skalar oder eindimensionales Array
- -2: beliebig, also Skalar oder Array
- -1: Skalar, also kein Array
- 0: Array mit einer oder mehreren Dimensionen
- 1: eindimensionales Array
- n: n-dimensionales Array
ArrayDimensions
ArrayDimensions beschreibt die Größe der einzelnen Dimensionen.
Der Wert wird als Liste von Dimensionen angegeben. Die Anzahl der Einträge in ArrayDimensions sollte zur Anzahl der Dimensionen in ValueRank passen. Wenn die Größe nicht fest vorgegeben werden soll, kann ArrayDimensions leer bleiben oder 0.
Beispiele:
- 0: n-dimensionales Array mit beliebig vielen Elementen
- 10: eindimensionales Array mit 10 Elementen
- 3,4: zweidimensionales Array mit 3 × 4 Elementen
- 2,5,8: dreidimensionales Array mit 2 × 5 × 8 Elementen
Im Node Editor ist die Bearbeitung der Werte über folgende Elemente möglich. Während der ValueRank nur zulässige Werte erlaubt, muss bei den ArrayDimensions der Wert selbst überprüft werden:

Beispiele ValueRank und ArrayDimensions
ValueRank = -1 → Skalar, ArrayDimensions bleibt leer
ValueRank = 1 → eindimensionales Array, z. B. ArrayDimensions = 10
ValueRank = 2 → zweidimensionales Array, z. B. ArrayDimensions = 3,4