NEWS
Modbus-Kopplung zu WAGO
-
Hallo Modbusser,
ich beschäftige mich seit ein paar Tagen mit der MB-Kopplung zu meinem WAGO 750-880. Die Kommunikation klappt auch soweit nur habe ich ein paar Ungereimtheiten:
Ich arbeite ohne Aliase sondern mit direkter Adressierung laut WAGO-Handbuch um das Prinzip zu verstehen. ich habe bei "Diskrete Eingänge" also eine "0" eingetragen die mir den ersten digitalen Input der WAGO-HW einliest. Wireshark sagt FC2 und Adresse 0 und 16bit werden gelesen, das klappt also.
Jetzt wollte ich einen HW-Ausgang zurücklesen. Das geht lt. Handbuch ab Adresse 512. Und hier fangen die Probleme an:
Dateianhang:
Wireshark sagt FC2 und ab Adresse 0 will ioBroker 528 Bits lesen, das sind 33 Wörter. Also Response kommt ein Exception Code 2 (Illegal data address).
Wenn ich jetzt Adresse 0 löschen und nur Adresse 512 einlese, klappt alles wie erwartet.
Das Problem ist auch vorhanden wenn ich Ausgänge beschreiben will. Wireshark sagt mir hier einen FC1 für 16bits an, allerdings hätte ich einen FC15 zum schreiben erwartet, da FC1 lt. http://www.simplymodbus.ca/FAQ.htm#FC doch nur zum lesen ist.
Oder irre ich mich da?
Allerdings steht in jeder Doku die ich gelesen habe, dass zum schreiben FC5 (1bit) bzw. FC15 (1Wort) genutzt werden sollte.
Habe noch was rausgefunden:
512 bit lesen funktioniert, aber wenn ich das 513. Bit lesen will gibt es einen Error. Ich weiss noch nicht ob das am WAGO, ioBroker oder am Modbusprotokoll liegt. Ich würde erwarten, dass dann einfach ein neues Telegramm geschickt wird mit einer neuen Staradresse, so wie es bei den Registern auch funktioniert.
Bei den Eingangsregistern gibt es diese Probleme nicht. Hier habe ich die Adressen 256, 512, 8192-8195 und 8208 konfiguriert. Hier sehe ich 4 einzelne Anfragen, die 1,1,4 und 1 Wort zurückliefern. Hier also auch ok.
Ich kann zwar auf die binären Ein- und Ausgänge mittels Registern zugreifen, allerdings muss ich mir dann im ioBroker die Bits einzeln aus dem Wort raussuchen, was in viel Arbeit ausartet.
Habe ich irgendwo einen Denkfehler oder funktioniert das bei Coils bzw. Discrete Inputs nicht?
Ich kann gerne noch mehr Sachen testen, da beides keine Produktivsysteme sind.
Gruß
Thomas
-
Setze mal "Max read request length" auf 1
-
Hallo Bluefox,
hat leider nicht funktioniert. Aber ich bin einen Schritt weiter mit dem Testen. Habe mir mal mod_RSsim installiert und ioBroker digitale Ein/Ausgänge lesen/schreiben lassen. Ich konnte ohne Probleme die Bits 0,1,2 und 1000 alle auf einmal lesen und schreiben. Ich werde mal weiter in Richtung Wago forschen. Vielleicht trete ich mal mit dem Wago-Support in Kontakt, da ich auf der Arbeit auch Wago einsetze, allerdings nur in der Modbus-RS485-Variante. Mal schauen was dabei rauskommt. Ich werde das Forum auf jeden Fall auf dem laufenden halten. Evtl. hilft es ja jemandem.
Gruß
Thomas
-
Noch eine Frage dazu: Kann der MB-Adapter nur die FC 1,2,3,4?
-
Guten Morgen Thomas,
ich wollte nur mal hören ob du schon etwas neues raus gefunden hast. Aktuell setzte ich noch FHEM ein und kommuniziere auch über Modbus_TCP mit meiner Wago.
Ich habe einige Videos von ioBroker gesehen und überlege gerade ob ich vielleicht umsteige. Dazu muss sichergestellt sein das Modbus sicher funktioniert, deshalb frage ich.
Ich habe mit FHEM bisher nur auf Global Merker zugegriffen, da ich einfache Logiken im Codesys programmiert habe.
Danke!
-
Hallo,
habe das selbe Problem. Wie habt ihr es gelöst. Es ist die einzige Variante die Funktioniert?
Habe zuvor Tage lang versucht die Wago als Master und den IOBroker als Slave zu benutzen, ohne erfolge.
Anders herum kann ich nur wie hier beschrieben die digitalen Eingänge der Wago lesen.