Zitat von SimonK
Beitrag anzeigen
Ich habe mal die Spezifikation überflogen. Das Pluggit-Protokoll weicht an einigen Stellen von der Spezifikation ab:
Es käme nur der RTU Transmission Mode in Frage. Die serielle Übertragung währe dann entweder mit gerader Parität oder zwei Stoppbits. Das ist aber nicht der Fall oder meine Software-UARTS sind fehlerhaft, die habe ich aber noch mit einem FTDI-Kabel getestet.
Es werden nur 8 Bit (L-Byte) der CRC-Summe anstatt der 16 Bit verwendet.
Die meisten (oder alle) Frames rufen "(0x03) Read Holding Registers" auf. Dabei ist die Fernbedienung der Master und die Lüftung der Slave. So ein 0x03 Frame ist aber ein Byte kürzer als das der Anlage. Die Antwort müsste ein Byte für die Länge haben. Das kommt auch nicht hin.
Trotzdem halte ich den Ansatz, dass die Fernbedienung dem Gerät sagt welche Register ausgelesen werden sollen für eine Möglichkeit NACHTRAG: zumal ich auch Pakete "(0x10) Write Multiple registers" gefunden habe. Auch hier ist ein Byte zuviel.
Auch ohne das Protokoll voll zu verstehen dürfte es leicht möglich sein die Werte T1-4 und S1-2 auszulesen. Einiges konnte ich schon wiederfinden.
P.S.: Für den Arduino gibt es einen Modbus-Master: Arduino Playground - ModbusMaster Library
Modbus-Spezifikationen: modbus.org


Einen Kommentar schreiben: