NEWS
Modbus adapter
-
Ich glaube mittlerweile, dass es am modbus Adapter liegt.
Hatte eben zum testen eine dritte Instanz installiert. Danach hießen die Nummern von der ersten Instanz komplett anders. Aber sie funktionieren trotzdem.
Alles sehr komisch. `
Was heißt die „die Nummern hießen anders“ !?
Die beiden WR, sind die beide von SMA?
Kannst du für beide Modbus Adapter mal den Loglevel auf „Debug“ stellen und nach dem Starten der einzelnen Instanzen das logfile posten. Vor allem von dem der nicht funktioniert!?
Gesendet von iPad mit Tapatalk Pro `
Aus 30775 wurde auf einmal 60776.
Siehe mein Screenshot eine Seite zuvor.
Ja, es sind beides SMA WR. STP5000 und SB1.5
Hier der Log
3710_log_debug.jpg -
Steht der Loglevel bei den Instanzen wirklich auf „Debug“ !?
Also hier:
Kannst du die funktionierende Instanz mal stoppen, die nicht funktionierende starten und das komplette logfile vom Adapter als .txt file in code tags posten?
-
Vergleich mal bitte die Daten mit meinen. Ich habe eine fast identische Konfiguration (SMA 7000TL-20 und SB2.5)
-
modbus.2 2017-11-05 12:19:33.869 info Connected to slave 192.168.0.44 modbus.2 2017-11-05 12:19:33.317 info starting. Version 0.5.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v6.11.5 modbus.2 2017-11-05 12:19:33.224 debug statesDB connected modbus.2 2017-11-05 12:19:33.064 debug objectDB connected host.raspberrypi 2017-11-05 12:19:29.858 info instance system.adapter.modbus.2 started with pid 3160 host.raspberrypi 2017-11-05 12:19:29.830 info object change system.adapter.modbus.2
Bei modbus.0 steht dann die IP von dem ersten WR und Port 502. Sonst alle Einstellungen identisch
3710_adapter_einstellung.jpg -
modbus.2 2017-11-05 12:19:33.869 info Connected to slave 192.168.0.44 modbus.2 2017-11-05 12:19:33.317 info starting. Version 0.5.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v6.11.5 modbus.2 2017-11-05 12:19:33.224 debug statesDB connected modbus.2 2017-11-05 12:19:33.064 debug objectDB connected host.raspberrypi 2017-11-05 12:19:29.858 info instance system.adapter.modbus.2 started with pid 3160 host.raspberrypi 2017-11-05 12:19:29.830 info object change system.adapter.modbus.2
Bei modbus.0 steht dann die IP von dem ersten WR und Port 502. Sonst alle Einstellungen identisch `
Haken bei Aliases sollte raus. Siehe auch Screenshot von Marco.
-
modbus.2 2017-11-05 12:19:33.869 info Connected to slave 192.168.0.44 modbus.2 2017-11-05 12:19:33.317 info starting. Version 0.5.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v6.11.5 modbus.2 2017-11-05 12:19:33.224 debug statesDB connected modbus.2 2017-11-05 12:19:33.064 debug objectDB connected host.raspberrypi 2017-11-05 12:19:29.858 info instance system.adapter.modbus.2 started with pid 3160 host.raspberrypi 2017-11-05 12:19:29.830 info object change system.adapter.modbus.2
Bei modbus.0 steht dann die IP von dem ersten WR und Port 502. Sonst alle Einstellungen identisch `
Haken bei Aliases sollte raus. Siehe auch Screenshot von Marco. `
Haken ist jetzt bei beiden Instanzen raus. Ergebnis unverändert. Auch nach kompletten Neustart des RPI.
-
Das heißt du hast auf dem Reiter „Objecte“ noch immer kein Eintrag „Modbus.2“ !?
Hast du da mal refresh gemacht?
-
Das heißt du hast auf dem Reiter „Objecte“ noch immer kein Eintrag „Modbus.2“ !?
Hast du da mal refresh gemacht? `
Doch klar. Das Objekt ist da.
Die Werte werden aber nicht gefüllt.
3710_objecte.jpg -
Wenn du den Haken bei Aliases eben entfernt hast, hast du danach nochmal die Register kontrolliert?
Ich meine die ändern sich wieder auf falsche Werte und müssen korrigiert werden.
Gesendet von iPhone mit Tapatalk Pro
-
Wenn du den Haken bei Aliases eben entfernt hast, hast du danach nochmal die Register kontrolliert?
Ich meine die ändern sich wieder auf falsche Werte und müssen korrigiert werden.
Gesendet von iPhone mit Tapatalk Pro `
Jippie, es funktioniert.
Registernummern nach dem enfernen der Haken korrigiert und schon klappt es.
DANKE
-
Sehr schön!
Gesendet von iPhone mit Tapatalk Pro
-
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