Moin,
hier ein Lösungsvorschlag für eine Zugverfolgung auf der CS 3.
Hinweise / Einschränkungen:
- Diese Art und Weise ist für Blockstreckenbetrieb ausgelegt wo die Blockstrecke ein Kreislauf ist.
- Es ist eine Abzweigung als Beispiel enthalten (Die eine Fahrtrichtung befindet sich noch im Aufbau!)
- Im Kreislauf gibt es eine definierte Fahrtrichtung (Züge rückwärts verfahren bewirkt das sie an ihrer Position stehen bleiben! Abbiegen also in der nächsten Runde!)
- Das ganze ist nur für das Lok-Interface programmiert, und damit getestet
- Für jede einzelne Lok muss der komplette Prozess kopiert und neu verknüpft werden (Instanziierung in der CS 3 nicht möglich)
- Aktuell bin ich im Umbau, und konnte daher den kompletten Kreisverkehr noch nicht testen.
- Im Anhang befindet sich eine Kopie meiner CS 3
Aufgabe:
Wenn eine Lok über das Schaltgleis vor dem Bahnhof fährt, soll nur der darüber fahrende Zug gebremst werden. Es fahren mehrere Züge zeitgleich auf der Strecke!
Wenn der Zug den Bahnhof verlässt oder verlassen hat, Schaltgleis danach, soll er wieder beschleunigen.
Übersicht Gleisplan:
Bild entfernt (keine Rechte)
Übersicht der Ereignisse:
Bild entfernt (keine Rechte)
Darstellungsfaktor: 2.0 damit man es besser lesen kann!
Bild entfernt (keine Rechte)
Was ist jetzt der Trick daran?
Allgemein:
Wir sind nur so präzise wie unsere Anlage gebaut ist. Wir wissen nur wann welche Kontakt überfahren wird, aber nicht auf den cm genau wo steht unser Zug eigentlich. Außer wir haben alle 3 cm einen Block, dann wüssten wir das auf 3 cm genau.
Heißt also, wir können nur verfolgen in welchem ABSCHNITT sich ein Zug befindet. Genauer geht es mit den Ereignissen nicht, außer alle Meldekontakte abfragen.
Es muss manuell gestartet werden. Heißt, ich starte vom Bahnhof aus, und aktiviere einen Zug, und fahre diesen raus.
Dann weiß dieser wo er ist.
Wenn er den ersten Block verlassen hat, schicke ich den zweiten raus, dann den dritten usw.
Wenn alle unterwegs sind, und der erste Zug wieder im Bahnhof ist und ihn verlässt, dann wird durch die Schleife automatisch die Verfolgung neu gestartet.
Nr 1:
Die Instanziierung!
Das was die CS 3 leider nicht kann. Ob sowas auch mal kommen wird, finde ich fraglich! Vielleicht weiß da von euch einer was zu.
Daher muss also ALLES was ihr hier seht komplett kopiert werden (Danke Kopier-Funktion seit Update 2.5.1 !) und verändert werden.
Das geht dann doch recht schnell. Außerdem muss das ganze dann neu verknüpft werden.
Beispiel BR 89:
Ich müsste alles neu kopieren, und BR 89 statt Vorlage nennen und alle Ereignisse die Aufgerufen werden ändern von Vorlage auf die Br 89 damit diese separat gespeichert werden und nicht ihre Werte verlieren.
Heißt, pro neuem Zug, einmal bitte kopieren.
Ihr baut eure Anlage um?
Einmal die Vorlage ändern, und dann diese neue Vorlage für jeden Zug neu kopieren und Aufruf des Ereignisses anpassen.
Das ist leider Stand der Technik was möglich ist.
Wenn mir einer sagen kann wie ich instanziieren kann, dann her mit der Info! Danke :)
Nr 2:
Das Lok-Interface!
Hier bereits auf Seite 1 des Threads beschrieben!
Was kann das Lok-Interface noch?
Eure Lok-Konfiguration beim Steuern überschreiben!
Ihr könnt dem Lok-Interface die gleiche Adresse wie einer Lok zuweisen, und dann wird diese Lok angesteuert mit den Befehlen und Konfigurationen aus dem Lok-Interface!
Beispiel: Ich habe in meiner BR 89 eine Start und Stopp Verzögerung von 0 eingetragen (Geschwindigkeit sofort setzen) und im Interface für Start eine 5 und Stopp eine 3. Wenn ich über das Interface also die Steuerung mache, dann fährt die BR beim losfahren und Bremsen mit den Werten aus dem Lok-Interface! Heißt sie benötigt dann ihre Zeit bis side beschleunigt oder abgebremst hat.
Ich gehe davon aus (Habe es nicht geprüft!) das die Werte für z.B. Anfahren "5" bedeutet, das die Lok von 0 auf maximale Skala in 5 Sekunden fährt, und Bremst in 3 Sekunden.
Was bedeutet das für unsere Zugverfolgung?
Da wir mit dem Interface Programmiert haben, können wir die Lok ersetzen!
Das führt uns zu Punkt 3 und einem Problem..
Nr 3:
Ablaufereignis der CS 3
Mit einem Ablaufereignis der CS 3 können wir sagen aktiviere für die BR 89 das Ereignis "910 - Automatik Vorlage".
Dann wird überall wo Lok-Interface steht die BR 89 stattdessen verwendet weil der Lokbezug durchgereicht wird (Siehe Lok-Interface-Beitrag!).
Problem: Die Lok fährt dann wieder mit ihren eingestellten Werten. Heißt, wir müssen bei jeder Lok andere Start und Stopp Zeiten angeben, was durchaus Sinnvoll ist oder sein kann.
Nr 4: (Noch nicht realisiert, bisher nur Idee)
Programmierung ausschließlich über das Lok-Interface
Hier wirds jetzt richtig knifflig. Was wissen wir:
Wir haben festgestellt das das Interface eine Lok meiner Wahl steuern kann, wenn ich ihm einfach die gleiche Adresse wie der Lok geben.
Wenn ich einen Befehl über das Interface schicke, werden die Werte aus dem Interface berücksichtigt (z.B. Start und Bremszeit).
Wir können nicht über Ereignisse zur Laufzeit mit der CS 3 die Adresse ändern.
Wir können nicht die Einstellungen des Interfaces zur Laufzeit mit Ereignissen der CS 3 ändern.
Wenn wir das könnten, dann könnte eine Programmierung für einen Block wie folgt aussehen:
Bild entfernt (keine Rechte)
Hier ist folgendes:
Ich habe das reingeschrieben was jeder gerne hätte:
Wenn in einem Wunschblock meiner Wahl ein zug über ein Schaltgleis fährt, dann bremse ihn bitte ab.
Das würde die komplette Steuerung vereinfachen, und man kann einfach sagen, wenn irgendein Zug kommt, dann Bremse.
Und da kommt jetzt das Thema auf, weswegen ich in einem anderen Thread nach einer externen Steuerung um Ratschläge gebeten habe!
Ich möchte gerne weiterhin über Ereignisse programmieren, das ist schön und schlank.
Problematisch wirds nur wenn es heißt "welcher Zug ist das denn?"
Dafür brauche ich die Lok-Verfolgung.
Jetzt ist meine Idee:
Einfach Auslagern auf Extern wenn die CS 3 das nicht kann!
Wenn ich einen externen PC einfach diese Daten übermittle, soll der sich doch merken wer gerade wo rum fährt und die Schaltung von oben instanziieren.
Anhand der Instanz kann der PC dann einfach sagen, jetzt muss es ein ICE sein, dann konfiguriere ich im Betrieb das Lok-Interface um! Und zwar auf die Adresse des ICEs!
Ziel soll sein, möglichst viel mit der CS 3 machen. Und was sie so nicht (mal eben..) kann, das auslagern auf extern.
Dann wird in dem Beispiel-Block nämlich nur der ICE gebremst.
Achja, man kann dann auch für jeden Block individuelle Bremszeiten und Startzeiten festlegen. Dann kann mit mittels eines Schaltgleises (statt drei Kontakte wie beim Brems-Makro) einen Bremsvorgang einleiten und vor dem Signal zum stehen kommen, weil man für jeden Block die Zeit auch individuell anpassen kann, auch für jeden Zug (Soll der externe PC das mal ruhig durchrechnen)...
Was das alles für Folgemöglichkeiten hat, könnt ihr euch glaube ich teilweise besser Vorstellen als ich.
So, dann mal los mit eurem Feedback :)
Grüße
Steffen