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
0x20012341

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
0x2001234

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