Eigenbau DCC - Zentrale mit Rocnet verbinden

Eigenbau DCC - Zentrale mit Rocnet verbinden

Postby Hobbyprog » 07.04.2018, 20:27

Hallo
ich bin neu im Forum, und hoffe das ich ein wenig Unterstützung bekomme
und vieleicht auch mal Hilfestellung geben kann.

Ich habe auf der Arduino – Hardware eine DCC Zentrale, Bremsdecoder und
Weichendecoder für Servos programmiert. Ich programmiere mit Atmel Studio Assembler.
Eine einfache Benutzeroberfläche habe ich mit Delphi 7 (Pascal) erstellt.

Jetzt bin ich auf Rocrail gestoßen und finde das Programm sehr gut und ich erspare
mir viel Arbeit, ein eigenes Gleisstellpult zu programmieren.

Leider habe ich jetzt ein Problem mit der Schnittstelle zwischen meinem Programm
und Rocrail.
Ich verwende zur zeit, die Einstellung > Zentrale > Rocnet als Serial Com1 38400 Baud.
alles andere Funktioniert nicht.

Über eine virtuelle Portbrücke Com1 > Com2 kann ich die Weichen und Lokbefehle von Rocrail
in meinen Delphi – Programm empfangen, diese werden dann im meinem passenden
Format an die DCC – Zentrale über Com3 –USB weitergeleitet.
Beispiel für ein empfangenen Befehl von Rocnet für Weiche 1 > 128;0;0;0;1;1;9;4;1;0;0;1;
die Porteistellungen werden ignoriert, obwohl ich NMRA-DCC Protokoll eingestellt habe.
die 128 soll ja eigentlich die Netz ID sein, wo her kommt die?
Die letzte Zahl ist die Weichenadresse, hier ist bei 255 Schluss, 256 beginnt wieder mit
0 ein Übertrag auf das H Byte findet nicht statt.

Eigentlich bin ich mit der Lösung zufrieden, habe nur ein kleinen Testaufbau.

Aber wie immer will man dann doch mehr, und jetzt habe ich ein Problem.
Ich weis nicht wie ich Daten zurück an Rocrail senden kann. Zum Beispiel die
Besetztmelder oder Zugnummern. Ich denke das ich ein Datenpaket senden
muss, aber was muss ich in Rocrail einstellen. Das eigentliche Senden über Com2 ist nicht das Problem.

Ich hätte auch die Möglichkeit statt den Comport ein TCP oder UDP Server oder Slave in meinem
Delphi - Programm einzurichten. Ich bin für jede Hilfestellung dankbar.

Ich werde später wenn alles läuft, mein Projekt wenn gewünscht vorstellen.
Die ganze Hardware besteht aus ein Arduino Nano und eine H Brücke SBC-MotoDriver2
der ganze Spaß kostet weniger als 5€.(aus China) auf einer zusätzlichen Lochrasterplatine habe ich
zwei Operationsverstärker und Widerstände für weniger als 3€ verbaut um CV Adressen auszulesen
und ein Amperemonitor zu realisieren. Als Stromversorgung für die H Brücke (Booster) verwende ich
ein 12 oder 18 Volt Schaltnetzteil, die Zentrale (Arduino Nano) wird über den USB Anschluss versorgt.

Schöne Grüße
Martin
Hobbyprog
 

Re: Eigenbau DCC - Zentrale mit Rocnet verbinden

Postby rjversluis » 07.04.2018, 21:15

Hi Martin,

DCC++ wird schon unterstützt:
http://wiki.rocrail.net/doku.php?id=dccpp:dccpp-en
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBus - CAN-GCA ] - [ 0: RocNetNode - GCA-Pi ]
rjversluis
Site Admin
 

Re: Eigenbau DCC - Zentrale mit Rocnet verbinden

Postby Hobbyprog » 07.04.2018, 21:49

