NEWS
Modbus nur niedrigste ID funktioniert
-
Hallo zusammen,
ich habe folgendes Problem bei dem Modbus Adapter:
Ich habe hier mehrere Geräte die meine Reed Kontakte überprüfen angeschlossen. Nun ist es so, dass nur das Gerät mit der niedrigsten ID reibungslos funktioniert. Ich habe die Verkabelung schon komplett überprüft. Es ist vollkommen egal in welcher Reihenfolge die Geräte im Bus angeschlossen sind. Es hängt wirklich nur von der ID ab. Die Geräte mit der nächsthöheren ID funktionieren dann nur noch sporadisch bzw. aktualisieren den Zustand erst nach 5-10 Minuten.Die Einstellungen sehen so aus:
Jemand eine Idee?
-
@cdn sagte in Modbus nur niedrigste ID funktioniert:
Jemand eine Idee?
Du weist schon , das diese Einstellungen in Millisekunden sind !?
Da bleibt ja keine Zeit für den Adapter es auszuwerten !
.Teste mal damit :
-
@glasfaser das Problem ist, da hängen auch Bewegungsmelder dran, wo ich die Daten asap benötige um das Licht anzumachen
-
@cdn Da ist die Frage, wie lang die Telegramme sind, und was für eine Baudrate der Modbus fährt.
Bei einer maximalen Telegrammlänge von gut 200 Zeichen und 9600 Baud dauert Worst case die Übertragung EINES Telegramms über 200 ms ...
Da muss man dann wirklich schauen, wie lang die Telegramme der individuellen Geräte sind, und wie hoch die Baudrate ist ...
-
@martinp
Also ich frage nur den State ab. Das ist bei den Bewegungsmeldern (14 stück) jeweils ein holding register.
Bei den anderen Geräten sind es maximal 6 holding register.
Die Antwort ist jeweils 0 oder 1. -
@cdn Ich kenne mich nicht mit den Auswirkungen der Parameter ab, jedenfalls wären 20 Antwort-Telegramme plus die 20 jeweiligen Anforderungstelegramme bei 100 ms Intervall 2,5 ms pro Telegramm Das sind bei 9600 Baud nicht einmal 3 Zeichen pro Telegramm ... Daneben muss beim Modbus wohl eine gewisse Zeit zwischen den Telegrammen "Ruhe" auf dem Bus sein ...
Wenn "Datenabfrageintervall" aber pro Datenpunkt zählt, also für 20 Datenpunkte eine Abfragerunde 20 x 100 ms dauert, wäre komfortabel Platz
-
@martinp
Joa und wie bekommen wir das raus? Im Manual steht dazu nichts. -
@Glasfaser Ich habe es nun nochmal ausgiebig getestet. Selbst wenn ich dem ganzen eine Minute Zeit gebe: Die Geräte mit höherer ID werden gar nicht ausgelesen. Immer nur die mit der niedrigsten ID.
-
@cdn Habe leider keine Modbus Geräte und auch keine Erfahrung mit solchen.
Ich würde mal probieren, ob es von der Anzahl der Geräte auf dem Bus abhängt, oder von der Geräte ID.
Wenn man das Gerät mit der niedrigsten ID abzieht - funktioniert dann das Gerät mit der nächsthöheren ID?
Wenn man sich beim Abziehen weiter zu dem Gerät mit der höchsten ID vorarbeitet? Ist dann auch irgendwann das Gerät mit der höchsten ID erreichbar?
Um was für Modbus Geräte geht es eigentlich (Hersteller, Typ)
-
@martinp Das habe ich bereits getestet. Wenn ich das mit der niedrigsten ID abziehe, dann geht das nächste dann ohne Probleme.
Das sind noname Geräte. Ich habe leider ansonsten keine guten Geräte gefunden mit Modbus RTU die meine Reedkontakte überwachen können.Anbei einmal die Anleitung.
R4DIF08 8-channel digital input module Manual.docx -
@cdn sagte in Modbus nur niedrigste ID funktioniert:
Ich habe leider ansonsten keine guten Geräte gefunden mit Modbus RTU die meine Reedkontakte überwachen können.
sorry!
Aber so gut ist das ja nicht, wenn es nicht funktioniertSCNR
-
@cdn
Wäre es nicht möglich die relevanten Modbus Teilnehmer auf eine andere / weitere Modbusschnittstelle/USB zu verlegen / aufzuteilen , so das du 2 oder 3 Modbus Instanzen hast -
ich halte auch das Datenabfrageintervall für den Knackpunkt.
In dem Abstand werden Alle Anfragen auf einmal abgeschickt.
Die Antworten müssen sich dann die Bandbreite des Busses teilen.Da kommt wahrscheinlich nicht alles durch, bevor der Bus durch die nächste Abfrage zurückgesetzt wird.
Man sollte zumindest einmal mit großzügig verlängertem Intervall Testen, auch wenn alles asap und sofort sein muss!
asap enthält übrigens "practicable". und bedeutet nicht sofort
-
@glasfaser Das Problem ist, dann bräuchte ich 6 weitere Modbus Instanzen. Hatte jetzt eigentlich nicht so viel Lust, noch 6x Modbus RTU zu Modbus TCP Konverter zu kaufen. Die sind bei mir dazwischengeschaltet.
-
@homoran said in Modbus nur niedrigste ID funktioniert:
nlich nicht alles durch, bevor der Bus durch die nächste Abfrage zurückgesetzt wird.
Das habe ich bereits gemacht. Ich habe den Abfrageintervall auf mehrere Minuten gesetzt. Das hat nicht geholfen.
-
@cdn Dann gehen mir die Ideen aus.
Einzig die Vergabe der IDs könnte dann noch schief laufen, so dass nur due niedrigste ID angesprochen wird -
@homoran Wie genau meinst du das?
-
@cdn sagte in Modbus nur niedrigste ID funktioniert:
Modbus RTU zu Modbus TCP Konverter zu kaufen.
also nicht nur modbus RTU auf USB???
-
@homoran Nein. Dazwischen hängt ein Waveshare Konverter
-