Hallo TC ler,
zuerst die Ausgangslage auf meiner Anlage:
Mein Wunsch war es, die automatischen Zugfahrten wie folgt ablaufen zu lassen.
- "Zug-A" verlässt den Schattenbahnhof, fährt über DB=(Dürrnbach) und Brunn=(Brunnenbach) nach Walk=(Walkenried).
- In Walk setzt die Lok um, "Zug-A" und fährt dann über Brunn und DB zurück (Hinter DB verzweigt sich die Strecke in den SB und nach END).
- "Zug-A" fährt nach der ersten Durchfahrt von DB weiter zum Bahnhof END.
- In END setzt die Lok um, "Zug-A" und fährt dann über DB und Brunn nach Walk.
- In Walk setzt die Lok um, "Zug-A" und fährt dann über Brunn und DB zurück.
- "Zug-A" fährt nach der zweiten Durchfahrt von DB in den SB=(Schattenbahnhof).
Natürlich hätte ich das Ganze auch mit Nachfolgefahrten lösen können, das Ganze war mir aber zu plump und unflexibel.
In den nächsten Beiträgen folgen zwei Lösungen hierzu . . . .
Automatischer Zugbetrieb mit TC
Re: Automatischer Zugbetrieb mit TC
Hallo 
Hier meine erste Lösung.
Problematik wie folgt beschrieben.
Zug"X" fährt SB >> DB >> BB >> Walk >< Umsetzen >> Walk >> BB >> DB >> END >< Umsetzen >> DB >> BB >> Walk >< Umsetzen >> Walk >> BB >> DB >> SB
Das Problem aktuell, die Auswahl in DB nach >> END oder >> SB.
Meine Idee war jetzt folgendes:
Es gibt virtuelle Melder:
"vm01a + vm01b + vm01c" für Zug01
"vm02a + vm02b + vm02c" für Zug02
usw. für jeden Zug extra angelegt.
Es gibt folgende Bahnwärter:
"bw01a + bw01b" für Zug01
usw.
Wenn Zug01 vom SB ausfährt, wird "vm01b" ausgelöst und gehalten.
Kommt Zug01 aus Walk zurück nach DB, wird "vm01c" ausgelöst.
Dort wird durch "vm01b+vm01c" der "bw01b" ausgelöst, dieser startet Zug01 nach END und deaktiviert "vm01c".
Bei Einfahrt in End, wird "vm01a" ausgelöst und gehalten, "vm01b" wird deaktiviert.
Zug01 fährt wieder nach Walk.
Kommt Zug01 aus Walk zurück nach DB, wird "vm01c" ausgelöst.
Dort wird durch "vm01a+vm01c" der "bw01a" ausgelöst, dieser startet Zug01 nach SB und deaktiviert "vm01c".
USW - USW
Von der Logik her hat das so funktioniert-
Es gab ein kleines Problem, wenn das TC-Programm z.B. durch Editieren abgebrochen wurde, sind die lokbezogenen VM's nicht mehr aktiv,
das heißt, das Zählen fing von neuem an. Das störte eigenlich nur die Loks auf der Außenanlage.
Alle VM's werden erst wieder durch die entsprechenden Melder beim Überfahren aktiviert.
Es gibt für jedes BW-Paar noch einen entsprechenden Schalter, der nur anzeigt in welche Richtung der entsprechen Zug als nächstes fährt.
Vorteile:
- Durch die virtuellen Melder ist das sehr flexibel zu gestalten.
Nachteil:
- Für jede Lok müssen jeweils die zwei Bahnwärter und die drei virtuellen Melder angelegt werden.
Stolz habe ich meine Lösung dem Thomas präsentiert
Sein Kommentar, das ist viel zu kompliziert, das muss einfacher mit Variaben funktionieren

