mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Modbus Zeiten und Zeichen


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Gatsby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Gatsby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja danke so mach ichs

Autor: MrModbus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.