# Funktion „Write variable value by handle“

Index-Gruppe: IdxGrp = 0x122300 + Kanal_ID

Index-Offset: IdxOffs = 0x49

Schreiben über Handle | 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: -