Wago 8212 modbus

fischerp

Level-2
Beiträge
13
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
erst mal die Hardware:
750-8212 mit FW 26
Codesys 3.5.19.2 mit den aktuellen Packages
Mit Hilfe einiger Forumbeiträge habe ich herausbekommen, wie man mit codesys 3.5 Modbusregister beschreibt. Das scheint zu funktionieren.Zumindest werden mir bei laufender Steuerung im E/A-Abbild die aktuellen Werte angezeigt. Enn ich mit einem Modbus Master Simulator auf die Steuerung schaue, wird mir im Modbus Sölave Status eine TCP-Client Connection angezeigt. Die kommt und geht, so wie ich die Verbindung auf- und abbaue. Für mich sieht das so aus, als ob der Modbus läuft.
Allerdings "finde" ich die Register nicht. Nachdem ich bereits mit mehreren WAGO Steuerungen zu tun habe, ist mir aufgefallen, dass die Startadresse für die Register abhängig vom Controller zu sein scheinen. Ein 880 und Codesys 2.3 schreibt beispielsweise in 12288 und die folgenden. Ein 8100 unter e!cockpit in 40000 und so weiter. Die 40000 sind nach den üblichen Dokumentationen auch Standart. Jetzt frage ich ich, ob mein Modbus entgegen meiner Einschätzung doch noch ein Problem hat, oder ob in meiner Konstellation wieder andere Registeradressen verwendet werden.
Wahrscheinlich hängt es an irgend einer Kleinigkeit.

Im Vorraus schon mal besten Dank
 
Hi,

etwas verwirrend.

Die Modbusregister beschreibst Du als Master/Client?

Du willst die Steuerung aber als Slave/Server betreiben und dann mit einem externen Master/Client darauf zugreifen?

Für letzteres findest Du die Adressen hier:
1709592932340.png
Mit diesem Beispiel beginnen die Adressen jeweils für jeden Functioncode bei 0. Je nach Master/Client muß man dafür aber entweder 0 oder 40001 als Adressbeginn angeben.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Thruser,
nachdem ich inzwischen noch mit einem anderen ModbusScanner (CAS von Chipkin) draufgeschaut habe, vermute ich das Problem doch eher in meinem Programm, abert schön von vorne:
Ich habe ein Gerät -> Feldbus -> Ethernetadapter angehängt
an das im Baum links jetzt aufgetauchte Ethernet einen Modbus Slave
Den habe ich so (Bild2) eingestellt.Bild1.pngBild2.png


Wenn ich das Programm starte stehen da dann auch WerteBild3.png

Wenn ich den Scanner starte, dann geht im Slave Satus die Anzeige Connection von 1 auf 2Bild4.png

Ich empfange allerdings auf allen Registern 0. Wenn ich die Startadress auf 40001 setze sagt mir der ScannerBild5.png
Das würde ich jetzt so interpretieren, dass ich dann 40000+40001=80001 als Startadresse habe, was nicht zulässig ist. Auch wenn ich im Scanner den selben Offset, wie in Codesys einstelle ändert sich nichts. An der Anzahl der verfügbaren Register solle es auch nicht liegen, ich schreibe 100 und versuche nur die ersten 20 zu lesen.
 
Hallo,

CAS Modbus Scanner kenne ich nicht. Ein Test mit der App aus dem MS Store funktionierte gerade nicht. Ich arbeite immer mit qModMaster.

Ein Funktionstest gerade eben damit funktionierte wie erwartet.

Sehe aber etwas anderes.

Die Holding Registers sind hier als Eingänge definiert. Erkennbar an der %IW Adresse. D.h. Du beschreibst die Werte von aussen über Modbus.

Die Input Register sind als Ausgänge definiert (%QW). D.h. Du beschreibst Sie im SPS Programm und liest sie von extern per Modbus.

Du kannst beiden Bereich durch die Checkbox 'Holding- und Input-Register Datenbereich überlagert' überlagern, so daß aufdie gleichen Daten beim Lesen als auch Schreiben zugegriffen wird.

Da liegt wohl gerade auch der Fehler, Du schreibst Du willst 20 Werte lesen (-> Input Registers) Du hast aber nur 10 definiert. Daher der Fehler.

Wie schreibst Du die 19.4 ... Werte dort, Im Sps Programm? Word umfasst nämlich nur 16 Bit, ein Real Wert wie 19.6 aber 32 Bit. Wenn Du also Real Werte übertragen willst müssen diese auf zwei Register aufgeteilt werden.

Gruß
 
OK mit der Checkbox kann ich mich auch irren. Habe ich noch nicht wirklich mit gearbeitet. Aber nach Hilfetext scheint es dafür zu sein. Es gibt aber ober noch eine weitere Checkbox 'Schreibbar' bei Holding Registers.

Mußt Du mal ausprobieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, genau das ist mir gerade auch aufgefallen. Die Checkbox "schreibbar" stellt die %IW in %QW um. Dann klappt das. Bei den Variablen ist es so, dass ich tatsächlich teilweise real angelegt habe.
Beides dumme Fehler, auf die ich auch selbst hätte kommen können. Auf jeden Fall hast Du mich auf den richtigen Weg gebracht. Danke dafür.

Das mit deh real habe ich übrigens so gelöst, dass ich die mit 10 (für eine Nachkomastelle) multipliziere und nach Word konvertiere. Das muss ich dann im realen Master (Scada) wieder zurückrechnen.
 
Zurück
Oben