NEWS
Modbus adapter
-
Hello, I use ESP8266 to communicate with IO Broker over MODBUS TCP, ESP as a slave, Broker as master. It works, I can see my data (two analog sensors), but the update time is very slow, like once every 15-20 seconds and lots of timeouts in the log. In the mean time another SCADA software that I am testing called mySCADA updates same data fine, every second. What can be wrong? FYI, I am using https://github.com/andresarmento/modbus-arduino library for ESP8266. Danke für deine Hilfe
-
Hi,
I do not use these ESP HW but maybe it‘s useful to take a Wireshark trace of the Modbus communication. Then you should be able to see which element is causing the delay.
Best regards
Mirko
-
Hi,
I do not use these ESP HW but maybe it‘s useful to take a Wireshark trace of the Modbus communication. Then you should be able to see which element is causing the delay.
Best regards
Mirko `
Have you used Wireshark to troubleshoot Modbus communication? Any tips on setting it up? Thanks. -
Hi,
Did not use Wireshark for Modbus but i would start by setting a filter for source and destination IP. (Modbus Server and Client)
Br
Mirko
-
Hello, I use ESP8266 to communicate with IO Broker over MODBUS TCP, ESP as a slave, Broker as master. It works, I can see my data (two analog sensors), but the update time is very slow, like once every 15-20 seconds and lots of timeouts in the log. In the mean time another SCADA software that I am testing called mySCADA updates same data fine, every second. What can be wrong? FYI, I am using https://github.com/andresarmento/modbus-arduino library for ESP8266. Danke für deine Hilfe `
Problem fixed by switching to a different MODBUS library from https://github.com/JhonControl/ESP8266_ … dbusTCP_V2
-
So, der Knoten ist geplatzt…
Also eigentlich ganz einfach, wenn man nicht mit Aliasen arbeitet.
Falls jemand vor dem gleichen Problem steht:
In TwinCat müssen folgende Arrays als Globale Variable angelegt werden:
mb_Input_Coils : ARRAY [0..255] OF BOOL;
mb_Output_Coils : ARRAY [0..255] OF BOOL;
mb_Input_Registers : ARRAY [0..255] OF WORD;
mb_Output_Registers : ARRAY [0..255] OF WORD;
Diese Arrays beginnen alle bei Adresse 32768.
Um nun auf diese Adressen zugreifen zu können habe ich den Haken bei Alias verwenden entfernt und die Adressen direkt angelegt.
Für eine Lampe z.B. unter Diskrete Ausgänge einen neuen Ausgang mit Adresse 32768 vom Typ Switch.
Der schaltet bzw. liest den Wert von mb_Output_Coils[0] in der SPS.
Für die Profis hier wahrscheinlich basics aber vielleicht hilft es ja trotzdem jemandem `
Hallo Telefisch
ich stehe gerade auch vor dem selben Problem wie Du.
Aber offensichtlich mache ich noch etwas falsch.
Ich habe einen CX8090, auf dem das Modbus TCP Supplement bereits installiert ist.
Wäre es Möglich, dass Du mir ein paar Beispiele ( Einstellungen) schicken könntest?
Vielleicht platzt dann der Knoten auch bei mir?
Vielen Dank vorab
Grüße
Wolle
-
Natürlich versuche ich Dir zu helfen…
...wo stehst Du denn grade?
Hast Du Erfahrung mit TwinCat oder bist Du auch so ein Noob wie ich?
Hast Du die globalen Variablen schon drin?
Ich hab das mit TC2 gemacht. Falls du TC3 verwendest könnte es anders aussehen.
Aber erzähl erstmal was du bisher hast.
-
Mit dem Zugriff auf die Input Coils hatte ich Probleme, deswegen habe ich alles über die Output-Coils gemacht.
Ab Adresse 0 (mb_Output_Coils[0]), bis 99 (mb_Output_Coils[99]) sind bei mir die Taster belegt und ab 100 (mb_Output_Coils[100]) hole ich mir quasi den Status der Ausgänge zurück.
Im ioBroker geht's dann weiter.
Hier erstmal mein TwinCat-Auszug:
2196_tc2_globale_variable_modbus.jpg
2196_tc2_globale_variable_verwenden.jpg -
Im ioBroker stellst Du dann den Modbus Adapter ein, wie auf den Bildern.
IP Adresse ist natürlich die von Deiner CX8090.
Und wichtig, keine Aliase verwenden.
Um eine Lampe zu schalten benutze ich in meiner Steuerung Bausteine die ein Tastsignal erwarten.
Also Steigende Flanke an, nächste steigende Flanke aus.
…dürfte aber auch logisch sein.
Die Ausgangs-Coils (ab mb_Output_Coils[100]) geben mir nur den Status des Bausteins zurück, der die Lampe geschaltet hat.
Diesen also nicht vom Broker aus schalten sondern nur lesen.
Adresse 0 (mb_Output_Coils[0]) entspricht im Modbus-Adapter der Adresse 32768.
Demnach fangen die Tastersignale bei 32768 an und die Rückmeldungen bei 32868.
Die Adressen musst Du halt alle einmal im Modbus-Adapter anlegen.
Ich hoffe es hilft erstmal soweit, in Kombination mit Alexa hatte ich schon was anderes dazu geschrieben, findest Du im Alexa-Threat, falls bei Dir auch beabsichtigt.
Ich muss jetzt erst los, wenn noch was anliegt, nur zu.
CU Carsten
2196_modbus_adapter_3.jpg
2196_modbus_adapter_2.jpg
2196_modbus_adapter_1.jpg -
Hallo Carsten
wow….erstmal vielen Dank für die schnelle Antwort.
Ich benutze auch TwinCat 2 und kenne mich schon etwas damit aus.
(bin nur nicht unbedingt der Modbus Freak)
Ich habe meine komplette Technik Zuhause vernetzt und auch visualisiert.
(Licht, Hzg, Wärmepumpe, Lüftung, Jalousie, Multimedia, Fenster,.....)
Mit den Bildern fange ich schon mal viel an.
Damit hast Du mir schon viel geholfen.
Irgendwie war mir der Zusammenhang zw. SPS und IOBroker nicht ganz klar.
Ich werde das über Weihnachten mal ausprobieren und dann wieder berichten.
Wünsche Dir schonmal schöne Feiertage
Und Danke nochmals
Grüße
Wolle
-
Dann viel Erfolg
und ebenso schöne Feiertage.
Mir war es halt wichtig, dass alles auch ohne den Broker so weiter funktioniert wie bisher
LG Carsten
-
Hallo an alle
nachdem Carsten mir den entscheidenen Tip mit den Einstellungen gegeben hat,
kann ich mit Alexa zwischenzeitig meine Beleuchtung über meine Beckhoff Steuerung schalten.
Ich habe bei mir die Beleuchtung allerdings über einen Switch und nicht über den Button gesteuert.
Vielen Dank nochmals Carsten für Deine Unterstützung.
Ein Problem habe ich derzeit noch mit den Jalousien und Leuchten mit Dimm-Funktion.
Bei den Jalousien habe ich für "Auf" und "Ab" jeweils einen "Button" verwendet.
Damit kommt Alexa allerdings nicht klar.
Ich sage: Alexa….Jalousie Büro Ab.
Dann kommt die Nachfrage, dass es für Jalousie Büro mehrere Geräte gibt. Sie fragt welches sie nehmen soll.
Dann sage ich ich wieder Jalousie Büro Ab.
Dann fährt die Jalousie herunter.
Gibt es nicht eine Möglichkeit, Jalousien über die Befehle "Auf, Ab und Stop" zu realisieren?
Ich habe im Modbus Adapter schon einiges ausprobiert aber nichts passendes gefunden.
Das gleiche hätte ich auch gerne für meine dimmbaren Lampen gelöst.
so.z.B. Alexa...Schalte Esszimmerlicht auf 60%.
Hat mir hier jemand einen Tip?
Grüße
Wolle
-
Hallo zusammen,
ich wollte jetzt auch mal den Modbus-Adapter mit einem UNIPI Neuron xS10 testen. Es handelt sich um eine Serial-Connection
über einen USB/RS485 Adapter der auch im iobroker erkannt wird. Die Baudrate etc. habe ich entsprechend eingestellt, nur
leider bekomme ich beim Start des Modbus-Adapters den folgenden Fehler im Log:
modbus.0 2018-01-19 19:07:28.003 info Disconnected from slave 127.0.0.1 modbus.0 2018-01-19 19:07:27.160 warn Poll error count: 2 code: "App Timeout" modbus.0 2018-01-19 19:07:27.019 warn Poll error count: 1 code: {"err":"timeout"} modbus.0 2018-01-19 19:07:27.017 warn Error: undefined modbus.0 2018-01-19 19:07:21.951 info Connected to slave modbus.0 2018-01-19 19:07:21.411 info starting. Version 0.5.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v6.12.2
Komme leider aufgrund des "undefined" Errors nicht weiter. Kann mir vllt. jemand helfen?
Danke!
Grüße Negropo
-
Einstellungen vom Adapter Posten, Modbus Einstellungen von deinem Neuron gerät Posten.
Richtiges USB Device im Adapter ausgewählt?
Auf welcher HW und SW läuft iobroker?
Gesendet von iPhone mit Tapatalk Pro
-
Hallo,
hier die Einstellungen des Adapters:
Die Modbus-Einstellungen des Neuron sind default, also:
ID/Adress: 15
Baudrate: 19200
Bit: 8
StopBit: 1
Parity: None
Das USB-Device ist richtig. Mit mbpoll kann ich vom raspberry via ttyUSB0 auf den Neuron zugreifen.
IOBroker läuft auf RPI3. Hier die Versionen der installierten Adapter:
"hosts": [ { "version": "1.2.0", "platform": "Javascript/Node.js", "type": "linux" } ], "node": "v6.12.2", "arch": "arm", "adapters": { "admin": { "version": "2.0.7", "platform": "Javascript/Node.js" }, "discovery": { "version": "0.4.4", "platform": "Javascript/Node.js" }, "tr-064": { "version": "0.4.3", "platform": "Javascript/Node.js" }, "ping": { "version": "1.3.2", "platform": "Javascript/Node.js" }, "squeezebox": { "version": "0.2.1", "platform": "Javascript/Node.js" }, "web": { "version": "2.1.7", "platform": "Javascript/Node.js" }, "history": { "version": "1.6.3", "platform": "Javascript/Node.js" }, "javascript": { "version": "3.4.0", "platform": "Javascript/Node.js" }, "cloud": { "version": "2.0.5", "platform": "Javascript/Node.js" }, "mobile": { "version": "0.4.11", "platform": "javascript/Node.js" }, "vis": { "version": "1.0.0", "platform": "Javascript/Node.js" }, "loxone": { "version": "0.4.0", "platform": "Javascript/Node.js" }, "viessmann": { "version": "0.2.6", "platform": "Javascript/Node.js" }, "samsung": { "version": "0.2.8", "platform": "Javascript/Node.js" }, "harmony": { "version": "0.9.0", "platform": "Javascript/Node.js" }, "scenes": { "version": "0.2.7", "platform": "Javascript/Node.js" }, "modbus": { "version": "0.5.4", "platform": "Javascript/Node.js" } }, "model": "ARMv7 Processor rev 4 (v7l)", "cpus": 4,
Hoffe die Informationen helfen erstmal weitere. Vielen Dank!
-
Hast du das loggen mal auf „Debug“ gestellt ob dann mehr Infos kommen?
Was bedeutet mit „mbpoll darauf zugreifen“?
Register auslesen/schreiben ?
Mbpoll hast du aber gestoppt bevor du den Adapter gestartet hast?
Serialport ist installiert?
Gesendet von iPhone mit Tapatalk Pro
-
Hallo,
das loggen steht bereits auf Debug, da kommt leider keine weitere Information.
Ich kann mit mbpoll eine Verbindung zum Neuron herstellen und Register auslesen, das wollte ich damit sagen.
Ja, mbpoll ist gestoppt.
Nein, Serialport ist nicht installiert. Brauche ich das, wenn ich über einen USB-Adapter gehe? Ich dachte das
bräuchte ich nur bei einer Verbindung über die GPIO's?
Vielen Dank und Gruß
Negropo
-
Auch USB ist seriell
Gruß Rainer
-
Stimmt, hatte ich ganz vergessen
Wie installiere ich jetzt Serialport? Habe jetzt mal nach dieser Anleitung gearbeitet:
http://www.iobroker.net/docu/?page_id=5510&lang=de
Was muss ich sonst noch tun?
Danke und Gruß
Negropo
-
Coils sind korrigiert.