Jump to content

Weichenstellung bei Simulation


wolfgang

Empfohlene Beiträge

Hallo zusammen,

Wie kann ich eine Märklin Weiche, ohne Ereignisverwaltung, dazu bewegen sich wie das Orginal zu verhalten.
(mit Ereignissteuerung kein Problem ; es muss aber für jede Weiche ein Ergeignis geschrieben werden).

Das heisst, die Weiche von der Abzweigung oder von der Geraden befahren, ohne das sich die Weichenstellung ändert.

weiche: / < von hier befahren ( wenn die Weiche auf Gerade steht)
----------/- < oder von hier befahren ( wenn die Weiche auf Abbiegen steht)

Unter Lock eigenschaften kann ich nur "Weichen freischalten" wählen.
Haken gesetzt = Weichen werden dann von der Lok umgeschaltet. (und nicht mehr zurück geschaltet)
Haken nicht gesetzt = Lok fährt ncht über die Weiche.

Gruß

wolfgang

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo wolfgang,

wenn ich das problem richtig verstehe, dann muss doch bei zufahrt auf die weiche  (wenn bei den loks weiche freischalten aktiviert ist) ja gar nichts unternommen werden, da jede lok sich den weg freischaltet.

soll die weiche beidseitig genutzt werden, wo entschieden wird ob die lok geradeaus oder die abzweigung nutzen soll wird das ohne Ereignisverwaltung nicht gehen. es ist über die objektvariable der lok und ein vorgelegtes gleis (das die objektvariable  nutzt um die weiche für verschiedene loks umzuschalten oder nicht) umsetzbar.

allerding finde ich die idee, das es eine option geben könnte, dass die weiche sich wieder von alleine wieder zurück stellt, schon gut.

vg quackster

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo an alle
Danke fürs Antworten.

Möchte mit Modellbahn Studio meine Modellbahn entwerfen, simulieren und über Rocrail steuern und dann bauen.
Meine echte Lok fährt auf jedem Strang einer Weiche ohne diese umzustellen.
Auch Rocrail stellt keine Weiche um, wenn eine Lok drüberfährt.
Wollte so nah wie möglich am Orginal bleiben, mit der Simulation und Rocrail.
Habe gerade gesehen das eine Steuerschnittstelle im Modellbahn Studio vorhanden ist. Darüber müsste das zu lösen sein.
Werde mich wohl mal damit beschäftigen.

Kennst du sonst eine Lösung / Vorschlag?

Hier ein Beispiel: (mit echter Bahn braucht hier keine weiche umgestellt werden).
Gruß

wolfgang

Testrr21.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

das was Wolfgang hier "angeschnitten" hat, ist die "berühmte" Rückfallweiche, die es zumindest früher häufig bei Straßenbahnen gegeben hat (ob heute auch noch, weiß ich nicht). Sie wurde bei einer "Ausweiche" innerhalb einer eingleisigen Strecke verwendet. So konnten beispielsweise sich begegnende Straßenbahnen in der Ausweiche immer rechts aneinander vorbei fahren, ohne dass es einen Weichenwärter, der die Weichen umstellt, erfordert hätte. Die Weiche zeigte von der "Spitze" aus gesehen im Ruhezustand immer in dieselbe Richtung (im obigen Beispiel nämlich nach rechts), wurde von der entgegenkommenden Straßenbahn beim Befahren "aufgeschlitzt" und fiel nach dem Passieren durch einen Federmechanismus wieder in die Ausgangsstellung zurück. Denselben Mechanismus gab es zumindest beim Metallgleissystem auch bei den Märklin-Weichen, wo ebenfalls eine Feder dafür sorgte, dass die Weichenzungen sich nach dem Aufschlitzen und Passieren durch ein aus der "falschen" Verzweigung kommendes Fahrzeug wieder in die durch den Weichenhebel oder die Magnetspule eingestellte Stellung zurück fiel.

Hätte man nun die Feder aus der Weiche ausgebaut, wäre die Weiche jeweils in jener Stellung "stehen" geblieben, in die sie durch das letzte aus einem Zweiggleis kommende Fahrzeug gedrückt worden wäre. Dies ist genau das Szenario, das vom Modellbahn-Studio heute realisiert wird, wenn für das passierende Fahrzeug "Weiche freischalten" eingestellt ist. In der Realität und bei der "echten" Modellbahn kommt dieses Verhalten nicht vor, da hier der benötigte "Anpressdruck" der Weichenzunge an das anliegende Gleis fehlen würde und es daher wegen zu Entgleisungen wegen "abstehender" Weichenzungen kommen könnte.

