Neuer Modbus Client - Paketlänge und Stabilität

Hat se nicht alle
Beiträge: 4
Registriert: Donnerstag 22. November 2018, 16:48

Neuer Modbus Client - Paketlänge und Stabilität

Beitrag von Hat se nicht alle » Donnerstag 5. März 2020, 16:53

Ich habe die Demoversion von Realview 3.0 installiert weil ich Modbus Daten damit visualisieren wollte. Der eingebaute (?) Modbus Client friert allerdings immer das Programm ein.
Habe dann den Modbus Client vom meinem ProfiLab Expert 4.0 versucht, allerdings mit dem gleichen Ergebnis.
Habe dann den Modbus standalone Client vom ‎8. ‎November ‎2017 versucht und auch der friert ein.

Da ich vor Jahren schon mit dem Modbus Client gearbeitet habe, habe ich die alte Version vom ‎24. ‎März ‎2014 installiert und diese läuft ohne Probleme.
Eine Analyse mit Wireshark ergab, dass der neue Modbus Client ungültige Modbus Anfragen sendet.

Anbei ein Paket Trace vom neuen und vom alten Client

------------------------- gesendetes Paket des alten Modbus Client ----------------------------------------------------------------
Frame 8: 66 bytes on wire (528 bits), 66 bytes captured (528 bits) on interface \Device\NPF_{61468FDC-F84A-4772-A302-BD95D0CF5785}, id 0
Ethernet II, Src: Giga-Byt_e8:3e:b5 (50:e5:49:e8:3e:b5), Dst: Shanghai_e0:c4:dd (f0:fe:6b:e0:c4:dd)
Internet Protocol Version 4, Src: 192.168.178.20, Dst: 192.168.178.43
Transmission Control Protocol, Src Port: 51004, Dst Port: 502, Seq: 1, Ack: 1, Len: 12
Modbus/TCP
Transaction Identifier: 1024
Protocol Identifier: 0
Length: 6
Unit Identifier: 1
Modbus
.000 0011 = Function Code: Read Holding Registers (3)
Reference Number: 0
Word Count: 4
------------------------- gesendetes Paket des neuen Modbus Client ----------------------------------------------------------------
Frame 28: 320 bytes on wire (2560 bits), 320 bytes captured (2560 bits) on interface \Device\NPF_{61468FDC-F84A-4772-A302-BD95D0CF5785}, id 0
Ethernet II, Src: Giga-Byt_e8:3e:b5 (50:e5:49:e8:3e:b5), Dst: Shanghai_e0:c4:dd (f0:fe:6b:e0:c4:dd)
Internet Protocol Version 4, Src: 192.168.178.20, Dst: 192.168.178.43
Transmission Control Protocol, Src Port: 51039, Dst Port: 502, Seq: 1, Ack: 1, Len: 266
Modbus/TCP
Transaction Identifier: 512
Protocol Identifier: 0
Length: 6
Unit Identifier: 1
Modbus
.000 0011 = Function Code: Read Holding Registers (3)
Reference Number: 0
Word Count: 4
[Malformed Packet: Modbus/TCP]
[Expert Info (Error/Malformed): Malformed Packet (Exception occurred)]
[Malformed Packet (Exception occurred)]
[Severity level: Error]
[Group: Malformed]
[Malformed Packet: Modbus/TCP]

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Neuer Modbus Client funktioniert nicht Win 7/10

Beitrag von abacom » Dienstag 10. März 2020, 13:56

Erst einmal danke für die Analyse und die Meldung. Eigene Versuche bestätigen, daß vermutlich die Pakete tatsächlich länger sind als erforderlich. Alle Testslaves (Server) die ich probiert habe scheinen damit zwar kein Problem zu haben, wir werden aber natürlich zeitnah versuchen hier nachzubessern.
ABACOM support

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Neuer Modbus Client funktioniert nicht Win 7/10

Beitrag von abacom » Dienstag 10. März 2020, 16:08

fixed in Update & Demo, 10.03.2020
ABACOM support

Hat se nicht alle
Beiträge: 4
Registriert: Donnerstag 22. November 2018, 16:48

Re: Neuer Modbus Client funktioniert nicht Win 7/10

Beitrag von Hat se nicht alle » Sonntag 15. März 2020, 18:03

Danke für das schnelle Update! (Ist heute nicht mehr so üblich...)

