# Wago -> iobroker



## Jannik146 (24 September 2020)

Hallo,
Ich möchte meine Wago 750-880 mit meinem iobroker (aus einem Raspberry) verbinden.
Bin noch vollkommen ahnungslos in diesem Thema bezüglich Modbus etc...
Hoffe mir kann jemand weiterhelfen.


----------



## Blockmove (24 September 2020)

Schau mal hier im Beitrag 13 findest du eine Excelliste mit der Umsetzung Merkeradressen zu Modbusadressen

https://www.symcon.de/forum/threads/11889-Modbus-Bits-auslesen/page2


----------



## Jannik146 (27 September 2020)

Mein Problem ist überhaupt eine Verbindung zwischen iobroker und wago herzustellen.
Da kommt dann Kom_Fehler 150


----------



## Tobsucht (29 September 2020)

Sorry, deine Konfiguration ist in meiner Glaskugel sehr unscharf.
Wo wird der Fehler 150 ausgegeben?


----------



## Jannik146 (29 September 2020)

mmmh,, meinte 153


----------



## Jannik146 (29 September 2020)

modbusadapter bleibt gelb


----------



## Thruser (30 September 2020)

Hallo,

Master (client) und Master kommunizieren nicht miteinander. Du mußt eine Seite als Slave (Server) konfigurieren. Am besten die Wago, dafür auch der Verweis auc die Exceltabelle von Blockmove

Hier solltest Du ein paar Tips finden: https://forum.iobroker.net/topic/3540/modbus-erste-schritte

Gruß


----------



## Jannik146 (6 November 2020)

Welche Einstellungen muss ich in der Wago vornehmen?
Ist das so korrekt..sorry.. hab echt keinen Plan.:-(


----------



## Jannik146 (6 November 2020)

Welche Einstellungen muss ich in der Wago vornehmen?
Ist das so korrekt..sorry.. hab echt keinen Plan.:-(
Hat jemand screenshots als Beispiel für mich?
Anhang anzeigen 51576


----------



## Blockmove (6 November 2020)

Beim 750-880 brauchst du keinen FB für die Modbus-Kommunikation.
Du musst nur Modbus im WBM (Web based Management) einschalten.
Danach sind die Merkerbereiche gemäß der Exceltabelle gemappt


----------



## Jannik146 (7 November 2020)

Ok. Wie genau fülle ich wie was aus..sorry bin vollkommener neuling


----------



## Cheesys (14 Dezember 2020)

Für den iobroker muss kein Modbus aufgerufen werden.
Ausgänge auf Merker legen.
Laut der exceltabelle im iobroker eintragen und fertig.
Falls Problem noch aktuell ist kann ich es gerne ausführlicher beschreiben, oder ist es bereits gelöst?


----------



## Jannik146 (14 Dezember 2020)

Hallo Cheesys
In welchem adapter oder wo trage ich die merker in iobroker ein?
Muss ich in der wago was extra vornehmen?
Gibt es ein beispiel?
Danke im voraus


----------



## Cheesys (14 Dezember 2020)

Servus,
das ganze trägst du im modbus Adapter ein 
In der Wago musst normal nichts mehr vornehmen 
Bei den Adressen gibt es Unterschiede, je nachdem ob es in codesys oder im eCockpit erstellt wurde 
meine angehängten Bilder sind Beispiele aus Codesys und wie mein iobroker konfiguriert ist 




EDIT:
Wago Port Konfig hinzugefügt


----------



## Jannik146 (15 Dezember 2020)

Moin,
Freu mich --hab endlich eine verbindung .DANKEEE
wenn ich einen eingang auf der wago habe kommt er auch im iobroker an.
jetzt fehlt nur noch das ich die Ausgänge von der wago mit dem iobroker steuern kann!?
Die Merker bleiben dauerhaft an(siehe bild)
	

	
	
		
		

		
			









Als was muss die diskreten eingänge deklarieren (rolle)?


----------



## Cheesys (15 Dezember 2020)

Jannik146 schrieb:


> Moin,
> Freu mich --hab endlich eine verbindung .DANKEEE
> wenn ich einen eingang auf der wago habe kommt er auch im iobroker an.
> jetzt fehlt nur noch das ich die Ausgänge von der wago mit dem iobroker steuern kann!?
> ...



Abend,

dann gerne rauf auf den Danke Button ;-)
deklariert im modbus Adapter wie in meinem Beispiel als Button genügt für Boolean.
Die frage ist wie du die Merker angesteuert hast, über den objects Reiter des iobrokers kannst du den status fest und dauerhaft ändern.
In einer Version die es vor ca 6-7 Monaten gab war ein Bug der dort nach einem true kein false mehr akzeptierte ohne ein Neustart des Adapters.
Falls du über die vis gesetzt hast kann es ein Problem mit deinem Browser liegen das das false nicht mehr erkannt wird -> einfach mal ein anderen probieren (opera funktioniert am besten solange du es nicht am Touchscreen verwendest)
Am besten mal ein Screenshot von deinen objects posten


----------



## Jannik146 (16 Dezember 2020)

Habe noch keine Visu.
habe mal andere merker benutzt.
wollte nur unter objekte die ausgänge der wago steuern.


----------



## Cheesys (16 Dezember 2020)

Laut den Screens ist doch alles so wie es sein soll?


----------



## Jannik146 (16 Dezember 2020)

Wenn ich den Button drücke wird in der wago aber nicht der ausgang gesetzt!?


----------



## Cheesys (16 Dezember 2020)

Wago überhaupt gestartet?


----------



## Jannik146 (16 Dezember 2020)

Ja.Meine taster an den eingängen der wago sehe ich ja im iobroker


----------



## Cheesys (16 Dezember 2020)

Das heißt noch nicht das die WAGO im Run Mode ist ;-)
Codesys -> online -> Start


