2016-06-23 72 views
0

Ich programmiere eine Click-SPS mit einer C# -Anwendung mit NModbus4. (RS232)NModbus4 TXT von der SPS lesen

Jetzt versuche ich TXT Daten zu lesen und zu schreiben.

Dies ist der Code und Ergebnis: enter image description here

Wenn ich überprüfen Sie die SPS-Software Klicken Sie ich, dass für jede zwei Zeichen eine Modbus-Adresse verwendet wird, sehen kann.

enter image description here

Wie kann ich den Text in der SPS gespeichert? Jemand hat eine Idee?
Der in der SPS gespeicherte Text ist "Dit is tekst"

+0

Wie lautet der Text in der SPS ab Adresse 436865? – Ronaldo

Antwort

0

Ein Modbus-Register ist 16 Bit breit, sodass zwei Zeichen gespeichert werden können. Deshalb teilen sich zwei Zeichen die gleiche Adresse.

Das gesagt, müssen Sie die Byte-Reihenfolge ableiten, die verwendet wird: Wie werden die zwei Zeichen in das Register gestopft? Welcher geht zum höchstwertigen Byte?

Nehmen Sie Ihren Beispieltext, es hat 12 Zeichen, also ist das Lesen von 6 Registern genug (436865-436870). Von Ihrem Debug-Bild speichert die Adresse 436865 den Wert 26948, 0x6944, wenn sie in Hex konvertiert wird. Suchen Sie eine ASCII-Tabelle und suchen Sie nach den Codes 0x69 und 0x44. Dies sind die Codes für die Zeichen "i" und "D". Der Text in der SPS beginnt mit "Di". Wir können daraus schließen, dass für jedes Zeichenpaar, das in einem Register gespeichert ist, das zweite Zeichen im höchstwertigen Byte platziert wird.

Sie können den Text dann von der SPS abrufen, indem Sie die Bytes in jedem Register austauschen und mithilfe einer ASCII-Tabelle in ein Zeichen konvertieren.

+0

Super! Vielen Dank! Ich konnte es nicht herausfinden! –