240/295
Bosch Rexroth AG | Electric Drives
RIL_SocketComm.lib
14.5.3
Byte-Reihenfolge in IP-basierter Kommunikation
and Controls
Byte-Reihenfolge) bezeichnet die Speicherorganisation für einfache Zahlen‐
werte, in erster Linie die Ablage von ganzzahligen Werten (Integern). Die
kleinste adressierbare Einheit ist ein Byte. Die Anzahl wird in mehreren Bytes
gespeichert. Die Speicheradresse, das jedes Byte enthält, unterscheidet sich
in der Byte-Reihenfolge und der verwendeten Methode.
Die folgenden Byte-Reihenfolgemethoden sind verfügbar:
●
Big-Endian: Das höchstwertigste Byte wird zuerst in der kleinsten Spei‐
cheradresse gespeichert.
●
Little-Endian: Das niederwertigste Byte wird in der kleinsten Speicherad‐
resse gespeichert.
Die Zahl 1025 wird beispielsweise in einem Integer mit einer Größe von 4-Byte
gespeichert:
Höchstwertig
00000000
00000000
Adresse
Big-Endian-Methode
00
00000000
01
00000000
02
00000100
03
00000001
Abb.14-10:
Beispiel einer Byte-Reihenfolge für die Methoden Big-Endian und Little-
Endian
Die Byte-Reihenfolge für eine IP-basierte Kommunikation basiert
auf der Big-Endian-Methode.
Da Steuerungen die Daten entweder in Big-Endian- oder in einem Little-Endian-
System im Speicher ablegen, sind auf das System angepasste Konvertie‐
rungsfunktionen notwendig.
Die folgenden Funktionen werden in Bibliothek SysSocket unterstützt:
Funktion SysSocket.lib
SysSockHtons
SysSockNtohs
SysSockHtonl
SysSockNtohl
Abb.14-11:
Konvertierungsfunktionen in der Bibliothek SysSocket
Die folgenden Datentypen müssen zur Übertragung über TCP oder UDP kon‐
vertiert werden:
Datentyp
WORD, INT, UINT
DWORD, DINT, UDINT,
TIME
Abb.14-12:
Datentypen, die eine Konvertierung für die TCP- bzw. UDP-Kommuni‐
kation erfordern
Rexroth IndraMotion MTX 09VRS | Projektierung
Niederwertigst
00000100
00000001
Little-Endian-Methode
00000001
00000100
00000000
00000000
Typ
Rechner zum Netzwerk 16 Bit
Netzwerk zum Rechner 16 Bit
Rechner zum Netzwerk 32 Bit
Netzwerk zum Rechner 32 Bit
Rechner zum Netzwerk
SysSockHtons( )
SysSockHtonl( )
Netzwerk zum Rechner
SysSockNtohs( )
SysSockNtohl( )