----------



## Jannik146 (16 Dezember 2020)

Habe die wago definitiv gestartet(genau wie du geschrieben hast codesys》 online》 start)


----------



## Cheesys (16 Dezember 2020)

Also werden die Merker dann pink im online modus?
nur die Ausgänge werden nicht geschaltet ?
funktionieren andere Programme? 
Ganz simpel 
_%IX 0.0 --- %QX 0.0 _?


----------



## Jannik146 (16 Dezember 2020)

Die Merker werden nicht pink!
Simple programme schalten die ausgänge
Wenn ich einen Eingang belege wird der Merker pink und im iobroker steht dann auch true


----------



## Cheesys (17 Dezember 2020)

Gut nachdem ich langsam nicht mehr durchsteige wo dein Problem bzw. Fehler liegt
Poste mal deine deklarationen, deine objects, dein Programm, deine coilliste im modbusadapter, deine inputliste aus dem modbusadapter.
Und gaaaaaanz wichtig.
Was genau du vorhast mit Gedankenlesen komme ich langsam nicht mehr weiter ;-)


----------



## Jannik146 (17 Dezember 2020)

Ich möchte einfach mit dem iobroker etwas in meiner Wago steuern. z.b. wenn mein iobroker Sonne/Temperatur sagt, dass meine Wago die Rolläden fährt.
Oder wenn meine Wago das Klingelsignal auf einem Eingang erkennt, dass mein iobroker mir über alexa etwas ansteuert/ansagt.


----------



## Jannik146 (17 Dezember 2020)




----------



## Cheesys (21 Dezember 2020)

Kann dir ehrlich nicht sagen ob das so korrekt ist, deklariere meine Variablen immer direkt im Programm und die Merker in den Globalen Variablen
In den anderen beiden Programmen hast aber nicht die Ausgänge auch in einem Netzwerk verwendet?


----------



## Jannik146 (23 Dezember 2020)

Ne Ausgänge verwende ich nur in einem Netzwerk


----------



## Cheesys (27 Dezember 2020)

Moin,

so hab nochmal auf einem Screen meine Steckdosen die nur über iobroker gesteuert werden reingepackt inkl. Einstellungen so funktionieren Sie ohne Probleme.
Sonst fällt mir wirklich nichts ein das hier noch helfen könnte.


----------



## Jannik146 (2 Januar 2021)

Hallo Cheesy,
habe das mal genauso aufgebaut wie bei dir.
Leider kommt in der Wago nichts an, wenn ich den Button drücke/gedrückt halte.
Kannst du mir mal bitte Screenshots deiner Reiter vom Objekt (Allgemein,Nativ,Zugriffskontrolle,Weitere & RAW) machen?
	

		
			
		

		
	




Weiß es nicht woran das liegen soll?


