Der Aufbau des Datenbereichs ist abhängig vom Modultyp.
Modultyp Integer
Nach dem Header stehen ab Offset 6 die 32 Integer-Analogwerte und anschließend ab Offset 70 die 4 Bytes Binärwerte.
|
Offset |
Datentyp |
Name |
Bedeutung |
|---|---|---|---|
|
00 |
INT |
message_length |
Telegrammlänge = 74 |
|
02 |
INT |
module_index |
Modulindex, i000…i063 |
|
04 |
INT |
sequence_counter |
Telegrammzähler |
|
06 |
INT[32] |
Analogwerte 0…31 |
32 Werte im 16-Bit-Integer-Format |
|
70 |
DWORD |
Digitalwerte 0…31 |
32 Digitalwerte |
Modultyp Real
Nach dem Header stehen ab Offset 6 die 4 Bytes Binärwerte und anschließend ab Offset 10 entweder 8, 16 oder 32 Analogwerte im Real-Format.
|
Offset |
Datentyp |
Name |
Bedeutung |
|---|---|---|---|
|
00 |
INT |
message_length |
Telegrammlänge 42, 74 oder 128 |
|
02 |
INT |
module_index |
Modulindex i100…i163 |
|
04 |
INT |
sequence_counter |
Telegrammzähler |
|
06 |
DWORD |
Digitalwerte 0…31 |
32 Digitalwerte |
|
10 |
FLOAT[n] |
Analogwerte 0…n |
n Werte im IEEE-Float-Formatn=8, 16 oder 32 |
Modultyp Allgemein
Nach dem Header kann ab Offset 6 eine beliebige Folge von Daten mit unterschiedlichen Datentypen folgen. ibaPDA unterstützt folgende Datenformate für Analogsignale:
SINT, BYTE, INT, WORD, DINT, DWORD, FLOAT, DOUBLE, STRING[32]
In ibaPDA muss die hier definierte Datenstruktur nachgebildet werden. Dabei können die BYTE-, WORD- und DWORD-Variablen auch als 8, 16 oder 32 einzelne Bits interpretiert werden (und umgekehrt).
|
Offset |
Datentyp |
Name |
Bedeutung |
|---|---|---|---|
|
00 |
INT |
message_length |
Telegrammlänge max. 4102 |
|
02 |
INT |
module_index |
Modulindex i200…i263 |
|
04 |
INT |
sequence_counter |
Telegrammzähler |
|
06 |
BYTE[n] |
data |
Generischer Datenpuffer n ≤ 4096 |