Page 1 of 1

Fehlerhafte Werte in Prozessabbild ModBus TCP Master

Posted: 08 Jun 2021, 14:53
by Simvei001
Hallo zusammen,
ich habe ein ähnliches Problem, wie in viewtopic.php?f=10&t=1182 geschildert.

Problem:
Es stehen immer wieder falsche Werte in den Modbus TCP Master Devices im Systemabbild.

Software Setup:
Zum auslesen der Werte aus dem Systemabbild verwende ich Rust mit folgender Schnittstelle, die auf der piTest Software basiert: https://crates.io/crates/picontrol
Dies ist kein lese Fehler meiner Software beim Auslesen des Systemabbildes, sondern lässt sich auch der piTest mitverfolgen.

Setup:
a) RevPi-Connect mit 6 Modbus TCP Master Devices (Config RSC siehe Anhang),
b) RevPi-Compact mit 5 Modbus TCP Master Devices (Ein Modbus Geräte wurde mit den DIO des Compact ersetzt.)
die einzelnen Geräte haben unterschiedliche Action-Intervalle, da die Daten zu unterschiedlich kritisch sind. (Zwischen 500ms und 3000ms)
config_rsc.zip
Config.rsc für beide RevPi Varianten
(43.81 KiB) Downloaded 994 times
Die Modbus Action Status werden von meiner Software ausgelesen und Daten eines Gerätes nur dann weitergereicht, wenn kein Fehler in allen Status Registern steht.
Um die Problematik mit doppelten Adressen zu umgehen werden aktuell bei 5 der Geräten die schreibbaren Register nicht wieder zurück gelesen. (Zusätzlich reduziert das auch noch die Anzahl der Modbus Aktionen).
Einzig für das Modbus Device, des RevPi-Connect, dass in der Compact Variante nicht mehr vorhanden ist werden einzelne Coils noch gelesen und beschrieben.

Meine Software greift alle 300ms lesend auf das Systemabbild zu und je nach Programmverlauf gibt es schreibende Zugriffe.

Zu beobachten ist, dass die Fehler vermehrt dann auftreten, wenn die Kontrollsoftware schreibend auf das Systemabbild zugreift und alle Geräte tatsächlich online sind.
Je nach Programmverlauf kann es passieren, dass einige Geräte ausgeschaltet werden und daher sowieso keine Werte mehr ausgelesen werden / keine Modus Aktionen stattfinden können.
Ist dies der Fall, scheinen die Werte im Systemabbild stabiler zu sein. (Leider ist der Betrieb dann nur eingeschränkt möglich).

Der RevPi-Compact scheint insgesamt mit dem Setup etwas stabiler zu laufen, was wahrscheinlich an weniger Modbus Aktionen liegt (konnte ich aber nicht final spezifizieren).

Die einzelnen Fehlerhaften Werte konnte ich auch nicht final erklären, es scheint allerdings in einigen Fälle zu passieren, dass einzelne Bits / bytes auf 0 (default) zurück fallen.
Dies scheint aber, wie auch im referenzierten Post beschrieben nur sehr kurzzeitig der Fall zu sein, sodass die fehlerhaften Werte nur ein, maximal zwei Abfrage-Zyklen an das Systemabbild anliegen.
Dies reicht bei den kritischen Werte allerdings schon aus, um den Betrieb signifikant zu stören. (Gerade auch bei Schreib-Aktionen an die Modbus-Geräte.)
Dies führt dann im weiteren Verlauf dazu, dass z.B. int_32 Werte fehlerhaft als positiv statt negativ interpretiert werden. Außerdem fallen die Coil-Werte kurzzeitig auf 0 ab, auch wenn ein stabiles 1 Signal an der Modbus Komponente anliegen sollte.

Da es sich insgesamt um 4 verschiedene Hardware Geräte bei den 6 Modbus Slaves handelt, der Fehler aber über alle hinweg auftritt, scheint auch eine Fehlerhafte Kommunikation mit einer Hardware-Komponente sehr unwahrscheinlich.