----------



## Cheesys (2 Januar 2021)

Wenn ich das deinem Screen richtig entnehme hast du im broker den Merker unter "discrete Inputs angelegt", gehört aber unter "discrete Outputs / coils"
einmal kurz ändern und Bescheid geben ob es klappt ;-)


----------



## Jannik146 (3 Januar 2021)

jippiiiiie es geht.
wenn ich auf switch stelle kann ich den ausgang true und flase schalten.
Wenn ich allerdings die Funktion auf Button stelle mit mein Merker in der Wago true, bekomme ihn durch erneuertes drücken bzw. loslassen des buttons nicht auf false


----------



## Cheesys (3 Januar 2021)

Na dann Glückwunsch ^^
war übrigens auf meinem ersten Screen zu sehen wo die Merker anzulegen sind ;-)
Wenn auf button bist musst rechts auf bearbeiten klicken (bleistift symbol) und händisch false eintippen und bestätigen.
Aber wirst dir dafür ja eine Vis bauen dann brauchst das ja nicht.
Würde dir aber raten jegliche Logik in der Wago zu programmieren, nutze bei mir iobroker auch nur als Schnittstelle zwischen z.B. SmartTV und Wago und als visu.


----------



## Jannik146 (5 Januar 2021)

Hey
Das mit dem Bleistift habe ich probiert trotzdem bleibt der Merker true


----------



## Step7Neuling (6 September 2021)

Cheesys schrieb:


> Servus,
> das ganze trägst du im modbus Adapter ein
> In der Wago musst normal nichts mehr vornehmen
> Bei den Adressen gibt es Unterschiede, je nachdem ob es in codesys oder im eCockpit erstellt wurde
> ...


Kannst du mir vielleicht da auch mal unter die Arme greifen ?

Ich habe nun folgende Einstellungen hin und her Probiert...und es geht nicht...

Habe ein Modbusregister von %MX0.0 - %MX0.7 angelegt.   WAGO 
Auf dem IOBroker :

TCP , IP Adresse WAGO, Port 502, Unit ID 4, Master
mal mit Diskrete Eingänge, Diskrete Ausgänge, Eingangsregister und Holding Register...
alles Probiert....weder kann ich was senden noch was empfangen...

Ich muss dazu sagen, ich habe bereits eine Modbus Verbindung mit einem FB realisiert nur dort kann ich auch nur das Abfragen, was ich 
mit dem IOBroker bereits auf einem anderen Gerät abfrage...

Praktisch ist es so :

Messgerät (Master) > IOBroker (Slave)  > Wago mit FB (Slave)

funktioniert...

nur halt nicht mehr...

Was sollte ich mal probieren, was definitiv funktionieren muss...

Kannst du vielleicht mal eine Schritt für Schritt Anleitung zur Verfügung stellen ?
kann dann auch mit Screenshots meine Ergebnisse senden....


Vielen Dankl für deinen Support


PS: Ich  möchte einfach eine Modbus Verbindung haben bei der Senden zur Wago vom IoBroker zur Wago kein Problem mehr ist.


----------



## Cheesys (6 September 2021)

Servus,

erstmal welches Messgerät? da wurde vorher nichts erwähnt 
Screenshots bzw. Anleitung ist in meinen vorherigen Kommentaren vorhanden.
Poste mal Bilder von deinen Globalen Variablen bzw. was du angelegt hast.
einfachste Möglichkeit zum Test ist wie in den Kommentaren davor einfach einen Merker von der iobroker Weboberfläche in den Objekten auf true setzen und in der SPS nachsehen ob der Merker gesetzt wurde.
Das funktioniert auch ohne ein laufendes Programm.
und falls du wie ich vermute ein Messgerät hast (Stromzähler?) den du über Modbus auslesen willst - mach das direkt auf die Wago die ist da pflegeleichter


----------



## Step7Neuling (13 September 2021)

Beginnen wir vielleicht das Thema nochmal mit ein paar mehr Infos...

Also letzendlich möchte ich nur eine Modbusverbindung von der Wago zum IOBroker und umgedreht...

Wenn ich eine Variable in der Wago anlege...z.B.  %MW100 und diese nur beschreiben möchte...
Muss ich Sie mehrmals eintragen oder einen neuen Adapter (Instanz) anlegen wenn ich das auf
beiden Seiten machen möchte ?  Wago>IoBroker   o.  IoBroker>Wago