Habe nun sowohl den standalone Modbus Client als auch den "intergierten" von ProfiLab Expert 4.0 erfolgreich gegen zwei Modbus Hosts getestet.
Das Problem scheint wirklich die Länge der Frames gewesen zu sein die nicht mit der im Modbus Protokoll angegebenen Länge überein stimmte.

Aber wie immer bleibt ein Wehmutstropfen. :oops:

Der Integrierte Modbus Client in der Demoversion von Realview 3.0 funktioniert leider immer noch nicht.
Ich habe eine "alte" Demo Version vom 20.04.2015 organisiert und nachdem diese sauber läuft. als Referenz verwendet.

Der Normalfall scheint zu sein, dass der Modbus Client, wenn er konfiguriert wurde, sofort los läuft und kontinuierlich Abfragen generiert, auch wenn der Schreiber noch nicht gestartet wurde (vermutlich um den Trigger bedienen zu können).

In der neuen Version vom 10.02.2020 startet der Modbus Client ebenfalls sofort, bleibt aber bei der ersten ausbleibenden Antwort (Response) vom Modbus Host hängen. Es sieht von außen so aus, als ob dieser Fehler nicht abgefangen wird und in einer Endlosschleife endet. Ob dieses Verhalten vom TCP/IP Stack oder von von einer höheren Protokoll Ebene verursacht wird kann ich so nicht erkennen.

Ich bin gerne bereit bei der weiteren Fehlerbehebung mitzuwirken und zu testen.

MfG

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Neuer Modbus Client funktioniert nicht Win 7/10

Beitrag von abacom » Dienstag 17. März 2020, 15:19

Ich werde mir das morgen noch einmal anschauen. Gemeint ist 10.03. statt 10.02. , nicht wahr?
ABACOM support

Hat se nicht alle
Beiträge: 4
Registriert: Donnerstag 22. November 2018, 16:48

Re: Neuer Modbus Client funktioniert nicht Win 7/10

Beitrag von Hat se nicht alle » Dienstag 17. März 2020, 21:20

Jau 10.03.

Sorry for that :oops:

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Neuer Modbus Client funktioniert nicht Win 7/10

Beitrag von abacom » Mittwoch 18. März 2020, 13:28

Ich habe eben eine neue DEMO-Version von REALVIEW hochgeladen. Ein Update der Vollversion folgt dann ggf. später.
Bitte um Rückmeldung, ob Ihr Problem damit behoben ist.
http://www.abacom-online.de/demos/realview30(demo).exe
ABACOM support

Hat se nicht alle
Beiträge: 4
Registriert: Donnerstag 22. November 2018, 16:48

Re: Neuer Modbus Client funktioniert nicht Win 7/10

Beitrag von Hat se nicht alle » Mittwoch 18. März 2020, 19:06

Volltreffer! Problem versenkt :D

Ich habe es auch gegen einen Modbus Host, der nur über einen RS232/RS422/RS485 auf WLAN Konverter erreichbar war laufen lassen.
Wenn da die Serielle nur auf 2400 Baud eingestellt ist werden vom Konverter bei schnellen Abfragefolgen TCP viele Reconnect gemacht, eine spezielle Herausforderung. Auch diese wurde von der geänderten Version des Modbus Client jetzt sauber gemeistert.

Das Teil ist an der Ecke jetzt bulletproof! :mrgreen:

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Neuer Modbus Client funktioniert nicht Win 7/10

Beitrag von abacom » Donnerstag 19. März 2020, 09:37

Danke für die Mitwirkung. Update folgt in Kürze. Thema erledigt.
ABACOM support

TesTneT
Beiträge: 11
Registriert: Dienstag 12. Mai 2020, 07:08

Re: Neuer Modbus Client - Paketlänge und Stabilität

Beitrag von TesTneT » Dienstag 12. Mai 2020, 10:53

Hallo Zusammen,

seit dem letzten Update von Profilab habe ich Probleme mit dem Modbus Client in Profilab.
Die Vermutung liegt nahe das es etwas hiermitzu tun hat.

In meinem PL-Projekt geht es konkret um den Modbus-Client zum betreiben eines Labjack-T7.
Im Anhang habe ich den Bereich isoliert.

Anfänglich funktioniert die Kommunikation gut (wenn auch langsam).
Nach etwa 500-6000 Abfragen (Je nach Geschwindigkeit und Projektgröße) bleibt jedoch der Client hängen.
-> "busy" bleibt auf einer 5
-> Es kommen keine neuen Daten an
-> Keine Fehlermeldung

Lösungsversuche:

