NEWS
Modbus nur niedrigste ID funktioniert
-
@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
-
-
-
@cdn sagte in Modbus nur niedrigste ID funktioniert:
Dazwischen hängt ein Waveshare Konverter
das ist dieser auch
https://www.welectron.com/Waveshare-17286-USB-TO-RS485ohne tcp
und an den hab ich die ganze Zeit gedacht
-
-
@cdn also ein weiterer Layer für Probleme