NEWS
CodeSys V3.x Wago per ModBus mit IoBroker koppeln
-
Hallo Frank,
Vielen Dank für die Bilder.
Ich hatte die ganze Zeit versucht mit den 12288 Adressen und Merkel zu arbeiten. So findet man es in vielen Foren. Das bezieht sich wohl alles auf die Codesys V2.X.
Ich nutze auch eine 750 mit dem PFC200 und würde gegebenenfalls auch noch meine Alexa dazu bringen. Kann ich dich bei Fragen auch direkt anschreiben?
Wirklich vielen Dank nochmal. Hat auf anhieb funktioniert.
Jetzt kann ich erstmal damit arbeiten und meine In/Out Bits verschalten.
Viele Grüße,
Timo
-
Mit den alten Infos zur V2.3 hatte ich auch zu kämpfen bis mein neuer PFC200 wieder eingebunden war. Falls weitere Fragen bestehen
ruhig stellen, habe einiges bei mir wieder zum laufen gebracht.Über iobroker und Alexa geht nun auch wieder Lichter dimmen und Rollo's ansteuern.
Dafür benutze ich teils umgeschriebene Bausteine aus den OSCAT libs.
-
Hallo Frank,
kannst du mich vielleicht bei der Einrichtung unter CodeSys 2.3 unterstützen? Bekomme derzeit keine Ein/Ausgänge ausgelesen.
Vermutlich irgendwo ein Haken / Einstellung die gesetzt werden muss?
Danke schon mal
-
Mit der 2.3 sollte das alles einfacher gehen. Bei meiner alten SPS hab ich da nichts eingestellt oder in Codesys eingefügt.
Willst Du auf Physikalischen Adresse zugreifen oder Merker?
z.B. Bei einen BOOL Merker Ausgang at %MX0.0 in der SPS ist die modbus Adresse 12288;
Dies Adresse dann bei Diskrete Eingänge nehmen.
Meine 849 ist leider schon ausser Betrieb und die Sachen aus iobroker entfernt sonst würde ich da nochmal schnell nachschauen.
-
danke für deine schnelle Antwort.
Weiß noch nicht genau was der beste Weg ist. Würde die Kernlogig in der Wago lassen, damit Schalter etc. immer funktionieren. IO Broker primär für Alexa und schöneres Webfrontend.
Muss ich die Eingänge händisch setzen? Kann man die nicht auslesen? Das wäre ja sonst super aufwendig?
-
Ich benutzte im Moment iobroker auch nur als Alexa übersetzter, Logik bliebt alles in der SPS.
Physikalische Eingangsadressen zu beschreiben und einlesen hat macht keinen Sinn. Da muss man immer mit zusätzlichen Variablen arbeiten um z.B.
in der Visu/Voice Command ein Lichttaster zu erzeugen. Mit diesem FB löse ich das beim normalen Lichtschalter.
Physikalische Ausgangsadressen kann man dann wieder in Iobroker einlesen um zu schauen ob er an oder aus ist, um den aber zu zu ändern muss man ein Signal an die Merker senden um dann ausgang zu schalten.
-
Ja das löse ich ähnlich. Habe aber noch eltakos davor hängen, daher ist mein Baustein etwas komplexer.
Nur bekomme ich bisher die Eingänge nicht angezeigt im iobroker / modbus Adapter. Wie kriege ich die denn da rein? Status scheint Ok zu sein, seit ich eine Testvariable erzeugt habe
Die logs melden immer folgendes
-
Modbus Adresse passt nicht mit 10001. auf was liegt deine variable auf die zu zugreifen willst?
-
Wie finde ich das denn raus?
Am schönsten wäre es ja in den "virtuellen" Variablen, die auch für die WebVisu genutzt werden, neue Szenen zu erstellen, bzw. auf die vorhandenen Variablen zuzugreifen, oder geht das nicht?
Zum Einlesen des Status müsste man natürlich auf die Ausgänge zugreifen.
16511_wagophysischeausgaenge.png
16511_wagophysischeeingaenge.png
16511_wagovisuvariablen.png -
z.b. QxLicht_Kueche_1 liegt auf %QX0.0, das ist der erste digitale Ausgang und müsste auf Modbus Adresse 512 liegen. Mann kann in Iobroker über Diskrete Eingang Adresse 512 dann abfragen.
Siehe https://docplayer.org/18169584-Anwendun … 2-1-0.html Seite 60
das ist alles sehr schwer herauszubekommen mit den Hardware E/A aus diesen Grund bin ich damals auf Merker umgestiegen.
https://www.symcon.de/forum/threads/118 … #post99427
hier gibt es eine Excel Tabelle zu merken mit den zugehörigen Modbusadressen.
-
Am schönsten wäre es ja in den "virtuellen" Variablen, die auch für die WebVisu genutzt werden, neue Szenen zu erstellen, bzw. auf die vorhandenen Variablen zuzugreifen, oder geht das nicht?
Zum Einlesen des Status müsste man natürlich auf die Ausgänge zugreifen. `
Deklariere deine virtuellen" Variablen als Merker;
z.B. xVisu_STECK_EG_an AT %MX0.0 : BOOL;
Falls das ein virtueller taster ist kann man dann in iobroker Diskreten Ausgang adresse 12288 auf die Variable schreiben.
-
Danke für den Tipp. Das gucke ich mir mal an.
Hab momentan noch den Eindruck, dass das ganz schön unübersichtlich wird bei mir. Aber vielleicht auch nur am Anfang. Muss mir da mal eine Logik überlegen, damit es nicht völlig im Chaos endet. Gibt es da best practice? Steckdosen zusammen in einen Merker Bereich und Lichter oder lieber pro Raum?
-
Man muss ja nicht alles zu iobroker schicken. Wenn iobroker wie bei mir nur für Alexa steuern da ist merkt man schnell das weniger mehr ist, sobald zu viele Eintragungen drin stehen gehen einem die Rückfragen wie " Welches Gerät im Raum XY meinen Sie" gehörig auf die Nerven.
-
Ja das kann ich mir gut vorstellen.
Da wird es vermutlich auf ausprobieren hinauslaufen, ähnlich wie bei der WebVisu auch. Die habe ich nach und nach auch wieder reduziert!
Ok, dann baue ich das mal in die Steuerung als Merker mit rein. Welche Rolle bekommen die denn dann? Switch? Value? Bei dir sind ja alles state, aber mit der Config kommt bei mir im CoDeSys nichts an:
Du hast mir auf jeden Fall sehr weiter geholfen!! Vielen Dank schon mal.
Sorry habe deinen V3.x Thread etwas geschreddert. Soll ich meine Posts löschen, damit er wieder clean ist?
-
Lass Deine Post stehen für die Nachwelt :), wird mehrere geben mit dem Problem.
Bei Coils steht bei mir alles auf state. Eventuell noch versuchen bei Wahr_wert und Falsch_wert statt 0 und 1, True und False zu schicken.
-
Alles klar! Danke für deine Hilfe.
Wenn man Alias verwenden ausschaltet funktioniert es bei mir auch!
-
Hallo zusammen,
das schalten von meinen Lampen auf der Wago funktioniert nun einwandfrei über die IOBroker Visu.
Was mir aber noch nicht ganz klar ist. Die Ein und Ausgänge in Codesys 3 sind beschränkt. Also alle meine Werte über Real/Int/String usw zu übertragen werde ich nicht schaffen oder?
Oder kann man den I/O Bereich unter Modbus erweitern?
Viele Grüße,
Timo
-
Okay die Frage hat sich geklärt. Ich kann einfach die Ein- und Ausgangsregister erhöhen.
Kann mir jemand sagen wie ich Int Werte in IO Broker anlegen muss?
Ich will einen INT Wert in IOBroker bearbeiten und in die Wago schreiben.
Somit habe ich es in der Wago in das Ausgangsregister gelegt.
Und würde es in IO Broker im Holdingregister anlegen richtig?
Viele Grüße,
Timo