Bei der "großen" Eisenbahn ist zumindest auf Hauptstrecken das Aufschlitzen von Weichen nicht erlaubt. Hier darf die Weiche nur dann "stumpf" befahren werden, wenn der Fahrweg explizit in Richtung des heranfahrenden Fahrzeugs eingestellt ist. Dies würde etwa dem Szenario im Modellbahn-Studio entsprechen, wenn bei der Lok die Option "Weiche freischalten" nicht ausgewählt ist - mit dem Unterschied, dass die Lok (oder der Zug) nicht erst an der Weiche direkt gestoppt, sondern bereits am Signal davor zum Anhalten aufgefordert wird.

Wie Quackster schon richtig erkannt hat, lassen sich Rückfallweichen im Modellbahn-Studio heute nur mithilfe der Ereignisverwaltung realisieren. Man bräuchte hierzu an sämtlichen Weichenanschlüssen ein kurzes "Kontaktgleis", bei dessen "Betreten von jenseits der Weiche" deren ursprünglicher Zustand in einer der Weiche zugeordneten Objektvariable hinterlegt wird (Zusatzbedingung: Zug befindet sich nicht auf der Weiche, da von der Weiche kommend dieses Ereignis nicht ausgewertet werden darf). Mit einem Ereignis "Zug verlässt Gleis" (nämlich die Weiche) wird dann die Weiche wieder auf den Zustand der Objekt-Variable zurück gesetzt. Bei diesem Mechanismus ist es völlig unerheblich, aus welcher Richtung die Lok (der Zug) kommt und um welches Fahrzeug es sich hierbei handelt.

Wenn nun das Modellbahn-Studio selbst sich beim Betreten der Weiche deren Zustand merken würde, bevor die Weiche möglicherweise wegen "Weiche freischalten" umgelegt wird, könnte es beim Verlassen der Weiche diesen Zustand automatisch wiederherstellen. Und die Rückfallweiche bräuchte nicht mehr über die EV "nachgebaut" zu werden. 

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo BahnLand

Du hast es vollkommen richtig erkannt und beschrieben.
Auch bei der großen Bahn gibt es Rückfallweichen.
In meinem Beispiel habe ich das über "EV nachgebaut".
Habe dazu mit dem gleis vor der weiche eine Variable gesetzt wenn weiche falsch steht.
beim verlassen der weiche wird die weiche wieder zurückgestellt falls die variable gesetzt ist.

Gibt es eine elegantere Lösung die ich für alle weichen einsetzen kann.
Viele Hersteller von Modelleisenbahnen verwenden "Rückfallweichen".

Vorteil bei dem Beispiel: verwendung von Handweichen
Es wird kein Antrieb benötigt, keine Verdrahtung, und keinen decoder.
bei einem Bahnhof mit Ausweichgleisen benötige ich an der Ausfahrseite nur Handweichen. (Schattenbahnhof)
Züge fahren ohne eingriff.
Bei handsteuerung müsste ich sonst jedes mal wenn die lok an eine weiche fährt diese umstellen.
Nachteil: Zug kann nicht auf Weiche anhalten und zurück fahren. Leicht erhöhte Entgleisungsgefahr durchs aufspalten.

Gibt es eine elegantere Lösung die ich für alle weichen einsetzen kann.
Vielleicht über die Steuerschnittstelle?

100 Aktive Spur eines Gleises hat sich geändert
String - Name des Gleises
Zahl - 0-basierter Index der neuen aktiven Spur

150 Ein Zug betritt ein Gleis
String - Name des Rollmaterials
String - Name des Gleises
Zahl - 0-basierter Index der Gleisspur
String - Name des Gleises, welches verlassen wird
Zahl - 0-basierter Index der Gleisspur, die verlassen wird

151 Ein Zug verlässt ein Gleis
String - Name des Rollmaterials
String - Name des Gleises
Zahl - 0-basierter Index der Gleisspur
String - Name des Gleises, welches betreten wird
Zahl - 0-basierter Index der Gleisspur, die betreten wird

Oder könnte MBS unter Lok Eigenschaften "Weichen freischalten" ein Unterpunkt einfügen mit "Weichen in vorherigem Zustand zurückstellen" oder Weiche als Rückfallweiche behandeln.

