Forum: Mikrocontroller und Digitale Elektronik Modbus RTU, aber TTL statt RS-485


von Christian L. (chrislo1976)


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

von Harald K. (kirnbichler)


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.

von Frank K. (fchk)


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

von Jörg K. (joergk)


Lesenswert?


von Rainer W. (rawi)


Lesenswert?


von Christian L. (chrislo1976)


Lesenswert?

Hallo zusammen!


Klasse, danke euch für die Infos.
Danke auch für den konkreten Link; ist schon bestellt...

Werd am WE ein wenig damit rumspielen.

Gruß
Christian

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.