Forum: Mikrocontroller und Digitale Elektronik Modbus Ascii - Vorteil gegenüber Modbus RTU?


von Student (Gast)


Lesenswert?

Hallo,

Hat der Modbus Ascii irgendwelche Vorteile gegenüber dem Modbus RTU?

So wie ich das sehe verringert sich durch Modbus Ascii, im Vergleich mit 
Modbus RTU, der Datendurchsatz fast um die Hälfte.
Und weil man eine LRC Fehlerüberprüfung, statt eine CRC 
Fehlerüberprüfung verwendet verringert sich auch noch die 
Hammingdistanz.
Aber es werden grundsätzlich genau die gleichen Informationen gesendet.

Aus welchem Grund gibt es Modbus Ascii?

von Reinhard Kern (Gast)


Lesenswert?

Student schrieb:
> Hallo,
>
> Hat der Modbus Ascii irgendwelche Vorteile gegenüber dem Modbus RTU?
>
> So wie ich das sehe verringert sich durch Modbus Ascii, im Vergleich mit
> Modbus RTU, der Datendurchsatz fast um die Hälfte.
> Und weil man eine LRC Fehlerüberprüfung, statt eine CRC
> Fehlerüberprüfung verwendet verringert sich auch noch die
> Hammingdistanz.
> Aber es werden grundsätzlich genau die gleichen Informationen gesendet.
>
> Aus welchem Grund gibt es Modbus Ascii?

Kurze Antwort: viel leichtere Fehlersuche.

(Die NSA freut sich auch, wenn sie mal die Industriebusse auch alle im 
Zugriff hat, kann nicht mehr lang dauern...)

Gruss Reinhard

von Karl H. (kbuchegg)


Lesenswert?

Erkennung des Sendebeginns, ohne dass man auf Timing Sachen Rücksicht 
nehmen muss.

Das große Problem bei allen reinen binär-Übertragungen ist es immer die 
Nutzdaten von den Steuerdaten zu trennen. Kommen in den Nutzdaten alle 
Bytewerte vor, dann gibt es keine dezidierten Bytewerte, die 
Steuerinformation übermitteln können. Man muss dann eben auf andere 
Dinge, wie zb Timeouts zurückgreifen, um dem Gegenüber mitzuteilen: Du 
ich fang jetzt mal mit einer Nachricht an.

Und genau das vermeidet man mit einer ASCII Übertragung recht 
wirkungsvoll. Von den 256 möglichen Byte-Werten, sind 30 Werte so, dass 
sie kein darstellbares Zeichen kodieren (und 127 sind überhaupt nicht 
definiert) und die können somit eindeutig in den Datenstrom gestellt 
werden. Das Gegenüber fischt sich diese Byte-Werte raus und 'weiß' 
damit: Hier beginnt der nächste Datensatz.

: Bearbeitet durch User
von Student (Gast)


Lesenswert?

Danke für die schnelle Hilfe.

Ich dachte bei Modbus Ascii werden pro UART-Frame nur 7 Datenbits 
übertragen. Also 128 potentielle Zeichen. Von den damit darstellbaren 
Acsii Zeichen verwendet man aber nur 0 bis 9, A - F, :(Startbyte), 
CR(erstes Stopbyte) und LF(zweite Stopbyte). Also 19 Zeichen.
Stimmt das?

Grüße
Max

von Michael A. (micha54)


Lesenswert?

Hallo,

ja, das ist richtig, wobei das 8. bit ein Parity sein soll.

Der Vorteil ist, daß ein Microcontroller das Parity in SW berechnen und 
senden kann falls ihm die HW fehlt.

Wer schon mal im Terminalfenster direkt mit so einem Gerät kommuniziert 
hat kennt den Vorteil des Ascii Formats.

Gruß,
Michael

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
Noch kein Account? Hier anmelden.