Wago 750-8100 e-Cockpit Modbus Register Coil Überschneidung

Zuviel Werbung?
-> Hier kostenlos registrieren
@Bugelfips

Ich hab bei mir ioBroker laufen. Mit openhab bin ich nie so recht warmgeworden.
Auf der Wago habe ich den "normalen" Modbuskonfigurator verwendet, also nicht den Modbus-FB.
Array of Bool funktioniert beim Modbuskonfigurator nicht richtig. Ich hab die Bool-Variabeln für Discrete Input und Coil einzeln angelegt.

Coil funktioniert mit ioBroker nicht richtig. Hier bin ich halt auf Holding-Register ausgewichen.

Gruß
Blockmove
 
Hallo Blockmove,

ich würde gerne mitreden können und meine Erfolge bzw. Misserfolge euch mitteilen. Leider finde ich die Zeit nicht dazu.

Danke schon mal für die einfach gehaltene Beschreibung trotzdem sehr informativ.
Fragen habe ich trotzdem, wo werden denn deines Coils, Register empfangen (openhab)?
Ich überwache den Modbus mit einem Modbus Scanner, wenn ich Online gehe werden werte überschieben wo gar nicht definiert sind. vielleicht sollte ich das auch mal mit deiner Methode probieren, sprich Array of Bool.

Guten Morgen,

also "wo" sie empfangen werden, ist immer geräteabhängig.
Denn der Modbus ist immer nur eine Vereinbarung "zwischen" den Geräten.

Du hast einen Schrank mit vielen Schubladen, ich habe einen Schrank mit vielen Schubladen.

Ich definiere jetzt, welche Schubladen bei mir Coils und welche HRegs sind.
Das Gleiche machst Du bei Dir. Du hast aber einen ganz anderen Schrank, als ich....
Meiner ist rund, ich "adressiere" also meine Schubladen mit Radius und Winkel.
Deiner ist viereckig, Du addressierst also in Zeilen und Spalten.

Jetzt wollen wir Daten austauschen. Ich brauche jetzt nicht wissen, wo, in welcher Schublade und mit welcher Adressierung das bei Dir passiert. Ich brauche von Dir nur die Info, in welchen HReg-Schubladen und in welchen Coil-Schubladen welche Dinge liegen. Genauso Du von mir.

Somit können wir uns über "HRegs" und "Coils" unterhalten und jeder weiß, in welche Schublade er das bei sich packen muß...

Der viel beschriebene Versatz um "1" kommt von einer Unzulänglichkeit der Modbus-Mütter&-Väter (Erfindungsverantwortliche, um gendergerecht zu sein :ROFLMAO:):

Coil/Register NumbersModbus-AddressData AddressesType
Table Name
1-99990-99980000 to 270ERead-WriteDiscrete Output Coils
10001-19999
10000-199980000 to 270ERead-Only
Discrete Input Contacts
30001-3999930000-399980000 to 270ERead-OnlyAnalog Input Registers
40001-4999940000-499980000 to 270ERead-WriteAnalog Output Holding Registers

Wie Du siehst, gibt es eine Modbus-Adresse und eine Coil/Registernummer: Und diese sind um 1 versetzt.
Bitte frag mich nicht, warum man das so gemacht hat: Aber diese beiden Formate werden gerne und regelmäßig bei den Dokumentationsverantworlichen verwechselt.

Auf dem Kabel selber existieren die nicht. Dort existieren die Funktionscodes (die definieren, ob es Coils/Hregs/Iregs/Contacts sind) und die Data Address.

So, um zum Thema zurückzukommen:
Wago hat sich nun entschieden, die Dinge in zwei Schubladen gleichzeitig zu packen.
Bei einem anderen Koppler hatten wir auch gerade das Thema: Du kannst auf zwei Adressbereiche schreiben und einen davon zurücklesen!? Wofür?
Ich hätte mir jetzt vorstellen können: Auf einen schreiben und der Koppler überträgt das in den zweiten Bereich, damit ich das zurücklesen kann, um den Empfang zu verifizieren. So ist es aber nicht... WAGO bekleckert sich bei seiner Modbus-Umsetzung IMHO nicht mit Ruhm und bei der Dokumentation sind sie noch schlechter. Wir sitzen regelmäßig mit zwei Programmierern davor und sind jedes Mal am überlegen, wie das nun gemeint und gemacht ist. - Und das Ganze, obwohl WAGO alles über Modbus macht.

Gruß
Jens
 
Zurück
Oben