Hier meine erste Lösung.
Problematik wie folgt beschrieben.
Zug"X" fährt SB >> DB >> BB >> Walk >< Umsetzen >> Walk >> BB >> DB >> END >< Umsetzen >> DB >> BB >> Walk >< Umsetzen >> Walk >> BB >> DB >> SB
Das Problem aktuell, die Auswahl in DB nach >> END oder >> SB.
Meine Idee war jetzt folgendes:
Es gibt virtuelle Melder:
"vm01a + vm01b + vm01c" für Zug01
"vm02a + vm02b + vm02c" für Zug02
usw. für jeden Zug extra angelegt.
Es gibt folgende Bahnwärter:
"bw01a + bw01b" für Zug01
usw.
Wenn Zug01 vom SB ausfährt, wird "vm01b" ausgelöst und gehalten.
Kommt Zug01 aus Walk zurück nach DB, wird "vm01c" ausgelöst.
Dort wird durch "vm01b+vm01c" der "bw01b" ausgelöst, dieser startet Zug01 nach END und deaktiviert "vm01c".
Bei Einfahrt in End, wird "vm01a" ausgelöst und gehalten, "vm01b" wird deaktiviert.
Zug01 fährt wieder nach Walk.
Kommt Zug01 aus Walk zurück nach DB, wird "vm01c" ausgelöst.
Dort wird durch "vm01a+vm01c" der "bw01a" ausgelöst, dieser startet Zug01 nach SB und deaktiviert "vm01c".
USW - USW
Von der Logik her hat das so funktioniert-
Es gab ein kleines Problem, wenn das TC-Programm z.B. durch Editieren abgebrochen wurde, sind die lokbezogenen VM's nicht mehr aktiv,
das heißt, das Zählen fing von neuem an. Das störte eigenlich nur die Loks auf der Außenanlage.
Alle VM's werden erst wieder durch die entsprechenden Melder beim Überfahren aktiviert.
Es gibt für jedes BW-Paar noch einen entsprechenden Schalter, der nur anzeigt in welche Richtung der entsprechen Zug als nächstes fährt.
Vorteile:
- Durch die virtuellen Melder ist das sehr flexibel zu gestalten.
Nachteil:
- Für jede Lok müssen jeweils die zwei Bahnwärter und die drei virtuellen Melder angelegt werden.
Stolz habe ich meine Lösung dem Thomas präsentiert

Sein Kommentar, das ist viel zu kompliziert, das muss einfacher mit Variaben funktionieren

Harald
Re: Automatischer Zugbetrieb mit TC
Hier der Lösungsvorschlag von Thomas!

Bis dahin hatte ich nicht gewusst, dass die Variable jeden Zug separat behandeltHallo Harald,
die Anzahl der Fahrten nach Walkenried könntest du in einer Variablen speichern:
Erstellen im Explorer
Typ: Zahl
Gültigkeit: Zug
Die Variable ist dann für jeden Zug verfügbar, wobei die Werte getrennt gespeichert werden. D.h. du kannst für jeden Zugverband separat die Anzahl der Fahrten nach Walkenried zählen und in der Variablen speichern.
Das Erhöhen des Wertes muss durch eine Markierung erfolgen, die der Zug auf dem Weg nach Walkenried passiert.
Wenn du in DB bei den Bahnwärtern bleiben willst, musst du diese zum Block hinzufügen. Nur dann hat der Bahnwärter Zugriff auf den Wert der Variablen und du kannst den Wert z.B. in der Bedingung auswerten.
Mit Hilfe des Bahnwärters, der die Zugfahrt in den Schattenbahnhof startet, kannst du auch gleich die Variable wieder auf 0 setzen.
Vorteil aus meiner Sicht: Du musst alles nur einmal einrichten, die Anzahl der Züge spielt keine Rolle.
Eine Variable
Eine Markierung
Ein oder zwei Bahnwärter für die Nachfolgezugfahrten

Harald
Re: Automatischer Zugbetrieb mit TC
Hallo Stammtisch,
jetzt die Lösung mit den Variablen:
Im Block DB<>DB wurde der Auslöser für die Variable wie folgt eingetragen. Die Variable zählte dann jeweils +1 Der Auslöser für den Bahnwärter DB_01 Bedingung für den Bahnwärter DB_01 Die Operation für den Bahnwärter DB_01 Der Auslöser für den Bahnwärter DB_02 Bedingung für den Bahnwärter DB_02 Die Operation für den Bahnwärter DB_02 Der Auslöser für den Bahnwärter SB_01 Die Operation für den Bahnwärter SB_01 = Zurücksetzen der variablen auf "0" Diese Variante kann durch einen Schalter mit Bahnwärter "EIN-" und "Aus" geschaltet werden.
Ich hoffe das Ganze ist so verständlich.
Gruß
jetzt die Lösung mit den Variablen:
Im Block DB<>DB wurde der Auslöser für die Variable wie folgt eingetragen. Die Variable zählte dann jeweils +1 Der Auslöser für den Bahnwärter DB_01 Bedingung für den Bahnwärter DB_01 Die Operation für den Bahnwärter DB_01 Der Auslöser für den Bahnwärter DB_02 Bedingung für den Bahnwärter DB_02 Die Operation für den Bahnwärter DB_02 Der Auslöser für den Bahnwärter SB_01 Die Operation für den Bahnwärter SB_01 = Zurücksetzen der variablen auf "0" Diese Variante kann durch einen Schalter mit Bahnwärter "EIN-" und "Aus" geschaltet werden.
Ich hoffe das Ganze ist so verständlich.
Gruß
Harald