Hallo Ihr, Ich hoffe ihr könnt mir weiterhelfen, Im Modbus Protokoll RTU muss 3,5 Zeichen gewartet werden bis ein Paket gesendet werden darf. Doch wie lange ist diese Zeit wirklich? Was ist mit Zeichen gemeint? Ist hier ein Zeichen ein Byte, also eine Pausenzeit die bei einer bestimmten Baudrate für ein Byte benötigt wird, Oder kommt dies von der Baudrate Zeichen pro Sekunde, also bei 9600Baud wären das 9,6 zeichen pro 1ms macht dann bei 3,5 Zeichen 0,364ms???? Fall der zweite Fall gemeint ist also 0,364ms wird das schwierig festzustellen, da ich den UART eines atmegas verwende und da kann man nur abrufen per interrupt dass ein Byte fertig gesendet wurde. oder wie macht ihr das? Viele Grüße und Danke Matthias
Hallo Mathias, mit "Zeichen" ist ein UART frame (= 1byte = Startbit, 8bit Daten, 1/2 Stopbit) gemeint. Bei 9,6kBaud sind das ca. 1,115 msek, d.h. das Modbus Telegramm wird bei einer minimalen Pause von 3,5 * 1,115 msek = 4,01 msek als vollständig empfangen gewertet. Viele Grüße Gatsby
Vielen Dank für deine Antwort, das beruhigt mich ein wenig :) Es gibt unterschiedliche Beschreibungen und zwar: Vor einem ModbusPaket müssen 3,5 Zeichen "ruhe" sein und danach 1,5 Zeichen. Manche schreiben auch danach 3,5 zeichen, was ist nun richtig? D.h. nach dem eigenen Senden kann schon nach 1,5 Zeichen wieder auf Empfang gegangen werden?? Grüße Matthias
Hallo Matthias, du bringst da etwas durcheinander. Die Daten eines Modbus Telegramms müssen aufeinander folgend gesendet werden. Die maximale Pause zwischen den einzelnen Daten (UART frames) darf nicht länger als 1,5 Zeichen sein. D.h. bei 9,6 kBaud muss die Zeit zwischen den einzelnen Daten des Telegramms kleiner als 1,5 * 1,115 msek = 1,67 msek sein. Sollte diese Pausenzeit überschritten werden, dann wird dieses Telegramm als ungültig gewertet. In einigen Modbus Dokumentationen findet man tatsächlich am Anfang des Telegramms eine Pausenzeit von 3,5 Zeichen und am Ende eine Pausenzeit von 3,5 Zeichen. Es ist aber gar nicht so kompliziert. Sende das Modbus Telegramm einfach hintereinander weg. Achte darauf, dass die Pause zwischen den einzelnen Zeichen < 1,5 Zeichen ist und warte dann >= 4 Zeichen bis du das nächste Telegramm abschickst. Fertig. Gruss Gatsby
Für das Senden des Datenstrom sind die 3,5 Zeichen pausen ebenso wichtig, wie für die Prüfung des Empfangstroms! Sendestrom -> min Wartezeit > 3,5 Zeichen Empfang -> 3,5 Zeichen min Pausenzeit zwischen Telegrammen, sonst muss das Telegramm verworfen werden
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.