Was muss ich dafür im Modbus Adapter einstellen ? (IOBroker)
In welchem Register muss ich Sie anlegen ?

12288 ?





Wie sollten die Verbindungsparameter ausschauen ?





Vielleicht ist es besser von vorne zu beginnen und welche Geräte ich noch lmit der Wago lesen kann, 
ist ja eigentlich unrelevant...

Vielen Dank für eure Hilfe.


----------



## Blockmove (13 September 2021)

@Step7Neuling 
Erstmal vorne weg:
Welche Wago-Steuerung bzw. welche Runtime?

Bei ioBroker reicht eine Modbus-Instanz für Lesen und Schreiben.


----------



## Step7Neuling (13 September 2021)

Ich habe eine 880....läuft mit CoDeSys v2 ....als Modbus habe ich die neuste Wago Lib.

Das liest sich schonmal gut...das eine Instanz genügt...


----------



## Blockmove (13 September 2021)

Step7Neuling schrieb:


> Ich habe eine 880....läuft mit CoDeSys v2 ....als Modbus habe ich die neuste Wago Lib.
> 
> Das liest sich schonmal gut...das eine Instanz genügt...


Wenn du Codesys 2 hast, dann brauchst du eigentlich keine Lib und keine Bausteine.
Bei Codesys 2 sind die Merker fest auf Modbus - Adressen gemappt.
Für Adressen kannst du hier mal schauen:
https://www.symcon.de/service/dokumentation/modulreferenz/sps-wago-beckhoff-abb/


----------



## Step7Neuling (13 September 2021)

Und was muss beim iobroker eingestellt werden...?

Könnt ihr mir Bilder schicken?

Würde es dann nochmal testen


----------



## Cheesys (14 September 2021)

@Step7Neuling 
Lese dir bitte mal den ganzen Thread hier durch 
habe wirklich von jedem Reiter aus dem IOB und aus Codesys Screenshots eingestellt wie das ganze eingestellt werden sollte.
Inkl. Beispiele 
die Adressen hat dir @Blockmove oben eine Seite reingestellt (Danke dafür hab immer mit einer excel Tabelle gearbeitet ;-)


----------



## Cheesys (14 September 2021)

Cheesys schrieb:


> Servus,
> das ganze trägst du im modbus Adapter ein
> In der Wago musst normal nichts mehr vornehmen
> Bei den Adressen gibt es Unterschiede, je nachdem ob es in codesys oder im eCockpit erstellt wurde
> ...


@Step7Neuling
hier bitte erste Seite ;-)

EDIT:
sehe gerade du hast den Beitrag sogar selbst zitiert.
Bau einfach mal das nach mit den selben Adressen

Erster Punkt wäre mal ob der modbus.0 Adapter bei dir grün wird oder noch gelb ist - keine Verbindung
deine Screens zeigen einen modbus.1 Adapter falls beide mit gleicher IP eingestellt sind hast hier schon Problem A


----------



## Step7Neuling (14 September 2021)

Modbus.0 












Aber bei der Wago kommt nichts an...

Ich verstehe nicht wo der Fehler liegt?

Vielleicht sehe ich es auch einfach nicht...


----------



## Cheesys (14 September 2021)

Also ist ja alles grün
d.h. die Wago wird vom IOB angesprochen
in meinem Beispielen siehst das ich nicht in den Holding Registern etwas angelegt habe sondern in den discrete outputs
dort hast aber nur Bool und keine werte etc.
Dimmwerte gehen wieder über die Holding register
dann musst in deinem codesys programm deine werte in Merkerwords schreiben
teste aber erstmal ob du ein coil über den IOB schalten kannst

EDIT:
zeig mal deine Variablenliste in Codesys


----------



## Step7Neuling (16 September 2021)

dort habe ich bisher erst das MW100 angelegt.

Vielleicht fehlt ja auch noch eine Info....ich erkläre nochmal wie ich es aufgebaut habe :

Also ich habe derzeit nur noch ein Modbus Adapter installiert.
Ich habe eine Master Modbusverbindung an meiner Heizungsdatenlogger aufgebaut, diese Kommuniziert mit dem IOBroker (Slave).
Im IoBroker habe ich nun Adresse von 0-6 im Holding Register eingesetzt. Diese werden dann vom CMI in diese Adresse geschrieben. Was auch perfekt funktion.

