Funktion „Read variable value by handle“
Index-Gruppe: IdxGrp = 0x122300 + Kanal_ID
Index-Offset: IdxOffs = 0x47
Lesen über Handle | Mit dieser Funktion kann der Wert einer Variablen über ihren Handle gelesen werden. |
Übergabeparameter (hier mit Angabe des Stream-Offsets):
0 | 4 | 8 | 12 | 8 + 4 Byte * n |
Handle auf die Variable | Anzahl n Arraydimensionen | 1. Index | 2. Index | ...
|
wobei
Inhalt | Typ | Größe |
Handle auf die Variable | UNS32 | fest, 4 Byte |
Anzahl n Arraydimensionen | UNS32 | fest, 4 Byte |
1. – n. Arrayindex | UNS32 | variabel, n * 4 Byte |
=> Streamlänge 8 + Anzahl Arraydimensionen n * 4 Byte, max. 2048 Byte
Rückgabewert (hier mit Angabe des Stream-Offsets):
0 |
Variablenwert |
wobei
Inhalt | Typ | Größe |
Variablenwert | String, REAL64, SGN32, REAL64[ ], SGN32[ ][ ], ... | variabel, max. 2048 Byte |
=> Streamlänge max. 2048 Byte
Bei einer Array-Variablen kann neben einem Einzelwert auch das komplette Feld gelesen werden, in dem keine Array-Indizes übergeben werden.
Anwendungsbeispiele
1. Beispiel für das Lesen eines Arrayelements eines eindimensionalen Arrays:
Übergabeparameter:
Handle auf die Variable | Anzahl Arraydimensionen
| 1. Index | Rückgabewert |
Handle auf das Array | 1 | 4 | Wert des 5. Elements V.G.array[4] |
0x20012341 Handle auf die Variablen
1 Anzahl der Arraydimensionen
4 für Index 4 also den Wert des 5. Elements der Variablen V.E.test[] → V.E.test[4]
Rückgabewert:
333 |
333 Variablenwert
2. Beispiel für das Lesen eines gesamten Arrays mit 5 Elementen:
Handle auf die Variable | Anzahl Arraydimensionen
| 1. Index | Rückgabewert |
Handle auf das Array | 0 | Wert aller Array-Elemente 0 bis (n-1) |
0x2001234 Handle auf die Variablen
0 Anzahl der Arraydimensionen
Rückgabewerte:
123 | 234 | 345 | 456 | 567 |
123 Wert des 1.Element
234 Wert des 2.Element
345 Wert des 3.Element
456 Wert des 4.Element
567 Wert des 5.Element