Fragen:
  • Gibt es eine Obergranze an Modbus Actionen, die von dem RevPi (korrekt) verarbeitet werden kann, mit zeitlichen Limits?
  • Gibt es eine gewisse Puffergröße, die zu Byte-/Bit-Fehlern für die Lese-/Schreibzugriffe führen kann?
  • Kann es noch weitere Punkte geben, die das Lesen & Schreiben des Systemabbildes beeinflussen?
Für weitere Informationen und Feedback wäre ich sehr dankbar.
Falls weitere Log-Files benötigt werden, kann ich versuche diese Zeitnah zur Verfügung zu stellen / zu generieren.

Mit freundlichen Grüßen
Simon

Re: Fehlerhafte Werte in Prozessabbild ModBus TCP Master

Posted: 10 Jul 2021, 08:16
by crismancich
Hallo Simon,

vielen Dank für den so ausführlichen Post. Hervorragend geschildert.

Wir haben soetwas bereits einmal gehört, konnten es aber bisher nicht nachvollziehen.
Daher werden wir dafür einen Testaufbau machen, um das nachzuvollziehen.
Magst du uns auch deinen rust Code zur Verfügung stellen? Bitte an support@kunbus.com.

Viele Grüße,
Boris

Re: Fehlerhafte Werte in Prozessabbild ModBus TCP Master

Posted: 14 Jul 2021, 11:26
by KTB-Vo2345
Hi Chrismancich,

Danke für deinen Reply und die Nachfrage nach dem Source Code.
Konntet ihr schon den Fehler weiter eingrenzen und das Problem nachstellen?
So wie es aussieht scheint dies nicht der einzige Beitrag zum Thema "Fehlerhafte Modbuskommunikation" zu sein.

Ein ähnliches Fehlerbild wurde auch bereits hier skizziert:
viewtopic.php?f=6&t=2939

Wir haben den TCP Traffic hinter dem pimodbus-master.service mitgeschnitten und nach relevanten Paketen gefiltert.
Es wurden Modbusdaten gesendet, die in keinem Fall von unserer Software kommen können.

Datenmitschnitt:
Jul 13, 2021 08:43:42.845297637 CEST 15,0,65535,64411
Jul 13, 2021 08:43:43.845301541 CEST 15,0,65535,64411
Jul 13, 2021 08:43:44.845404038 CEST 0,0,0,0
Jul 13, 2021 08:43:45.845288514 CEST 6,0,65535,64411
Jul 13, 2021 08:43:46.845285647 CEST 7,0,65535,64411
Jul 13, 2021 08:43:47.845283768 CEST 15,0,65535,64411

Die Nullen aus unserer Sicht nicht aus dem Systemabbild und nicht von unserer Software.

Auch das Systemabbild wurde permanent mitgeschnitten und entsprach absolut dem, was wir geschrieben und gelesen haben.
Es gab keinen Kernel Log, der einen Neustart des pimobus-master.services markiert hätte - oder ähnliche logbare Ausfälle.

Viele Grüße
Kai
KTB-Vo2345

Re: Fehlerhafte Werte in Prozessabbild ModBus TCP Master

Posted: 15 Jul 2021, 19:41
by a.alvsantos
Hello Boris,
As raised by @KTB-Vo2345 we have also experienced similar problems with RevPi Modbus:
    Issue 1. We have two virtual devices which addresses get swap, i.e. "Device 1" suddenly starts to read registers of "Device 2" while "Device 2" keeps with the same behaviour. So far it happen 3 times but we could not setup a replication as we do not understand what is triggering such behaviour on RevPi.
      Issue 2. Some relays (Modbus equipment) change state for a very short period without any reason. We analyse all our logs and there is no change in our values sent by our system.

      Can you please advise.
      Thank you,
      Alex

      Re: Fehlerhafte Werte in Prozessabbild ModBus TCP Master

      Posted: 06 Oct 2021, 17:30
      by dirk
      Hallo zusammen, bitte entschuldigt die lange Wartezeit. Wir haben einen Fix hierfür bereitgestellt siehe hier:
      https://revolutionpi.de/forum/viewtopic ... =10#p10950