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