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