Wago Modbus und IoBroker kommikuation geht nicht

Joker666

Level-1
Beiträge
40
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen, gleich vorweg, ich bin blutiger Anfänger und hoffe das mir hier verständlich geholfen wird.

Eigentlich wollte ich den IoBroker zur Visualisierung nehmen, dafür muss ich aber das mit dem ModBus kapieren und da fängt mein Problem schon an.

Ich habe hier einen Testaufbau, eine Wago 750-8212, dahinter sind nur 2 DO und 2 DI. Die Wage ist der Slave beim Modbus.
Da ist mein Problem gerade, wo ich das etwas verständlicher machen wolle, habe ich die Variablennamen geändert und bekomme da nun folgende Fehlermeldung:

LocalDeviceModbus undefined variable Testschaltung.Merker_test.

die Variable habe ich umbenannt, aber es scheint als hätte der Modbus das nicht mitbekommen, und ich finde bei ecockpit nirgendwo etwas, wo man das ändern kann.

Aber das eigentlich Problem ist, das ich mit IoBroker, der als Master konfiguriet ist, laut dem Modbus-Adapter im IoBroker ist die Verbindung okay
Ich kann aber nicht auf die Merkeradresse der Wago lesen oder schreiben kann, ich habe einen Exceltabelle gefunden, wo die Merkeradressen der Wago eingetragen sind.

Dann habe ich beim Modbus Adapter im IoBroker als diskrete Ausgänge die Adresse 12288 (%MX0.0) eingetragen, die in der Wago als Eingangsvariable deklariert ist.
Und als diskrete Eingänge, habe ich die Adresse 12289 (%MX0.1), die in der Wago als Ausgangvariable deklariert ist.

Im IoBroker habe ich eine ganz einfache Visu gemacht, mit einem Schalter (verknüpft mit 12288) und eine Lampe (verknüpft mit 12289)

Aber es kommt, so wie es aussieht in der Wago gar nichts an. Und umso mehr ich mich durch das Internet lesen,
(Gefühlt möchte jeder seinen Wechselrichter auslesen) wird mein Brett vorm Kopf immer größer.

Vielleicht kann mir hier jemand einen ganz entscheiden Tipp geben.

Vielen Dank
 
Hallo,

die Excel Tabelle hilft hier nicht viel. Die funktioniert nur unter Codesys 2.3. Bei e!cockpit wurde das geändert. Daher mußt Du bei den Anleitungen im Netz immer darauf achten ob für Codesys 2.3 oder e!cockpit geschrieben.

Unter e!cockpit kann man mit der Verwendung des Modbuskonfigurators auch nicht gleichzeitig von e!cockpit und Modbus aus gleichzeitig lesend und schreibend auf eine Variable zugreifen. Da muß man dann vin Hand mit den Bibliotheken arbeiten.

Hier im Forum kannst Du aber auch einiges dazu finden. Habe gerade die Software nicht zur Verfügung.

Gruß
 
Hallo, ja das ist richtig, ich hab das nun erstmal mit einem BOOL hinbekommen, anscheinend kann man bei eCockpit die Modadresse auf die Variablen mappen.
Die Exceltabelle ist nur für Codesys 2.3 und da hab ich mich die ganze zeit dran festgehangelt....
 
Hallo Joker666, ich habe es so geloest.
In GVL Variablen anlegen:
//Variablen zur Kommunikation mit IOBroker über Modbus
axDiscreteInputs : ARRAY [0..100] OF BOOL;
axCoils : ARRAY [0..100] OF BOOL;
awInputRegisters : ARRAY [0..100] OF WORD;
awHoldingRegisters : ARRAY [12288..14000] OF WORD;

Dann Modbus Baustein anlegen:
FbMbSimpleServerTcp_0(
xOpen:= TRUE,
wPort:= 502,
utKeepAlive:= ,
xIsOpen=> xIsOpen,
xError=> xError,
oStatus=> oStatus,
udiConnectedClients=> udiConnectedClients,
bUnitId:= 1,
axDiscreteInputs:= GVL.axDiscreteInputs,
axCoils:= GVL.axCoils,
awInputRegisters:= GVL.awInputRegisters,
awHoldingRegisters:= GVL.awHoldingRegisters,
oMbAccessInfo=> );

Und schon kannst du in die Arrays von IOBroker schreiben und lesen.
Jetzt muss du nur noch die Variablen mappen.
VG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo nochmal, ich brauche nochmal Hilfe.

Ich habe nun einige Daten die ich per Modbus zum ioBroker schicke und umgekehrt.

Ob ich das alles richtg verstanden habe, keine Ahnung. Ich tue mich damit ehrlich gesagt echt schwer und verstehe dieses Baustein von Test14 so gut wie gar nicht, keine Ahnung wo ich da die Variablen eintragen sollte..

Jedenfalls hatte ich für mich den Weg gefunden, das ich in eCockpit auf die CPU klick und da konnte ich bei Modbus mit der rechten Maustaste klicken und dann Hinzugen aus Programm und hab mir da die Varialben ausgewählt.

Da waren dann die in Richtung aus Ausgang als Register und die Richtig Eingang als Coil. Da ich nicht rausgefunden habe, wie ich die Register bei dem ModBus adapter von dem ioBroker eintragen kann, habe ich alles als Coil umgestellt und das klappt auch.

Bei den diskreten Ausgängen habe ich nun von 32768 bis 32794 vergeben
Bei den Eingangsregistern habe ich 2562 bis 2574 vergeben
Bei den diskreten Eingängen habe ich 0 bis 22 vergeben

Das klappte bis jetzt auch. nun wollte ich bei den diskreten Eingängen weitermachen und habe mit der 23 weitergemacht und dann kommt folgende Meldung von dem Modbus Adapter:

Poll error count: 1 code: {"errorCode":130,"exceptionCode":3,"message":"ILLEGAL DATA VALUE"}

Ich weiß auch gar nicht, ob das am ioBroker oder auf der Wago Seite liegt.

Vielleicht kann mir hier jemand einen Tipp geben, woran es liegen könnte

wünsch euch ein schönes Wochenende
 
Servus,

also mit den eCockpit Adressen kenn ich mich 0 aus hast du da evntl ne Liste
der Fehlercode sagt ja schon was nicht stimmt, verstehe nicht ganz was du mit Registern machst aber vermute das da irgendwo aus einem Register etwas auslesen willst in den coils ?!
Bin immer ein Freund von screenshots
Zeig mal was im Broker eingestellt ist im Adapter und deine Variablen aus dem eCockpit

Gruß
 
Hallo, ja das Problem habe ich gelöst, ohne es zu verstehen, das wurmt mich noch ein bißchen.
Bei eCockput gibt es glaube ich keine feste Liste mit Adressen, so wie ich das verstanden habe. Bei Codesys2.3 gibt es ja feste Adressbereiche.
Das hat Wago bei eCockpit komplett geändert, bei Youtube gibts da von Wago auch ein kurzes Video zu.

Letztendlich habe ich beim ioBroker in der Modbus Instanz alles exportiert, mir eine neue Modbus Instanz installiert und alles in die neue importiert und funktioniert,
das ist schön, das es funktioniert, aber nicht befriedigend, nicht zu wissen warum es funktioniert oder nicht funktioniert hat.
 
Zurück
Oben