Hallo
danke für den Hinweis.
Leider hilft mir das nicht weiter, da ich ja mein
eigenes System programmiere. Die Arduinolösung
baut ja auf vorgefertigte Bausteine auf.
Ich möchte aber meine DCC Zentrale selber Programmieren,
das ist mein Hobby, ich könnte mir ja auch eine EcoS oder
eine andere Zentrale kaufen.
Die eigentliche Frage ist, wie kann ich Daten aus meinem
Programm an Rocrail über den Serialport senden.

MfG
Martin
Hobbyprog
 

Re: Eigenbau DCC - Zentrale mit Rocnet verbinden

Postby rjversluis » 08.04.2018, 05:40

Hi,

ich wollte damit klar machen das es schon viele einfache Protokolle gibt, wie zB das von DCC++ welche du dann auch benutzen kann anstatt RocNet.
Und mit RocNet kann deine Zentrale nur mit Rocrail kommunizieren.
Das Z21 Protokoll wäre vielleicht eine Alternative; DR5000 unterstützt es zZ auch.
Und wenn es Seriell ist musst du ein Protokoll wähle welche ein Eye Catcher hat, Eindeutige Header, oder RASCII
http://wiki.rocrail.net/doku.php?id=rascii-en
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBus - CAN-GCA ] - [ 0: RocNetNode - GCA-Pi ]
rjversluis
Site Admin
 

Re: Eigenbau DCC - Zentrale mit Rocnet verbinden

Postby Hobbyprog » 08.04.2018, 13:54

Hallo,

danke für die schnelle Rückmeldung.

ich muss das Tema Netzwerkverbindungen mal gründlich durcharbeiten.

Ich habe gestern mal eine Verbindung mit ein UDP Server und Slave versucht.

Im Serverfenster konnte ich eine Reaktion erzeugen, wenn ich ein Text gesendet
habe. Ich habe auch mal ein Beispiel aus der Rocnet Protokoll – Hilfe übernommen

@000130001020203304140 Rocrailserver meldet "unsupported group [50]"
ich vermute das die 2 = ASKI Code = 50 schuld ist. Delphi 7 verwendet 8 Bit ASKI?.

wenn ich Binär sende

00 01 23 00 01 02 02 03 30 41 40 bekomme ich keine Reaktion.
Und empfangen kann ich Garnichts.

Ich werde wohl Ihren Ratschlag befolgen und ein anderes Protokoll
ausprobieren. Und meine Notlösung über die Com1 <> Com2 Brücke
funktioniert erst mal zum schalten und fahren ganz gut.

Noch mal danke für die Unterstützung.

MfG

Martin

Nachtrag:
Ich habe in meinem Modellbahnverwaltungs - Programm ein UDP - Server eingefügt,
so kann ich zumindest die Weichen, Lok und Power ON/OFF über Rocrail steuern.
Ob ich noch ein Rückkanal zu Rocrail finde wird sich zeigen.
Vielleicht hat ja jemand ein ähnliches Projekt.
Hobbyprog
 

Re: Eigenbau DCC - Zentrale mit Rocnet verbinden

Postby Hobbyprog » 18.05.2018, 16:15

Hallo,

Ich konnte das Problem lösen,

letztlich war es nur ein Fehler von mir,
bei der Erstellung des Rocnet Protokolls. Ich musste mich dort als Laie
erstmal durch arbeiten.
Die Lösung stand dann ganz unten, "Sensor" , auf der Rocnet Seite
http://wiki.rocrail.net/doku.php?id=rocnet:rocnet-prot-en#udp_8_bit

Jetzt kann ich die Rückmelder - Symbole im Gleisplan aus meinem Programm
ansteuern. Da der Atmel328 hardwareseitig ein TWI I2C Bus unterstützt werde
ich diesen als Rückmelde - Bus testen., falls das funktioniert habe ich ein Rückmelde
Modul mit 8 oder 16 Ports für 3 - 4 €. Letztlich ist möglicherweise nur die
maximal mögliche länge der Signalleitung ein Problem.

Viele Grüße Martin
Hobbyprog
 


Return to BastelEcke (DE)