Rechnertausch
Programmversion von Ende 2019 in der es devinitv keine Probleme gab (Allerings wieder in der aktuellen Profilab version)
Tausch Netzwerkkabel
Factory-Reset T7

Ein wechsel auf die Alten Modbus-Bauteile erweißt sich wegen der Analogen Sollwertvorgaben leider als schwierig.

Danke schon mal für jegliche Hilfe
Dateianhänge
Modbus T7.prj
(5.68 KiB) 219-mal heruntergeladen

TesTneT
Beiträge: 11
Registriert: Dienstag 12. Mai 2020, 07:08

Re: Neuer Modbus Client - Paketlänge und Stabilität

Beitrag von TesTneT » Donnerstag 14. Mai 2020, 08:30

Abacom hat mich darauf hingewiesen, dass ich hier noch die Verison von 2019/02 runterladen kann:
viewtopic.php?f=120&t=5507

Diese habe ich installiert und den Test nochmal laufen gelassen.
Die Modbus-Kommunikation mit dem T7 funktioniert wieder einwandfrei.
Mit dem 2020 Update scheint also irgendwie ein kleiner Bug mit reingekommen zu sein.

Das Verhalten habe ich auf Windows10 sowie Windows7 festgestellt.
Zuletzt geändert von TesTneT am Sonntag 24. Mai 2020, 22:08, insgesamt 1-mal geändert.

Johannes
Beiträge: 13
Registriert: Freitag 25. Dezember 2009, 17:27

Re: Neuer Modbus Client - Paketlänge und Stabilität

Beitrag von Johannes » Freitag 22. Mai 2020, 13:17

Hallo,
habe exakt das gleiche Problem.
Habe auch das alte 2019 Update ( ;-) ) wieder eingespielt, funktioniert hier auch wieder.
Nur leider können die Projekte nicht mehr gelesen werden, welche mit einer neuen Version bearbeitet wurden. Hier kommt eine Fehlermeldung und das laden bricht ab.
Bei der neuen Version habe ich das Problem, dass ein Projekt was nach Adaptierung 24 Stunden gelaufen ist auch nach Neustart, Windows-Neustart, Reset aller Komponenten keine Verbindung mehr aufbauen möchte. Im Ethernet Trace kommt auch keine Modbus-Zeile mehr sondern nur ein TCP Eintrag. Im Netstat steht "Warte" auf die 502er Verbindung.
Für mehr Infos oder Logs stehe ich gerne zur Verfügung.
Liebe Grüße,
Johannes

alex_evil
Beiträge: 6
Registriert: Donnerstag 26. April 2012, 11:34

Re: Neuer Modbus Client - Paketlänge und Stabilität

Beitrag von alex_evil » Mittwoch 27. Mai 2020, 18:05

The same problem for me too.

I solved it temporarily by dividing the application into two different applications.
Compiling the modbus server with the 2019 version and exchanging data with the application compiled with the 2020 version with DDE.
I created a laucher that starts the modbus server application first and then the other.
This slowed everything down making it almost unusable.
I think and I hope this problem will be resolved as soon as possible.

Alessandro

TesTneT
Beiträge: 11
Registriert: Dienstag 12. Mai 2020, 07:08

Re: Neuer Modbus Client - Paketlänge und Stabilität

Beitrag von TesTneT » Dienstag 23. Juni 2020, 09:13

Hallo Nochmal,

ich dachte bisher das Problem würde nur beim Modbus Client auftreten. Ich habe nun allerdings auch Probleme mit dem Modbus TCP "Write Coils" (Function 05).
Ich verwende den Baustein um die Digitalen Ausgäne einer Relaisbox zu setzen.

Etwa 4-5 Stunden funktioniert alles wunderbar. Dann zeigt der Bausteil den Error "512". (512 0x200 Illegal Memory Address in Read)
Das schreiben der Relais wird dann unglaublich langsam (2-5 sekunden, vorher 10hz problemlos).
Wenn ich versuche das Programm neuzustarten kommt eine Meldung
"Zugriffsverletzung bei Adresse 0096F0D5 in Modul "Profilab40.exe". Lesen von Adresse FC031A17"

Wenn ich dann Profilab komplett beende und das Programm neu lade funktioniert es wieder für 4-5h

Laut der Einschätzung meiner IT versucht Profilab wahrscheinlich hier die Antworten des Modbusgeräts in Register zu schreiben und verwedet immer neue Register bis es zu einem Register kommt das nicht funktioniert oder das Register läuft voll.

