TwinCat - ModBus Buchstabensalat

Shrek

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

ich habe eine Beckhoff SPS mit TwinCat und kommuniziere über ModBus RTU mit einem Tastenterminal (Cimrex 12).
Wenn ich am Tastenterminal etwas eingebe werden die Daten an TwinCat übergeben. Funktioniert mit bool, int und word problemlos.
Nur wenn ich einen string eingebe, erhalte ich im PLC Programm nicht das was ich eingetippt hab.

Bsp: am Terminal eingetippt: "Hallo"
im PLC Programm erhalten: "aHll o"

Die Buchstaben werden immer paarweise verdreht. Im Programm selbst mach ich mit dem string gar nix.

Wo entsteht dieses eigenartige Problem?
Wie kann ich es verhindern?

Vielen Dank.
Shrek
 
Das Problem nennt sich:
http://de.wikipedia.org/wiki/Byte-Reihenfolge
und hatte ich auch schon mal bei S7-200 in Verbindung mit einem OP3. Hierbei war der Gag, dass ich in einem DB den richtigen Datentyp nehmen musste, um diese Vertauscherei nicht zu haben (leider habe ich keinerlei Details nun mehr parat). Entsprechend kann ich jetzt zu TwinCAD-Modbus auch nichts spezielles beitragen, ausser, dass das Problem der Endianness grundsätzlich immer wieder auftritt - hier eben bei Strings. Offenbar erfolgt die (Daten-)Übertragung wortweise, die Auswertung aber eben mal nach Big-, mal nach Little-Endian.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe mal alle Modbus Einstellungen die man verändern kann sowohl auf Beckhoff Seite als auch auf der Panel Seite verändert.
An der fehlerhaften Übergabe des Strings hat sich leider nix geändert.
Egal ob Big-/ Little Endian oder die zu übertragende Byte Größe usw..

Nun habe ich ein C# Programm geschrieben welches mir den String "zurecht biegt". Das funktioniert :)
 
Zurück
Oben