Modbus RTU, aber TTL statt RS-485

OP #7768391
Lesenswert?
• ▲
▼

Hallo zusammen!

Eine Frage an die Experten hier im Forum:

Kann Modbus-RTU mit TTL (anstatt RS-485) busfähig sein?

Kurz zum Hintergrund meiner Frage: Ich betreibe zuhause eine kleine SPS und habe ein paar Modbus-RTU-Teilnehmer über RS-485 angebunden die ich zyklisch auslese.

Jetzt wollte ich noch Teilnehmer ergänzen und hab mir (erstmal) einen Energiezähler (günstigst aus Chinaland) bestellt, hab aber die Angabe TTL und das fehlen von RS-485 gewissenhaft ignoriert...

Dass das nicht direkt an RS-485 angeschlossen werden kann (bzw. sollte) ist klar! Mich würde aber jetzt grundsätzlich interessieren, ob Modbus RTU über TTL auch busfähig sein kann. Oder benötigt man für jeden Teilnehmer einen eigenen Umsetzer (z.B. auf USB) ?

Rein vom Protokoll her müsste es doch funktionieren/vorgesehen sein? Oder hängt es auch an der RS-485-Schnittstelle allgemein?

Dank euch schon mal für Infos!

Gruß Christian

#7768394
Lesenswert?
• ▲
▼

Christian L. schrieb:

Kann Modbus-RTU mit TTL (anstatt RS-485) busfähig sein?

Im Prinzip ja, wenn man Open-Collector- bzw. Open-Drain-Ausgänge für die Tx-Leitungen aller beteiligten UARTs verwendet, und einen passend dimensionierten Pullup-Widerstand nutzt.

Wenn man ein Steuersignal zur Senderumschaltung eines Rs485-Treiberbausteins hat, kann man auch für jedes Gerät einen Tristate-Treiber verwenden, aber auf einen Pullup kann man trotzdem nicht verzichten, damit die UARTs auf ihrem Rx-Eingang alle einen definierten Pegel sehen.

Wenn man so etwas macht, sollte man allerdings nicht die Baudrate auf den maximalmöglichen Wert ausreizen, und dran denken, daß das ganze --anders als Rs485-- nicht störungssicher ist, also nur sehr kurze Verbindungsleitungen und eine gute Masseführung nutzen.

#7768453
Lesenswert?
• ▲
▼

Christian L. schrieb:

Kann Modbus-RTU mit TTL (anstatt RS-485) busfähig sein?

Es gibt zwei Lösungswege:

  1. Du kannst einen RS485-Transceiver mit automatischer Richtungsumschaltung nehmen. Sowas z.B.: https://www.analog.com/media/en/technical-documentation/data-sheets/max13487e-max13488e.pdf

  2. Du nimmst einen kleine Mikrocontroller mit zwei UARTs, wobei der eine direkt am Stromzähler hängt und der andere über RS485 am Bus hängt. Der Mikrocontroller sollte dann das MODBUS-Protokoll kennen und den RS485-Transceiver entsprechend steuern können. Als Mikrocontroller kannst Du entweder einen PIC16F18124 oder einen Attiny824 nehmen. Beide gibts im 14-Pin SOIC und haben zwei Hardware-UARTs. Den PIC gibts auch als DIL für Lochraster.

Beide Varianten machen aus denem TTL-UART Stromzähler einen vollwertigen RS485-Modbus-Stromzähler ohne jegliche Einschänkungen bezüglich Reichweite etc. Methode 2 funktioniert garantiert immer, Methode 1 ist einfacher, müsste aber ausprobiert werden, ob die Automatik so funktioniert wie sie soll.

fchk

#7768471
Lesenswert?
• ▲
▼
#7768570
Lesenswert?
• ▲
▼

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.