1zu160 - Forum



Anzeige:
MDVR - Modellbahn Digital Versand Radtke

THEMA: Roco R Bus

THEMA: Roco R Bus
Startbeitrag
Peter W. - 22.07.24 17:05
Hallo,

soweit ich bisher in Erfahrung bringen konnte, handelt es sich um eine RS485 im Sinne eines Xpressnet, wo die Rückmelder im Master-Slave Verfahren abgefragt werden.

Leider konnte ich noch keine öffentliche Protokoll Beschreibung finden. Ein Indiz für die Header Bytes findet sich in der Beschreibung des Roco Xpressnet-LAN.

Aber wie sind die Anfrage Befehle und die Antworten auf Seite des R-Bus tatsächlich aufgebaut? Ich würde das gerne mit einem Arduino nachbilden.

Grüße, Peter W



Zitat - Antwort-Nr.: | Name:


R-Bus is a modification of the XpressNet Protocol used by Roco, with commands specific to Roco devices. Allows 20 modules with 8 inputs (160 in total) divided into two groups of 10.

Essentially the same as XpressNet, using 1 start bit, 9 data bits, 1 stop bit and no parity, at 62.5 kilobits/second.


Mehr hab ich auch nicht. Welche Seite soll der Arduino denn machen? Teure Rückmelder ersetzen?

Ich werde so langsam allergisch gegen alle nicht  oder pseudo-offenen Protokolle.

Grüße,
Harald.
Hallo,

Zitat - Antwort-Nr.: | Name:

Teure Rückmelder ersetzen?


Ja genau das.
Aus dem Text von Fucik bin ich noch schlau geworden. Da muss ich mir den tschechischen Text übersetzen, sein ČEnglisch Geschwafel ist etwas mühsam.
Außerdem beschreibt er Rocomotion, das interessiert mich nicht, sondern die z21/Z21.

Grüße, W

Rocomotion ist u. a. die alte PC-Software, aus Verstärkerbox Zeiten...........

Die z/Z21 dürfte da vermutlich Rückwärts kompatibel sein?!?!?!

Gruß, Micha
Hallo Peter,

meine persönliche Meinung:
Wenn ich finanzielle Ersparnis gegen Zeitaufwand aufrechne, würde ich lieber kaufen. Die Entwicklung dürfte eher mehrere 40h-Wochen als 8h-Tage benötigen.
Wenn für Dich der Ardunio ein weiteres Hobby ist, dann mag es anders aussehen.

Viele Grüße, Joni
Hallo,

der Zeitaufwand ist mir das für den Verein wert, einen Gleisbelegtmelder mit Optokoppler und R-Bus auf eigene Beine gestellt zu bekommen.

Grüße, Peter W
Nach einem Tipp per PM habe ich dieses Projekt bei GitHub gefunden, wo auch die Beschreibung für das alte Roco Interface eingecheckt ist.

Das kann ich mit Jindra's Informationen und dem LAN Protokoll abgleichen.

Grüße, Peter W
"dieses"? :)
Kanns sein dass da noch ein Link fehlt?
Hallo Vincent,

In der Tat, der Link hat sich heimlich zwischen den Zeilen versteckt.
https://github.com/Digital-MoBa/XpressNet

Grüße, Peter W
Wenn ich das richtig verstehe, lautet die Anfrage
1DD*) F#**) 00 <DATA1> <DATA2> .. <Prüfsumme>

*) Call Bytes haben Bit 9 gesetzt
**) das low Nibble enthält die Anzahl der Zeichen, also die Anzahl der abzufragenden Module + 1 - das Infobyte 0x00 (00=normales Feedback, lt. Tabelle in roconet-v1.6.1.pdf) wird mitgerechnet. Ob hier der Gruppenindex drin steht?

Das Rückmeldemodul belegt an seiner Postion den Bus und sendet sein Byte in den Stream. Bei Timeout sendet die Zentrale ein Nullbyte 0x00.

Die Berechnung der Prüfsumme habe ich nicht verstanden, weder in der englischen, noch der übersetzten tschechischen Beschreibung. Der Werte dieses Byte kann den Rückmeldern egal sein.

Grüße, Peter W.

So, das RS 485 Shield für den Arduino ist bestellt. Idealerweise werde ich das mit einem Leonardo verheiraten, dann habe ich praktisch schon ein USB Interface für den X-Bus und den R-Bus.

In der Z21 Maintenance App gibt es auch einen praktischen Rückmelde-Monitor, wo alle 20 möglichen Melder (= 160 Bits) in einem Block grafisch dargestellt werden.

Programmatisch kann ich ja alle 20 Bytes vom selben Gerät mit einer aufsteigenden Zahl beantworten, um ein charakteristisches Bitmuster in der Anzeige zu erhalten.

Ich habe keine Einstellung zur Konfiguration der Anzahl der Melder gefunden. Somit würde ich als Header 0xFB (11 Byte) erwarten.

To be continued...

Grüße, Peter W

Spannendes Projekt! Würde mich freuen wenn daraus eine quelloffene Bibliothek entsteht.
Einer der Knackpunkte bei der Kommunikation mit dem X-Bus und dem R-Bus ist die Übertragung mit 9 Bit.
Obwohl die AVR Hardware das durchaus unterstützt, ist es im Arduino Framework nicht vorgesehen.

Edith hat den Link zu github gelöscht, da der Code unbrauchbar ist (compiliert nicht)



Nur registrierte und eingeloggte User können Antworten schreiben.
Einloggen ->

Noch nicht registriert? Hier können Sie Ihren kostenlosen Account anlegen: Neuer N-Liste Account





Zum Seitenanfang

© by 1zu160.net;