TIA Modbus TCP Server Bytecross Tia v15

wita007

Level-1
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich stelle über Modbus TCP meine Daten aus der CPU einem Client zu verfügung.
Dafür verwende ich die Funtion MB_SERVER_DB im Tia.
Die Datentypen im Modbus DB sind INT, DINT und BOOL im Struct.
Beim anderen System, was die Daten bei mir ausliest, sind die BOOL Daten bytecrossed und die DINT sind integercrossed.
Warum ist das so bei den beiden Datentypen und bei den INT nicht?
Kann ich das auf meiner Seite verhindern bzw. mit einer Funktion ändern?
Danke für die Hilfe.

MFG
 

Anhänge

  • Modbus DB.JPG
    Modbus DB.JPG
    236,5 KB · Aufrufe: 15
Weil Modbus alle Daten > Bool als WORD-Häppchen verarbeitet. Und weil Du vermutlich die Bools nicht einzeln verarbeitest, sondern den Speicherplatz von 16 Bools gemeinsam an den Modbus Server Baustein übergibst, und der Modbus Server Baustein die deshalb als Word liest und da ist DBB450 das höherwertige Byte und DBB451 das niederwertige Byte. Und daß überhaupt Bytes/Words "crossed" sind (also vertauscht werden müssen) liegt wohl daran, daß Dein Partner Datentypen > Byte im little-endian speichert.

Harald
 
Zurück
Oben