Ich bitte hier nochmal um zügige Unterstützung. Wir verweden je nach Anwendung verschiedene und teilweise ziemlich große Programme die mit erheblichem Zeitaufwand in PL 2019 neu geschrieben werden müssten.

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Neuer Modbus Client - Paketlänge und Stabilität

Beitrag von abacom » Mittwoch 24. Juni 2020, 13:33

@TesTneT: Bitte ein eigenes Thema eröffnen, sonst geht das hier vollkommen durcheinander!
Hier geht es um den Modbus-Client mit Labjack T7, wenn ich das richtig sehe.
ABACOM support

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Neuer Modbus Client - Paketlänge und Stabilität

Beitrag von abacom » Freitag 26. Juni 2020, 11:19

Bitte einmal das Update von heute installieren! Es gab ein Problem mit der Transaction-ID, das nun behoben ist.
ABACOM support

TesTneT
Beiträge: 11
Registriert: Dienstag 12. Mai 2020, 07:08

Re: Neuer Modbus Client - Paketlänge und Stabilität

Beitrag von TesTneT » Dienstag 7. Juli 2020, 11:15

Wir haben das Update seit einer Woche im Betrieb.
Sowohl der Modbus-Client als auch der Write-Coil laufen bisher stabil.

Vielen Dank!

Tim
Beiträge: 2
Registriert: Samstag 25. April 2020, 08:53

Re: Neuer Modbus Client - Paketlänge und Stabilität

Beitrag von Tim » Samstag 24. Oktober 2020, 15:07

Hello everyone,

With the current latest version of 28/09/2020:
I noticed that the TCP port is opened - request has done - and closed again.
The TCP port doens't stay open during multiple "polls".
For modbus TCP, this can cause port exhaustion, with communications problems as a result.
Please note that in the modbus guide the recommendation is to keep the TCP port open.
The only exception to close and reopen the port is when there are multiple communication errors or the socket has been closed or reset.
This guide can be found on :http://www.modbus.org/specs.php
With name: MODBUS Messaging on TCP/IP Implementation Guide V1.0b
This part is on page 10.

Kind regads,
Tim.

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Neuer Modbus Client - Paketlänge und Stabilität

Beitrag von abacom » Mittwoch 28. Oktober 2020, 15:53

Thanks for advice. This was not changed since first release or with the update you mentioned.
We may change this in a future version, but it is hard to realize as two request in
the request sequence list do not neccessarily do address the same device.
In your case you may find the "classic" modbus components more useful.
ABACOM support

Johannes
Beiträge: 13
Registriert: Freitag 25. Dezember 2009, 17:27

Re: Neuer Modbus Client - Paketlänge und Stabilität

Beitrag von Johannes » Montag 1. März 2021, 10:18

Hallo allseits,

der neue Modbus Client läuft wirklich sehr (viel) stabil(er) als vorher. Ich habe eine compilierte Applikation in einem kleinen Netz (nur 1 Switch) im Einsatz, läuft absolut tadellos nunmehr schon seit Wochen. In einem etwas komplexeren Netz - idente Modbus Hardware und Firmware - kommt es ab und zu (manchmal 12 Std. problemlos, dann die Probleme, löst sich erst wieder wenn App beendet wird, gewartet wird bis alle offenen Ports geschlossen sind, dann wieder startet) immer wieder zu Kommunikations-Fehlern. Wenn man mit netstat sich das ansieht, dann sind gefühlte 1000 Ports gleichzeitig offen mit "Time_Wait". (Übrigens auch auf dem gut laufenden System)

Anzumerken ist, dass sich gegenüber von früher die Applikation ab und zu auch selbst erholt und dann wieder weiter super läuft und auch im Störfall so 1 bis 2 Abfragen pro Minute sich dann doch irgendwie erfolgreich durchschlagen. ;-)

Was wesentlich auch zur Stabilität beigetragen hat war, dass ich nur mehr eine Modbus abfrage zulassen, wenn der Modbus nicht "busy" ist. Damit kommt ein Ablauf mit ca. 1,5 Hz zustande (Geschwindigkeit App: FAST). Im Einsatz ist die neue Modbus Komponente.

Hat irgendjemand Erfahrungen wo man schrauben kann ?

@Abacom: Was passiert eigentlich mit dem TCP Socket nach der Abfrage ? Wird (Sollte) der geschlossen (werden) ?

Liebe Grüße und Danke im Voraus,

Johannes

Antworten

Zurück zu „Thema Modbus“