Hallo, liebe MoBa-Freunde,
ich beschäftige mich gerade, nach jahrzehntelanger Abstinenz, wieder etwas mit dem Thema Modellbahn und lerne gerade diesbezüglich eine "digitale" Sichtweise aufzubauen.
Projektiert ist eine Märklin-H0-Anlage (Gleisbox, zwei MS2) mit kleinem Bahnhof, Gütersackgleis, Lokbahnhof und -an den Bahnhofsausfahrten- jeweils eine verdeckte Wendeschleife. Im Hinblick auf "narrensicheren" Betrieb, auch bei fahrdiensttechnischer Hilfe durch meine achtjährige Tochter ;o) , möchte ich den Schattenbetrieb in den Wendeschleifen automatisch ablaufen lassen. D.h. wenn die Züge in die nichteinsehbaren Bereiche einfahren, sollen sie keine manuellen Steuerbefehle mehr annehmen und mit einer "vernünftigen" Geschwindigkeit diesen Bereich befahren, bevor sie nach Wiedererscheinen vom hocherfreuten Bahnpersonal wieder manuell dirigiert werden können.
Früher, analog, ganz einfach durch einen getrennten Fahrstromkreis mit einem zusätzlichen, fest eingestellten und nicht manuell zu bedienenden Trafo realisierbar.
Im Digitalbetrieb ist das kein triviales Problem, denn die MS2 ist über die Gleisbox direkt mit dem Gleis verbunden und kann nicht mit dem Computer/ der Software kommunizieren. Vom Computer automatisch an Züge, Weichen, Signale gegebene Befehle können jederzeit durch Eingaben an der/ den MS2 ausgehebelt werden, wenn die passende Adresse eingestellt ist.
Im Zuge meines Bewusstwerdungsprozesses habe ich auch mit Herrn Freiwald (TC) kommuniziert, der mir die o.g. Zusammenhänge erklärt hat. Bei ihm kann man dazu ein Eingabegerät erwerben (+SmartHand), das -einstellbar- für bestimmte Blockabschnitte keine manuellen Eingaben akzeptiert. Dieses Gerät muss dann, für mich auch nachvollziehbar, direkt mit einem Interface an den Computer angeschlossen werden. Ans Gleis gehen dann nur Informationen, wenn sich das Eingabegerät und die Software über die Zuständigkeit geeinigt haben.
Eine solche Funktion scheint mir für den seltenen Fall ;o), dass jemand neben der Sicherung durch den Computer auch manuell "spielen" möchte äußerst wichtig.
Allerdings sind diese Geräte sehr teuer und hinken meiner Meinung nach in Design und Anzeige den mir sehr sympathischen MS2 hinterher.
Lange Einleitung, kurze Frage:
Ist es prinzipiell möglich, die MS2 in ähnlicher Weise funktionell (und falls möglich: in absehbarer Zeit) in das CAN-digital-Bahn-System einzubinden? vielleicht mit einer (versteckten) MS2 an üblicher Stelle als Datenbank?
AFAIR sind am CAN-Bus hängende Geräte immer berechtigt, Befehle an die Gleisbox zu senden. Sobald eine MS2 an der Gleisbox hängt, fungiert diese als Master (und verwaltet z.B. die mfx-Anmeldung). Dies läßt sich nicht ausschalten. Auch eine 2. MS2 ist mit der aktuellen Software berechtigt, Befehle zu senden, die von der Gleisbox ans Gleis weiter geleitet werden. Aus meiner Sicht ist die Lösung von Herrn Freiwald die einzig machbare, nämlich dass die Software als "Zwischen-Master" fungiert und das Steuergerät nicht am CAN sondern am PC hängt. Ich glaube nicht, dass Thorsten uns eine spezielle MS2 stricken kann/wird.
Was evtl. eine Lösung ist: lösche alle Loks aus der Lokliste der MS2, die im Automatikbetrieb sind. Dann kann Deine Tochter diese auch nicht mit der MS2 ansprechen.
Beiträge: 2265 Ort: in der Lampe Eingetreten: 03.06.10 Status: Offline
Eingetragen am 14.10.2013 21:39
Hallo Mafi,
eigentlich wollte ich dazu noch nichts schreiben, muss Dir aber wiedersprechen, es geht! Ja auch mit Märklin im Bus...
Mich würde vielmehr sehr interessieren, ob es mehr Modellbahner gibt, die an einer solchen Lösung interesse haben?
Ein System, wo alle Fahrbefhel vor der Weitergabe an das Gleis von einer "Einheit" auf Freigabe geprüft werden. Zum Beispiel bei Clubanlagen, wo viele spielen und nicht in den nächsten Bereich sehen können...
Also bitte einfach hier melden, wenn es da nicht nur mich und Sascha gibt, die sich soetwas wünschen. Ja, einen weiteren weiß ich auch noch...
Hallo Thorsten,
das hört sich gut an!
Nun möchte ich natürlich mithelfen, weitere Interessenten für ein solches Projekt zu finden.
Unter welcher unmissverständlichen Überschrift könnte man z.B einen Beitrag im Forum dazu veröffentlichen?
Ich bin noch im "Stummiforum" angemeldet. Vielleicht gibt es auch ein Forum, wo man speziell Märklin-Bahner erreicht?
Ich bitte um Vorschläge. Ohne Abstimmung mit dir werde ich nichts unternehmen.
Gruß
Sascha
P.S.@Mafi:
Dein Vorschlag bringt leider keine Linderung des Problems, denn meine Tochter kann mit ihrem eigenen Zug in der komplex aufgebauten Wendeschleife (mit mehren Zügen hintereinander) durch z.B. manuelles Rückwärtsfahren, Weiterfahren (bei Stopbefehl durch den Computer) oder durch manuellen Zugstop an falscher Stelle noch "Schaden" anrichten.
ja ich habe auch Interesse an einer Lösung, bei der man z.B. in Abhängigkeit von Ort und / oder Signalstellung die Fahrstufen beeinflussen / limitieren kann. Wie schön wäre es doch, wenn ich von Hand einen Zug an ein rotes Signal ran fahren kann, alle Funktionen der Lok und Wagen schalten kann, aber ähnlich der PZB beim Original ein Geschwindigkeitslimit gesetzt bekommen würde!
Für MM und DCC geht das auch im Prinzip, in dem man in einem Microcontroller die CAN-Telegramme manipuliert und dann über eine weitere Gleisbox ausgeben lässt. Ähnlich diverser intelligenter Bremsbausteine aus der Vergangenheit (ich meine nicht die mit Gleichspannung!) kann man dann den Gleisabschnitt zwischen den Gleisboxen umschalten und so das Ziel erreichen. Das Problem sind MFX-Decoder. Die merken sofort, dass sie an einer anderen Gleisbox sind und fangen dann an mit "Anmeldeprozess" usw. Ärger zu machen.
Alternativ könnte man die Gleisbox hinter dem Microcontroller auch permanent benutzen, wenn der Controller keine feste Manipulation der CAN-Daten vor nimmt, sondern für jede Lok-Adresse von außen gesteuert diese dann gezielt manipuliert. OK das ist mehr Rechen- und Speicheraufwand, wäre im Prinzip aber auch lösbar. Nur woher weis nun der Microcontroller, wo sich gerade welche Lok befindet, und wie er das CAN-Telegramm manipuliern soll? Entweder muss dann permanent immer ein PC mit laufen, dessen Steuerprogramm dem Baustein die Info mitteilen kann, oder man bräuchte so etwas ähnliches wie Lissy, wo jeder Zug einen Sender besitzt, der beim Überfahren von festen Sensoren die Information liefert "Lok 7 ist nun an Bremsstrecke zu Blocksignal 6 angekommen" Wenn man dann dem Sensor-Baustein noch programmieren kann, dass wenn Lok 7 erkannt wird, dem Microcontroller z.B. der Befehl gesendet wird " Lok 7 darf maximal Fahrstufe 5 fahren " (oder zum Halten Fahrstufe 0), dann wäre das Ziel auch ohne PC und für MFX-Loks erreicht. Nachteil: Es funktioniert nicht mit irgend welchen Gäste-Lokomotiven die den Sender nicht besitzen und das Ganze ist aufwendig und dem entsprechend wohl auch nicht billig.
Ich träume jetzt mal weiter, und vielleicht erfüllt sich ja dann doch mal so ein Wunsch.
Beiträge: 4 Ort: Bad Bramstedt Eingetreten: 18.10.12 Status: Offline
Eingetragen am 18.10.2013 15:20
Hallo Thorsten, Sascha, alle,
ich hätte an einem programmierbaren "Supervisor", "Gateway" oder "Firewall" auch Interesse ... so als letzte Instanz, bevor die Befehle auf das Gleis gehen.
ich möchte auch gern hierzu meinen Senf mal abgeben.
Soweit ich weiß, kann jeder Teilnehmer am CAN-Bus, also jede MS2 zu jeder Zeit Befehle senden. Also muß ein Computer quasi wie ein Router zwischen 2 CAN Stängen sitzen, der dann die CAN Nachrichten entsprechend manipulieren/freigeben kann. Also so, wie auch von Joachim beschrieben. Und da bieten sich ja kleine Mikrocontroller an. Ich hab hier auch ein BeagleBoard Black, das CAN Nachrichten mitlesen kann. Die lassen sich zwischen CAN und Ethernet routen und das Board könnte und auch selbst Nachrichten erzeugen. Mit 2 CAN Interfaces könnte man damit so eine Lösung aufbauen.
Leider gibt es in den CAN Nachrichten keine Sender UID, so kann man nicht danach filtern, wer die Steuerbefehle sendet.
Man kann auch den uController einfach die Befehle wieder rückgängig machen lassen. Aber das kann dann zum Ruckeln der Loks führen und ist unschön.
Beide Varianten haben das Problem, daß der uController die Position der Lok kennen muß.
Aber mit den Boostern hat man ja auch so etwas wie verschiedene Stromkreise. Der Booster des CAN-digital-Bahn Projekts wird doch an den CAN Bus und nicht am Gleissignal angeschlossen? Dann reicht ein uController zwischen CAN Bus und Booster und man kann genau für diesen Stromkreis die CAN Befehle filtern bzw. manipulieren. Dann muß der uController je nach Anforderungen nicht wissen, wo die Lok tatsächlich steht. Mittels eines solchen kleinen Einplatinencomputes könnte man auch jeden dieser Stromkreise an Ethernet anschließen, damit man nicht 2 CAN Interfaces braucht. Dann hätte man mehrere Stromkreise die ihre CAN Nachrichten über Ethernet austauschen.
Thorsten, du hast ja etwas geheimnisvoll Andeutungen gemacht. Möchtest du nicht etwas mehr verraten?
schön, dass Du hier mit diskutierst! Es zeigt, dass das Thema doch eine größere Runde interessiert. Habe mich ausführlich mit dem Thema beschäftigt und möchte deshalb folgendes ergänzen:
1.) Von Märklin ist das System so konzipiert, dass es genau einen aktiven Gleisformatprozessor im Verbund geben darf. Ein Gleisformatprozessor sitzt entweder in einer Gleisbox, oder in der CS2, aber nicht im Booster (weder im Märklin-Booster noch im CDB-Booster)! Der Gleisformatprozessor wandelt die CAN-Signale in Gleissignale um. Der Booster verstärkt sie nur. Bei Märklin gibt es keine Booster an der Gleisbox, sondern nur an der CS2. Diese gibt auf 2 Adern des CAN-Bus-Kabels (9-poliger Verbinder) auch das Gleissignal, welches der Booster dann verstärkt. Beim CDB kommt das Gleissignal am Startpunkt in das Bus-Kabel, er hat dafür eine 2-polige Klemme um dort die Gleisbox anschließen zu können. Der CAN-Bus zum Booster dient ausschließlich zu dessen Steuerung / Verwaltung. Der Booster kann darüber ein- und ausgeschaltet werden (beim CDB auch über Magnetartikeladressen, generell mit Stop und Go), es wird die Strombelastung des Boosters zur Verfügung gestellt usw.
Ein Hinweis noch am Rande: Auch wenn es technisch vielleicht nicht das Problem wäre, einen Gleisformatprozessor nach zu bauen, man würde zumindest bei MFX Schutzrechte verletzen und hätte immer das Problem, wie bekommt man Aktualisierungen, die es von Märklin ja doch öfter gibt, in den eigenen Gleisformatprozessor. -> Bei allen Überlegungen würden also weitere benötigte Gleisformatprozessoren von Märklin in Form einer Gleisbox stammen.
2.) Für alle Manipulationen des CAN-Signals in der angedachten Form, braucht es mindestens 2 Gleisformatprozessoren. Eine MS2 ohne Gleisbox kommt nicht richtig zum Leben und in der CS2 ist schon einer drin. Damit hätten wir den 1. Gleisformatprozessor, den es zur Funktion der Bedienelemente am "CAN-Bus A" geben muss. Sein Gleissignal ist aber nicht manipuliert und interessiert uns daher nicht.
Und dann brauchen wir noch einen Gleisformatprozessor am "CAN-Bus B" der uns die manipulierten CAN-Daten in ein Gleissignal übersetzt, also den 2. Gleisformatprozessor.
Wichtig ist noch, dass das manipulierende Element zwischen CAN-Bus A und CAN-Bus B nicht nur manipulieren darf, sondern auch filtern und "ersetzen" muss. Grund ist, dass wenn man mehrere Gleisboxen am CAN direkt zusammensteckt, es zu Fehlern kommt, weil die Software in CS2, MS2 und GFP nicht dafür ausgelegt ist! Im origianlen Märklin-Design kommen ja nur mehrere Gleisformatprozessoren an den CAN-Bus, wenn man mehrere CS2 koppelt. Dort ist es aber so geregelt, dass dann nur der GFP der 1. CS2 aktiv bleibt, alle anderen werden abgeschaltet. Dies ist sogar in einem Patent von Märklin beschrieben. -> Die Gleisformatprozessoren dürfen sich also nicht gegenseitig "sehen" können.
3.) Es gibt viele Hardware-Plattformen mit denen man das machen könnte, nicht nur die, die Du beschrieben hast. Diese haben aber alle 2 Nachteile gemeinsam. Einmal ist es nicht die Hardware / die Programmierumgebung, die Thorsten sonst verwendet, was zusätzlichen Aufwand für Einarbeitung und Portierung von Code bedeuten würde. Der zweite Punkt ist, und das ist noch viel wichtiger, die verwenden im Gegensatz zu Thorsten alle einen CAN-Bus-Controller ohne galvanische Trennung. Diese Trennung ist aber wichtig, damit Dir nichts abraucht. Da ist es einfacher für Thorsten eine Leiterplatte machen zu lassen und seine Standardbauteile zu verwenden. Ist ja auch nicht der riesen Posten, wenn man bedenkt, was man dafür an Funktion bekommt.
4.) Geht man wegen dem MFX-Thema (jede Gleisbox versendet im Gleissignal eine eigene eindeutige ID, die man nicht einfach manipulieren kann) von der Variante aus, dass nur das Gleissignal einer Gleisbox verwendet wird, dann bleibt noch der Punkt, wie der Filter gesteuert wird. In den von Märklin definierten CAN-Telegrammen ist nichts brauchbares drin, da so etwas von Märklin ja nicht vorgesehen ist. Eigene CAN-Telegramme aber so ab zu stimmen, dass sie nicht morgen mit der nächsten Weiterentwicklung kollidieren, ist schwierig. Alternativ bleibt, den Baustein neben den beiden CAN-Bus-Controllern noch mit einem USB-Anschluss zu versehen, über den dann zum Beispiel das steuernde PC-Programm, die Manipulationen kontrollieren kann.
Einen echten Vorteil bietet dazu das CDB-Projekt heute schon: Man kann mit mehreren Programmen parallel steuern. Wäre also die Ansteuerung des Bausteins z.B. nur in Modellstellwerk oder WINDIGIPET integriert, ich würde aber lieber mit TrainController fahren, dann kann ich das eine Programm dazu nutzen, um den Baustein zu programmieren (abhängig von der Zugverfolgung und den Signal- und Weichenstellungen, die am CAN-Bus mitgelesen wurden), während das andere Programm meine Züge lenkt, Fahrstraßen stellt usw.
Das alles war jetzt viel Technik, die beschreibt, was denn so gehen könnte, und was nicht. Viel spannender wäre für mich aber, wozu Ihr so einen Baustein einsetzen würdet. Vielleicht sollten wir da mal sammeln:
- Sascha möchte gerne den Zügen eine bestimmte Geschwindigkeit für die verdeckten Bereiche vorgeben.
- Ich möchte die Geschwindigkeit ortsbezogen und in Abhängigkeit von Signalstellungen limitieren. Beispiel: Die Durchfahrt einer Weichestraße ist auf 40 km/h beschränkt. Dann soll der Zug da auch nur maximal 40 km/h fahren, auch wenn die MS2 auf 80 km/h gestellt wird. Wird hingegen auf der MS2 die Geschwindigkeit auf 20 km/h zurück genommen, soll der Zug nicht mit 40km/h weiter fahren, sondern auf 20 km/h reduzieren. Gleichzeitig sollen alle Funktionen der Lok schaltbar bleiben. Im Märklin-CAN-Format sollte letzteres kein Thema sein, beim Motorola-Format wäre z.B. aber für den Richtungswechsel zusätzlicher Aufwand notwendig.
Beiträge: 2265 Ort: in der Lampe Eingetreten: 03.06.10 Status: Offline
Eingetragen am 23.10.2013 15:09
Hallo Michael,
eigentlich möchte ich da noch nicht so drüber schreiben. es gibt ein Modul, was gezeilt Daten im CAN filtern und verändern kann.
Wir, Joachim und ich sind da noch nicht so weit und das ganze ist wegen mfx und den verschiedenen Decodern nicht so ganz einfach was wir da m,achen möchten. Er hat ja schon recht ausführlich die Probleme beschrieben. Das ganze hat nun auch über ein Jahr geruht und vor dem nächsten Jahr geht es da auch bestimmt nicht wirklich weiter.
Man kann aber auch ganz andere Dinge damit machen. Zum Beispiel alle Stellbefehle blocken, um das Gleissignal davon frei zu halten aber dennoch mit eienm CAN-Bus zu arbeiten... ach es gibt da so einige Ideen...