hi Namensvetter wopetir wolfgang.
Ich bin neu im MBS, benutzedie die Standard Version erst seit 2 Tagen.
Bahnland habe ich mit dem Anmeldenamen angesprochen.
Wie werden hier die Benutzer angesprochen mit ihren Anmeldenamen oder Vornamen.
Ich orientiere mich immer nach dem, was links neben dem Text steht.
Wenn es erwünscht ist, oder du es möchtest, kann ich meinen Anmeldenamen auch ändern.
Bin ja neu hier und habe noch nichts geschrieben, daher ist es kein Problem und du könntest dich als wolfgang anmelden.

Gruß
Wolfgang

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Wolfgang,

da ich wiedermal etwas programmieren wollte, kam die Aufgabe "Rückfallweichen" wie gelegen... (Programmiert mit Easys MBS-Clienten).


Die Weichen müssen mit "rueckfall" beginnen und eindeutige Namen haben (zb. rueckfallweiche-1_links oder rueckfallxyz123).
Das Programm hat noch verbesserungspotential, ist im Moment auf 20 RFW :) begrenzt, tut aber;).

Das Programm liest beim Start (und bei Connect nach Disconnect, wichtig zb. bei Umbenennung oder Umschaltung der Rückfallweichen) die Weichen ein und speichert die Stellung der RückFallWeichen ab.
Wenn ein Zug eine Rückfallweiche verlässt, wird die gespeicherte Stellung eingestellt- auch wenn die Weiche spitz befahren wird- das heisst, auch wenn die Weiche per EV oder Hand in die andere Stellung geschaltet wird, wird wieder auf die "richtige" Stellung geschaltet.

Ich leg mal das VB-Projekt bei, zum Testen hab ich deinen Testrr21 benutzt.

Schöne (Rest)Feiertage ~ Lutz

Update vom 27.12: Eine neue Version ist in #14 verfügbar ~Lutz



 

Rueckfallweichen.zip

Testrr21_lutz.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo Lutz,

fein gemacht (y) ich denke mal das hat zukunft und erleichtert vieles.

nachdem ich mir das angeschaut habe, kam mir gedanke, dass man das für jede anlage direkt einzeln speichern sollte, außerdem würde mir deine abkürzung (weil kürzer) RFW_ besser zur kennzeichnung gefallen.

und zu guterletzt, könnte man auch kreuzweichen dazu bringen, je nach der zufahrt (evtl über ein configmenue) eine definierte stellung einzunehmen und wieder zurückzufallen? das soll aber nur als idee betrachtet werden.

vg quackster

ach ja, gute fahrt in richtung 2016

2016.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Lutz,

... ich hätte Dir einen prinzipiellen Verbesserungsvorschlag für Dein derzeigiges Programm (und vielleicht auch zukünftige Programme)...

Du arbeitest für das Einlesen der Weichen mit einem Array... dies ist ein relativ starres "Gebilde" und so wie Du es anwendest etwas "umständlich" in der Handhabung... (zuerst einmal einlesen (zählen) wie viele Elemente benötigt werden... ReDim... noch einmal einlesen)...

Die nach (meiner Meinung) einfachere Lösung ist die Verwendung einer "List(of T)"... wie der Name schon sagt, ist es eine Liste, die den Vorteil hat, daß sie dynamisch ist (es können zu jedem Zeitpunkt Elemente hinzugefügt werden)... und auch das Durchsuchen dieser Liste nach einem bestimmten Eintrag ist einfacher...

Ich habe Dir Dein Programm mal (als Anregung) etwas umgeschrieben...

P.S. Deine Beispielanlage läuft gleich los:o... ->Reaktionstest wer schneller ist... der Aufruf des Programmes oder eine Kollision der Loks?;)

Gruß
EASY

Rfw.zip

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Easy,

So ist die Geschichte ja wesentlich einfacher zu lösen- ein Bsp. sagt oft mehr als die Hilfe(y), Danke dafür.

tja, was soll ich sagen... ich komme aus der µController-ecke, da ist hardwarenahes Proggen angesagt- also kein BS, was hilft;).

Da ist ein ein/mehrdimensonales Array schon "hohe Schule".

Die "hilfe" inVB ist wirklich nicht sehr hilfreich (mangelndes Englisch), mir fehlt eine Befehlsübersicht- List(of T) sagt mir zb. nicht, das die dynamisch ist;).
Die ganzen Array bzw String-Befehle sind bei mir ein mühsames Zusammensuchen, zb nehme ich nun .Length oder .Count:/.

Die Beispielanlage hatte ich eigentlich mit gestoppter Animation hochgeladen? Hmm.

Gruß ~Lutz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...