Wago 750-881 mit Modbus Ausgänge ansprechen

helije

Level-1
Beiträge
50
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich versuche bei Wago 750-881 + 750-530 (8 DA Karte) über Modbus die Ausgänge anzusprechen.
Erst möchte ich Bits (Boolean) Modbus Register in meinem Codesys SPS Programm abfragen und damit meine Ausgänge an Wago steuern.

Wie muss ich die Adresse aus Modbus Register als Variable in Codesys definieren? Wie sieht Variable aus?

z.B. Register Adresse 12289, 12290..., oder 512, 513 (Ausgänge), habe versucht: AT%MX0.1 usw. aber das ist der Fehler in Codesys.

Wir haben Genesis64 von Iconics in Betrieb. In Genesis64 kann ich auf Wago Modbus Register zugreifen/Werte schreiben, und kann ich entweder Coil oder Holding Register auswählen und noch +Adresse.

Oder haben Sie bessere Idee/Vorschlag, wie ich über Modbus Wago steuern kann?

Vielen Dank im Voraus
 
Guten Morgen,

Ist der 881 programmiert oder komplett leer?

Gruß Mavorkit

Gesendet von meinem SM-G950F mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

881 ist leer, aber ich habe vor, einfachen Sps Programm zu schreiben. Modbus Register Variable - QX0.0 (Ausgang) usw.
weil, ich habe irgendwo gelesen, es geht nicht direkt, Wago Ausgänge direkt über Modbus Register/Coil anzusprechen?!
 
Hallo,

Du kannst die 881 auch als Koppler einsetzen, dazu mußt Du unter Steuerungskonfiguration bei der PA Zuweisung unter PA Zuordnung 'Modbus TCP/UDP,fieldbus 1' anstelle von 'PLC,PLC' wählen.

Danach kannst Du die Ausgänge über die Funktionen 1, 2, 5 und 15 (Coil) mit den Adressen 512-519 (für die ersten 8 DA) ansprechen.

Gruß
 
Danke Thruser,

ich werde es heute testen.
das heißt, ich muss in Genesis64 Holding Register mit Adresse 514 (Bit 2) auswählen, siehe Bild
2019-07-09 09_26_58-http___ms-kepware_GENESIS64_Components_WBBrowserApp.xbap - Internet Explorer.png

das sind die auch andere Möglichkeiten:
2019-07-09 09_29_14-http___ms-kepware_GENESIS64_Components_WBBrowserApp.xbap - Internet Explorer.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Nein, Du mußt dafür Coil nehmen. Dann kannst Du jeden Ausgang direkt ansprechen. Funktionscodes 1, 2, 5 und 15 beziehen sich auf Coils (einzelne Bits).

Du könntest die Ausgänge auch über Register ansprechen, da kenne ich jetzt aber nicht die genaue Adresse. Dann müßtest Du aber auch die einzelnen Bits erst zu einem Word zusammenfassen, bevor Du sie sendest.

Coil Adresse 514 sollte der dritte Ausgangskanal sein. Aber eben als Coil, nicht Holding Register.

Gruß
 
Hallo,

ich kenne zwar eure Software nicht, bin mir aber ziemlich sicher, dass die Modbus Adressen immer in Wörtern ausgedrückt werden, egal welche Funktion gewählt wird. Und auf Coil 514 zugreifen wird nicht gehen, weil das 8 Stück sind.

Der erste Digitalausgang wäre hier dann doch wohl 512.0 der zweite 512.1 und so weiter. Mit 512 könnte man das komplette Wort übertragen, was für Modbus performanter ist, da Boolsche Coild auch immer als Wort übertragen werden, nur dann als Boolscher Wert interpretiert werden. Das Datenaufkommen ist also bei einem BOOL und einem WORD komplett identisch.

Wie gesagt, ich kann nicht für eure Software sprechen, sondern für Modbus Kommunikation zwischen Controllern bzw. von einem Aufzeichnungssystem im Netz das einzelne Werte abgreift. Aber trotzdem sollte der Modbus Standard hier kein anderer sein.

Gruß

Mavorkit
 
Hallo Marvorkit,

dann sieh Dir die Modbusspezifikation bitte noch einmal an.
2019-07-09 11_50_41-Window.png

Und hier noch die von der Wago
2019-07-09 11_50_59-Window.png

anhand der Meker kann man sehen:
12288 -> MX0.0
12289 -> MX0.1
12290 -> MX0.2

dann entsprechend für die Ausgänge
512 -> QX0.0
Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
"
anhand der Meker kann man sehen:
12288 -> MX0.0
12289 -> MX0.1
12290 -> MX0.2
"
schon probiert, hat nicht funktioniert.


"dann entsprechend für die Ausgänge
512 -> QX0.0"

512 hat funktioniert, für Bit 0, aber für alle andere nicht.
Welche Adresse wären dann für QX0.1,.2,.3...??

Danke
Gruß
 
Hallo,
"
anhand der Meker kann man sehen:
12288 -> MX0.0
12289 -> MX0.1
12290 -> MX0.2
"
schon probiert, hat nicht funktioniert.
wie hast Du die denn deklariert?
Code:
xDummy1 AT %MX0.0: BOOL; (* 12288 *)
xDummy2 AT %MX0.1: BOOL; (* 12289 *)

"dann entsprechend für die Ausgänge
512 -> QX0.0"

512 hat funktioniert, für Bit 0, aber für alle andere nicht.
Welche Adresse wären dann für QX0.1,.2,.3...??

Danke
Gruß
512 -> QX0.0
513 -> QX0.1
514 -> QX0.2

Gruß
 
Zuletzt bearbeitet:
Zurück
Oben