Nun lese ich mit meiner Wago über einen Ethernet_Modbusmaster_TCP mit der Funktion 03 " read multiple registers " den gleichen 
Adressenbereich aus und bekomme auch ganz normal die Daten.

Was nun nicht funktioniert, was auf die Wago vom IOBroker zu schreiben oder überhaupt noch was anderes an die WAGO zu senden....wenn ich z.B. eine Adresse 7 nehme und belege dort die Variable mit einem anderen Wert aus dem IOBroker ( Über Skript Variable > Variable kopieren )...dann kann ich dies mit der Wago nicht auslesen.


----------



## Cheesys (16 September 2021)

Also MW100 -> 12388
hab dir unten mal die holding register angehängt mit denen ich die dimmwerte aus der vis an die wago sende und anders herum den dimmwert von der wago abfrage

EDIT:
für die kommunikation mit der wago brauchst einen eigenen modbus adapter im broker


----------



## Step7Neuling (16 September 2021)

Ok, dann würde ich es nochmal Probieren und einen neuen Adapter im  Broker herzustellen.
Sollte dieser dann als Master Laufen ?

Bei deiner Konfiguration hast du als erstes das den Merkerbereich 202 genommen ?
Sehe ich soweit richtig ?

Ich lese ja bereits schon aus dem Broker....wie sollte ich dann damit umgehen ?
Oder ist das derzeit einfach nur eine weiterleitung ?


----------



## Cheesys (16 September 2021)

Ja MW 202-> 12490
Ja Adapter als Master wie in meinem Ursprünglichen Post
Du liest mit dem Broker doch nur auf deinen Heizungslogger?
das läuft doch weiter so, oder welche kommunikation ist gemeint?


----------



## Step7Neuling (16 September 2021)

Es klappt einfach nicht, ich verzweifel noch, es ist bestimmt etwas ganz kleines...

Also ich habe nun einen zweiten Adapter auch bei der Wago eingerichtet....
Ich habe als IP Adresse : den IOBroker gemacht UNITID habe ich eine 25., Funktion 3, Read_Address eigentlich egal...
ich bekomme immer Error Code 2 :  Illegal data address


----------



## Cheesys (16 September 2021)

ok den baustein brauchst du nicht
- Wago so einstellen wie im oben zitierten Screenshot
- Am IOB modbus Adapter auf die Wago einrichten (siehe Screenshot)
- In globalen Variablen im Codesys ein MW100 anlegen
- unter Holdingregister eine Adresse 12388 anlegen 
- Programm in codesys laden und wago starten
- in codesys in das MW100 eine x-beliebige zahl schreiben (f3 onlinebetrieb)
- im IOB unter objekte nachschauen ob etwas ankommt
- kommunikation funktioniert
- jetzt nur noch gewünschte werte in die MW schreiben und schon kannst die in beide Richtungen auslesen

P.S.
das alles funktioniert komplett ohne ein Programm du brauchst genau 0 Bausteine zur Modbus Kommunikation


----------



## Step7Neuling (20 September 2021)

Habe das jetzt alles so gemacht....
Aber irgendwie will es immer noch nicht. 

Ich habe nun die Funktion deaktiviert, so das ich auch auf keiner Art eine Verbindung zum IoBroker habe.

Habe in der Wago eine Variable angelegt .... %MW100

Habe den IOBroker so konfiguriert :







und bekomme diese Fehlermeldung....im ständigen Wechsel...
Aber normal sollte doch die Adresse fumktionieren....ist da schon irgendwie ein Offset mit drin ?


----------



## Cheesys (20 September 2021)

Bitte Screenshot wie du in codesys deklariert hast dein MW100


----------



## Step7Neuling (20 September 2021)




----------



## Step7Neuling (20 September 2021)

bei diesen Einstellungen muss doch noch was Faul sein...


----------



## Cheesys (20 September 2021)

Step7Neuling schrieb:


> Anhang anzeigen 56374


Du schreibst eine Temperatur in ein Word die hat sicher ein Komma ;-)
das geht nicht auf der seite vom IOB hast du ein Float und auf der Seite Wago ein Word das passt nicht
ändere das WORD zu einem REAL ab


----------

