Fahrstra├čen, Signale und elektrische Weichen [ ­čÜž IM UMBAU BEFINDLICH! ­čÜž ]

  • Vereinfacht gesagt ist eine Fahrstra├če ein speziell gesicherter Fahrweg. Typischerweise geh├Ârt zu einer Fahrstra├če eine oder mehrere Weichen, die vor Aktivierung der Fahrstra├če in eine bestimmte Lage gebracht werden m├╝ssen, es sind Meldeeinrichtungen verkn├╝pft, um festzustellen, wo sich ein Fahrzeug auf der Strecke befindet, und es gibt Signale, die den Fahrer ├╝ber den Zustand der Weichen und der Fahrstra├če informieren. In diesem Artikel geht es darum, wie Fahrstra├čen im MapEditor eingerichtet werden.

    1 !!!UNDER CONSTRUCTION!!!

    (trotzdem sind noch alle Infos enthalten, nur in der Mitte "rumpelt" es etwas ;-) )

    2 Vorbildgetreues Stellwerk oder nur elektrische Tram-Weichen

    2.1 (A) Vorbildgerecht

    In "echten" und "klassischen" Stellwerken werden die Gleise in sogenannte Freimeldeabschnitte unterteilt. Das Stellwerk kann nun (mittels Gleisstromkreisen oder Achsz├Ąhlern) pr├╝fen, ob sich im jeweiligen Bereich ein Fahrzeug befindet, dies dem Fahrdienstleiter anzeigen und die entsprechenden Sicherheitsmechanismen aktivieren oder deaktivieren. Dies kann auch in LOTUS realisiert werden - hierbei werden die Freimeldeabschnitte angelegt und diejenigen Gleispfade ausgew├Ąhlt, die zum Freimeldeabschnitt geh├Âren. Die so definierten Freimeldeabschnitte k├Ânnen dann ihrerseits zu den Fahrstra├čen hinzugef├╝gt werden und definieren so, wo die Fahrstra├če entlang f├╝hrt und welche Bereiche vor dem Einlegen der Fahrstra├če frei sein m├╝ssen. Allerdings m├╝ssen bei dieser Variante die betroffenen Weichen manuell hinzugef├╝gt werden (s.u.)! Aus diesem Grund sollten im Fall (A) auch die Weichen sinnvoll beschriftet werden - und zwar stellwerks├╝bergreifend!


    Wenn f├╝r einen Bezirk ein bedienbares Stellwerk erstellt werden (ContentTool), dann ist es im Allgemeinen n├Âtig, die Variante (A) zu verwenden, da es andernfalls nicht m├Âglich ist, Wei├č- oder Rotausleuchtungen darzustellen, da diese nur mit Freimeldeabschnitten realisiert werden k├Ânnen!

    2.2 (B) Einfach/Elektrische Weichen

    Die vereinfachte Variante wird dagegen z.B. verwendet, wenn bei der Tram nur (ohne komplizierte Technik) elektrische Weichen gestellt werden sollen und kein echtes Stellwerk simuliert werden muss. Dennoch kann definiert werden, entlang welchem Weg die Fahrstra├če verl├Ąuft, nur erfolgt dies direkt dadurch, dass f├╝r die jeweilige Fahrstra├če direkt die Gleispfade ausgew├Ąhlt werden.


    ---


    Wichtig ist aber, dass diese Unterscheidung nicht im Voraus festgelegt werden muss, sondern die Fahrstra├čen komplett gemischt angelegt werden k├Ânnen. Es darf sogar eine einzelne Fahrstra├če sowohl mittels Freimeldeabschnitte als auch "direkten" Pfaden definiert werden! Dennoch ist es nat├╝rlich ├╝bersichtlicher, wenn man sich f├╝r einen bestimmten Bezirk f├╝r eine der beiden Varianten festlegt.

    3 Weichen vorbereiten

    Im Fall (A) ist es sehr wichtig, im Fall (B) nicht unbedingt n├Âtig, aber dennoch empfehlenswert, den Weichen (zumindest denen, die in Fahrstra├čen verwendet werden sollen) Namen zu geben. Hierzu im "Gleis"-Modus mit der rechten Maustaste auf diejenige Markierung klicken, die in Richtung Weichenspitze zeigt, und im Kontextmen├╝ auf "Weiche konfigurieren..." klicken.



    Im erscheinenden Dialogfeld kann sofort der Weichenname eingegeben werden.


    4 Stellwerks-/Weichen-Bezirk anlegen

    Der ├ťbersichtlichkeit aber auch der Performance halber werden Fahrstra├čen zu Bezirken gruppiert, die jeweils unabh├Ąngig voneinander arbeiten. Man kann sich diese wie einzelne Stellwerke vorstellen.


    F├╝r die Performance relevant ist die Gruppierung insbesondere deshalb, weil jeder Bezirk eine Ausschluss-Matrix enth├Ąlt, die die Gr├Â├če "Anzahl der Fahrstra├čen zum Quadrat" hat, und ├╝ber die bei der Anforderung einer Fahrstra├če nachgeschaut wird, ob bereits eine "feindliche" Fahrstra├če eingelegt ist. Angenommen, man h├Ątte ein gro├čes Netz mit 20 Stellwerken ├á 10 Fahrstra├čen. W├╝rde man nun keine Bezirke definieren, dann w├╝rde man eine 200x200-Matrix ben├Âtigen, die dementsprechend 40.000 Eintr├Ąge ben├Âtigt. W├╝rden die Fahrstra├čen zu den jeweiligen Stellwerken gruppiert werden, dann w├Ąren es 20 Matrizen mit nur noch 10x10 = 100 Feldern, also nur insgesamt 1.000 Eintr├Ągen (gegen├╝ber 40.000!).


    Die Bezirke werden ├╝ber die in vielen anderen Bereichen bekannte Listen-Box verwaltet, die sich links im Abschnitt "Fahrstra├čen" befindet.



    Im Eigenschaften-Dialogfeld (erreichbar per Doppelklick oder die Schaltfl├Ąche mit dem Rechteck unterhalb der Liste) kann zun├Ąchst dem Bezirk ein Name gegeben werden und es k├Ânnen folgende Grundeinstellungen f├╝r den Bezirk angegeben werden:

    • Aufl├Âsung, wenn Gleis wieder frei gemeldet wird: Aktive Fahrstra├čen werden automatisch aufgel├Âst, wenn die zugeh├Ârigen Gleise wieder als frei gemeldet werden, nachdem zuvor ein Zug darauf gestanden hat. Option ist standardm├Ą├čig eingeschaltet.
    • Signale zeigen nur an, falls aktiv: Ist diese Option aus, dann erscheinen die Weichensignale auch dann, wenn eine zugeh├Ârige Fahrstra├če "weichenm├Ą├čig" aktiviert werden k├Ânnte, d.h. sie geben praktisch st├Ąndig den Stand der Weiche an. Leuchtet dennoch kein Weichensignal, auch wenn die Option abgeschaltet ist, dann sind die aktuellen Weichenlagen so, dass es keine sinnvolle Fahrstra├če gibt. Option ist standardm├Ą├čig eingeschaltet.
    • Aufl├Âsung bei Weichenstellen: Wird eine Weiche manuell gestellt, die eigentlich durch eine aktive Fahrstra├če gesch├╝tzt wird, dann soll die Fahrstra├če aufgel├Âst werden. Option ist standardm├Ą├čig eingeschaltet.
    • Auto-Aktivierung bei Gleisbelegung: Falls eine Fahrstra├če befahren wird, die nicht eingelegt ist, die Weichenstellungen aber passen und auch keine "feindliche" Fahrstra├če eingelegt ist, dann soll sie automatisch aktiviert werden.

    4.1 Freimeldeabschnitte hinzuf├╝gen

    Freimeldeabschnitte werden nur f├╝r die realistische Umsetzung von Stellwerken ben├Âtigt, nicht aber f├╝r elektrische Weichen. In der Realit├Ąt sind Freimeldeabschnitte definierte Abschnitte der Gleise, die mittels der Sicherungstechnik entweder als "frei" oder "besetzt" gemeldet werden k├Ânnen.


    In LOTUS werden sie durch eine Gruppe von Pfaden sowie deren Ausrichtung definiert. Sie enthalten jedoch keinerlei Informationen ├╝ber die Weichen, die in diesem Abschnitt liegen. Sie k├Ânnen sogar Pfade enthalten, die einander ausschlie├čen (z.B. beide Gleise einer Weiche)!


    Die Ausrichtung ist deshalb wichtig, weil die automatische Ermittlung des Fahrstra├čenausschlusses im MapEditor sp├Ąter erkennen muss, ob zwei Fahrstra├čen den selben Freimeldeabschnitt in die gleiche Richtung befahren (kein Ausschluss n├Âtig) oder in entgegengesetzte Richtung befahren (Ausschluss n├Âtig). Achtung! Es ist nicht n├Âtig, dass derselbe Abschnitt zwei mal f├╝r beide Richtungen hinzugef├╝gt werden muss! Bei der sp├Ąter erfolgenden Zuordnung zur Fahrstra├če kann man die Ausrichtung immer noch umkehren!


    Die Liste s├Ąmtlicher bereits angelegter Freimeldeabschnitte befindet sich auf der rechten Seite des Dialogfeldes. Mittels der Pfeiltasten oben kann die Reihenfolge der Abschnitte ge├Ąndert werden, mit den Schaltfl├Ąchen darunter neue hinzugef├╝gt oder der markierte gel├Âscht werden.


    Unterhalb der Liste kann der markierte Freimeldeabschnitt bearbeitet werden:

    • der Name kann ge├Ąndert werden
    • Pfade hinzuf./entf.: Wenn diese Schaltfl├Ąche angeklickt wird, verf├Ąrbt sie sich blau und auf der 2D-Karte werden die vorhandenen Freimeldeabschnitte angezeigt, wobei der aktuell ausgew├Ąhlte Abschnitt farblich hervorgehoben wird. Mittels Klick auf ein Pfad kann dieser zum Freimeldeabschnitt hinzugef├╝gt oder von ihm entfernt werden.
    • Richtung umkehren: Kehrt die Ausrichtung s├Ąmtlicher Pfade des markierten Freimeldeabschnitts um.

    4.2 Fahrstra├čen anlegen

    Unterhalb der Fahrstra├čenliste k├Ânnen mit "Hinzuf├╝gen" und "L├Âschen" die einzelnen Fahrstra├čen erstellt oder entfernt werden. Wird eine davon angeklickt, k├Ânnen direkt unterhalb der Liste deren Eigenschaften bearbeitet werden:



    • Name
    • Autom. Aktivierung: Hierbei wird eigentlich geschummelt, weshalb es eine entsprechende Realismus-Option geben wird, mit der diese Eigenschaft unwirksam geschaltet werden kann: In der Realit├Ąt muss im Allgemeinen jeder Zug in einem Stellwerksbezirk auch eine Zugnummer haben oder ÔÇô im Falle von Rangierfahrstra├čen ÔÇô zumindest mit dem Fahrdienstleiter kommunizieren. Dass man einfach "so" mit einem Zug daherkommt und sich dann trotzdem Fahrstra├čen automatisch einlegen, gibt es ansonsten nur bei Selbstblocksignalen, niemals aber bei Fahrstra├čen, die Weichen decken. Um es dem User, der einfach die Karte erkunden m├Âchte, etwas netter zu gestalten, kann man Fahrstra├čen mit dieser Option versehen. Hierdurch wird ÔÇô sofern der Zug nicht fahrplanm├Ą├čig unterwegs ist ÔÇô die Fahrstra├če automatisch eingelegt, sobald der Zug die Aktivierungspfade bef├Ąhrt.
    • Weichen automatisch hinzuf├╝gen/l├Âschen: Abgesehen von Pfaden oder Freimeldeabschnitten m├╝ssen nat├╝rlich auch die zugeh├Ârigen Weichen gestellt werden. Wird "einfach" mit Pfaden gearbeitet (z.B. elektrische Weichen bei der Tram), dann erkennt LOTUS automatisch, welche Weichen zur Fahrstra├če hinzugef├╝gt werden m├╝ssen. Dies passiert, wenn diese Option eingeschaltet ist (Standardzustand). Wird allerdings mit Freimeldeabschnitten gearbeitet, dann m├╝ssen die Weichen manuell konfiguriert werden, weil dann eine eindeutige Ermittlung nicht m├Âglich ist und ├╝berdies ggf. zus├Ątzliche Weichen als Flankenschutz hinzugezogen werden m├╝ssen.
    • Automatische Aktivierung nur in Fahrtrichtung: Die automatische Aktivierung (s.o.) dient ja nur dazu, dass User die Karte ohne Fahrplan erkunden k├Ânnen. Ist dieser bspw. auf einer eingleisigen Strecke unterwegs, dann sollen nat├╝rlich die nicht die Signale in beide Richtungen auf Fahrt schalten, sondern nur in Fahrtrichtung. F├╝r diesen Fall ist es m├Âglich, diese Option zu aktivieren. Im zweigleisigen Betrieb dagegen ist die Fahrtrichtung unerheblich, da ohnehin nur in eine Richtung gefahren werden kann. F├╝r diesen Fall bleibt diese Option deaktiviert.#
    • Einlegen vom virtuellen Fahrdienstleiter oder Einlegen von Selbststellbetrieb/Zuglenkung: Diese Option hat vor allem darauf Einfluss, wie sich die Fahrstra├če verhalten soll, wenn das Stellwerk von einem User bedient wird: Bei ersterer Einstellung wird die Fahrstra├če von einem virtuellen Fahrdienstleiter bedient. Sobald der User im Stellwerk den virtuellen Fahrdienstleiter deaktiviert, wird diese Fahrstra├če nicht mehr automatisch eingelegt. Ist jedoch die zweite Option aktiv, dann wird die Fahrstra├če auch dann noch automatisch eingelegt, wenn man Signal der Selbststellbetrieb bzw. die Zuglenkung aktiv ist - auch wenn der virtuelle Fahrdienstleiter deaktiviert ist.
    [hl=2][/hl]

    4.3 Weichen und Pfade hinzuf├╝gen

    Zusammen mit dem Eigenschaften-Dialogfeld ├Âffnet sich auch eine 2D-Karte. In ihr werden Pfade zu den Fahrstra├čen hinzugef├╝gt oder entfernt. Generell werden nur Pfade hinzugef├╝gt oder entfernt, jedoch k├Ânnen hier keine Weichen zur Fahrstra├če hinzugef├╝gt oder von ihr entfernt werden. Dies ermittelt der MapEditor je nach Einstellung (s.o.) automatisch.


    Pfade k├Ânnen einer der folgenden drei Kategorien hinzugef├╝gt werden:

    • Die normalen Pfade, die die eigentlich Fahrstra├če ausmachen. Dieser Bereich beginnt hinter dem Signal und endet hinter der letzten Weiche. Damit die Fahrstra├če eingelegt werden kann, m├╝ssen diese frei von Fahrzeugen sein und die zugeh├Ârigen Weichen gestellt werden. Dementsprechend wird ├╝ber sie auch der Fahrstra├čenausschluss ermittelt, d.h. welche anderen Fahrstra├čen gleichzeitig eingestellt werden k├Ânnen. Sobald das Fahrzeug diese bef├Ąhrt, gilt die Fahrstra├če als besetzt und das zugeh├Ârige Signal f├Ąllt auf "Halt", sofern dieses entsprechend konfiguriert wurde. Verl├Ąsst das Fahrzeug diesen Bereich wieder vollst├Ąndig, wird die Fahrstra├če aufgel├Âst.

    • Aktivierungspfade: Diese komme nur zur Anwendung, wenn der Stellwerksbezirk ein "echtes" Stellwerk ist, d.h. nicht, wenn es sich nur um gesch├╝tzte Weichen handelt, die vor Ort durch Stellbefehle der Fahrzeuge legen. Die Aktivierungspfade liegen vor dem zugeh├Ârigen Signal. Sobald diese befahren werden, wird die Stellwerksautomatik bzw. der virtuelle Fahrdienstleiter aufgefordert, die entsprechende Fahrstra├če einzulegen, sofern sie zur Fahrplan-Fahrt passt und der Zug weniger als 2 Minuten Verfr├╝hung hat oder die Option "Autom. Aktivierung" der Fahrstra├če angehakt wurde ÔÇô und nat├╝rlich nur dann, wenn sie auch eingelegt werden darf/kann.

    • Pr├╝fpfade: Der Bereich zwischen letzter Weiche und End-Signal: Befindet sich der Zug bereits hier, dann kann die Fahrstra├če aufgel├Âst werden, da alle Weichen ger├Ąumt wurden. Trotzdem sollen aber keine Fahrstra├čen eingelegt werden, wenn sich hier ein Zug befindet oder das Gleis zu einer bereits eingelegten Fahrstra├če geh├Ârt. Deshalb wird dieser Bereich dennoch vor Einlegen der Fahrstra├če gepr├╝ft.


    Je nachdem, zu welcher Kategorie Pfade hinzugef├╝gt oder von ihr entfernt werden sollen, muss eine der drei zugeh├Ârigen Schaltfl├Ąchen durch Anklicken aktiviert werden. Danach k├Ânnen die Pfade in der 2D-Karte durch Anklicken hinzugef├╝gt oder entfernt werden.


    Au├čer bei Pr├╝fpfaden muss auf die korrekte Ausrichtung der Pfade geachtet werden. Der MapEditor sorgt selbstt├Ątig daf├╝r, dass die Pfade, wenn sie korrekt miteinander verbunden sind, einheitlich ausgerichtet sind. Soll diese Ausrichtung umgekehrt werden, muss die zugeh├Ârige Schaltfl├Ąche "Ausrichtung umkehren" angeklickt werden.


    Der Eintrag in der Fahrstra├čenliste wird jeweils aktualisiert, sodass man dort u.a. stets ablesen kann, ob die entsprechenden Weichen wie gew├╝nscht hinzugef├╝gt wurden.

    4.4 Weitere Eigenschaften der Fahrstra├čen

    • Alle Pfade und Weichen aus Fahrstra├če entfernen: Hier wird genau das getan ÔÇô die Fahrstra├če ist danach frei von jedweden Pfaden.

    5 Trigger/Baken konfigurieren

    Nun, nachdem die Fahrstra├čen definiert wurden, geht es daran, mittels Triggern deren automatisches Aktivieren und Deaktivieren zu erm├Âglichen. "Trigger" sind spezielle (in der Simulation unsichtbare) Szenerieobjekte. Trigger werden vielf├Ąltige Aufgaben ├╝bernehmen k├Ânnen, momentan dienen sie aber noch nur dem Einlegen und Aufl├Âsen von Fahrstra├čen.

    5.1 Trigger platzieren

    Man findet das Trigger-Objekt rechts in der Kategorie "Helfer". Es muss einfach nur "ungef├Ąhr" auf dem Gleis platziert werden; die interne "Verkn├╝pfung" mit dem Gleis wird dennoch gew├Ąhrleistet. Eine exakte Ausrichtung/Drehung ist auch nicht n├Âtig, aber die grobe Richtung (vorw├Ąrts oder r├╝ckw├Ąrts) ist sehr wichtig, weil die Sensoren/Trigger jeweils immer nur auf die Sensoren/Trigger "ihrer" Richtung reagieren.


    Mittels Rechtsklick auf den Trigger und Auswahl von "Trigger-Eigenschaften..." wird das Eigenschafts-Dialogfeld aufgerufen:



    Zun├Ąchst wird hier ausgew├Ąhlt, zu welchem Fahrstra├čen-Bezirk der Trigger geh├Âren soll.


    Sendet das Fahrzeug einen Stellbefehl an den Trigger, dann soll dieser - je nach Stellbefehl - eine bestimmte Fahrstra├če einlegen. Dieses Verhalten kann in den folgenden drei Dropdown-Men├╝s eingestellt werden. Soll der Trigger bestimmte oder alle Stellbefehle ignorieren, dann ist jeweils " - " auszuw├Ąhlen.


    Verl├Ąsst das Fahrzeug den Bereich der Fahrstra├če, dann soll diese wieder aufgel├Âst (deaktiviert) werden. Sofern dies nicht ├╝ber die Gleisfreimeldung erfolgt/erfolgen soll, kann f├╝r diesen Zweck einem Trigger ebenfalls eine Fahrstra├če zugewiesen werden. Hierbei "wartet" der Trigger aber nicht auf eine bestimmte Information/Aufforderung seitens des Fahrzeuges, sondern die Aufhebung wird sofort bei "Ber├╝hrung" des Triggers ausgel├Âst.


    6 Einfache Signale anschlie├čen

    F├╝r einfache Signale (z.B. Einheits-Weichensignale nach BOStrab wie W1, W2, W3 usw.), bei denen ein Szenerieobjekt nur anzeigt, ob eine bestimmte Fahrstra├če eingelegt ist, oder nicht, kommt ein vereinfachtes System zur Anwendung:

    • Platzieren und Ausw├Ąhlen des Signals
    • Ausw├Ąhlen des Bezirks links
    • Auf "Mark. Obj. zum Bezirk hinzuf." unterhalb der Bezirks-Liste klicken
    • Die Fahrstra├če ausw├Ąhlen, die dieses Signal anzeigen soll

    7 Komplexere Signale

    7.1 Signalobjekt konfigurieren

    Komplexe Signale m├╝ssen zuerst vorbereitet werden: Im Object & Vehicle Tool gibt es im Bereich "Allgemeine Einstellungen" die Schaltfl├Ąche "Signalbegriffe". Hier├╝ber kann ein Texteingabe-Feld ge├Âffnet werden, in welches (vereinfacht gesagt) diejenigen Signalbegriffe eingetragen werden m├╝ssen, die das Signal zeigen kann. Hierbei ist aber zu beachten, dass

    • das "Nichtvorhandensein" von Fahrstra├čen usw., also ein Hp0 oder ein dunkles Weichensignal usw., nicht ein eigener Signalbegriff sind
    • keine "Kombinationen" eingetragen werden
    • maximal sind 32 Zeilen und somit Begriffe erlaubt

    Kann das Signal beispielsweise sowohl Vor- als auch Hauptsignal-Begriffe anzeigen, dann erh├Ąlt es bspw. die Eintr├Ąge:

    • Hp1
    • Hp2
    • Vr1
    • Vr2

    FALSCH w├Ąre also sowas wie:

    • Hp0+Vr0
    • Hp1+Vr0
    • Hp2+Vr0
    • Hp1+Vr1
    • usw.

    Warum das so ist, wird vermutlich klarer, wenn wir uns mit der Konfiguration im MapEditor besch├Ąftigt haben! :-)

    7.2 Signal im MapEditor konfigurieren

    Sobald dem Signal-Objekt auf die beschriebene Weise die m├Âglichen Signalbegriffe mitgeteilt wurden, erscheint im MapEditor, wenn man auf das Signal mit rechts klickt, im Kontextmen├╝ der Eintrag "Signal-Eigenschaften". Wird dieser angeklickt, ├Âffnet sich das hierf├╝r vorgesehene Dialogfeld.


    Von der Struktur her gibt es f├╝r jeden Signalbegriff einen Listen-Abschnitt, zu dem jeweils beliebig viele Fahrstra├čen hinzugef├╝gt werden k├Ânnen. Die Anzahl der Signalbegriffe ergibt sich durch die Eingaben beim Signal-Objekt im Object & Vehicle Tool. F├╝r jeden Fahrstra├čeneintrag kann jeweils individuell der Bezirk ausgew├Ąhlt werden, damit es auch m├Âglich ist, Signalbegriffe bezirks├╝bergreifend zusammen zu stellen. Au├čerdem wird jeweils ausgew├Ąhlt, ob gepr├╝ft werden soll, ob

    • die Fahrstra├če aktiv ist,
    • deren Gleise belegt sind,
    • sie aktiv ist und gleichzeitig ihre Gleise nicht belegt sind oder
    • sie "m├Âglich" ist, d.h. die zugeh├Ârigen Weichen bereits passend liegen

    Das ganze System arbeitet nun wie folgt: F├╝r jeden Signalbegriff wird stets gepr├╝ft, ob f├╝r zumindest eine der Fahrstra├čen die ausgew├Ąhlte Bedingung erf├╝llt ist. Falls dies der Fall ist, "gilt" dieser Signalbegriff. Schlie├člich werden die so ermittelten "Gesamtzust├Ąnde" jeder Fahrstra├če kodiert und per Script an das Signal ├╝bertragen.

    8 Fahrzeug ausr├╝sten

    Damit ein Fahrzeug mit den Baken interagieren kann, muss es mindestens einen Sensor bekommen, Zweirichtungsfahrzeuge ben├Âtigen mindestens einen jeweils an jedem Ende. Eingerichtet wird dieser in den Objekteinstellungen im Abschnitt "Sensoren":



    Die Parameter bedeuten:

    • Y-Position: Die Position des Sensors am Fahrzeug in L├Ąngsrichtung
    • Gegen Fahrtrichtung: Die Sensoren interagieren immer nur mit jenen Triggern, die dieselbe Ausrichtung haben, weshalb hier entsprechend angegeben werden muss, in welche Richtung dieser Sensor eingebaut werden soll.

    9 Script-Implementierung

    9.1 Fahrzeug

    Scriptseitig gibt es bereits folgende M├Âglichkeiten der Interaktion zwischen Fahrzeug-Sensor und Strecken-Trigger:

    • Senden von Meldungen an alle in Reichweite befindliche Trigger mit SendMessageToTrigger(Self; ID: string; value: string; sensor_index: integer) . Bisher unterst├╝tzt werden die IDs
      • "SWITCH" mit den Werten (jeweils als String!) "0" (links), "1" (rechts) und "2" (geradeaus) zum ├ťbertragen eines Stellbefehls oder "toggle" zum Umschalten zwischen zweier der drei aufgef├╝hrten Fahrstra├čen.
      • "LINEROUTE", bei dem die Zahlen der Linie und der Route und der Name des ITCS-Servers ├╝bertragen werden, als String getrennt mit einem "/". So wird aus Linie 123 mit Route 45 der String "123/45/{Name}". Die ├ťbertragung der Linie und Route sorgt daf├╝r, dass LOTUS anhand der vorliegenden, g├╝ltigen und zum ITCS-Server-Namen passenden Fahrpl├Ąne heraussucht, welche Route hierf├╝r hinterlegt ist, und anhand dieser den Stellbefehl passend gibt. Der Name des ITCS-Servers wird zuvor ├╝blicherweise mit der Funktion PIS_GetITCSServer(self: integer) geholt.
    • Wird in das Script eine Prozedur eingebunden mit der Deklaration procedure OnEnterLeaveTrigger(triggerid: string; entering: boolean; sensorindex: integer), dann wird diese stets aufgerufen, wenn das Fahrzeug einen Trigger erreicht oder verl├Ąsst. "Triggerid" wird aktuell nicht verwendet, sp├Ąter wird es z.B. zur Identifikation f├╝r das IBIS usw. verwendet werden.

    Im GT6N werden zum Beispiel beide Funktionen zusammen verwendet: Wenn der Fahrer einen Stellbefehl aktiviert, dann wird dieser Wert (f├╝r eine bestimmte maximale Wegstrecke) "vorgemerkt". Wird dann OnEnterLeaveTrigger ausgel├Âst, dann benutzt das Script sofort SendMessageToTrigger und sendet damit den Stellbefehl an den Trigger. Denkbar sind aber auch andere Varianten: Wenn der Trigger einen gr├Â├čeren Radius hat (z.B. f├╝r Kontakt-Stellbefehle oder l├Ąngere Kontaktschleifen), dann k├Ânnte SendMessageToTrigger auch unmittelbar ausgel├Âst werden, wenn der Fahrer den Stellbefehl bet├Ątigt.

    9.2 Einfache Signale

    So ├Ąhnlich wie bei den Ampeln muss lediglich die "PUBLIC"-Variable signalroute_active: boolean; eingebunden werden. Wenn alles korrekt verkn├╝pft ist und die Fahrstra├če eingelegt wird, wird diese Variable "true", sonst ist sie "false". Hiermit lassen sich aber dementsprechend nur einfache Signale realisieren. Komplexe Signale kommen sp├Ąter! ;-)

    9.3 Komplexe Signale

    Auch bei komplexen Signalen werden die Daten ├╝ber eine "PUBLIC"-Variable, n├Ąmlich signalstate: integer; ├╝bertragen. Achtung: Im Gegensatz zu einfachen Signalen handelt es sich hierbei um eine Integer-Variable!


    In diese werden nun im Betrieb die Signalbegriffe bitweise eingetragen ÔÇô siehe hierzu auch Bit-Flags erkl├Ąrt . Verf├╝gt das Signal z.B. ├╝ber die Begriffe Hp1, Hp2, Hp3 und Hp4, dann wird der Wert der Variable signalstate die folgenden Werte annehmen:

    • 1, falls nur die Hp1-Bedingungen gelten
    • 2, falls nur die Hp2-Bedingungen gelten
    • 4, falls nur die Hp3-Bedingungen gelten oder
    • 8, falls nur die Hp4-Bedingungen gelten.

    Gelten mehrere Bedingungen gleichzeitig, dann werden diese Werte einfach zusammengerechnet.


    Auseinander nehmen kann man die Bedingungen dann wie folgt:

    • wenn (signalstate and 1) <> 0, dann ist die Hp1-Bedingung erf├╝llt
    • wenn (signalstate and 2) <> 0, dann ist die Hp2-Bedingung erf├╝llt
    • wenn (signalstate and 4) <> 0, dann ist die Hp3-Bedingung erf├╝llt
    • wenn (signalstate and 8) <> 0, dann ist die Hp4-Bedingung erf├╝llt

    Komplexer, aber trotzdem problemlos ist es, wenn Zusatz-Anzeiger zur Anwendung kommen.


    Beispiel: Ein nur Hp4-f├Ąhiges U-Bahnsignal mit Gleis-Nummern-Anzeige. Die Signalbegriffe w├Ąren dann:

    • Hp4
    • Gleis 1
    • Gleis 2
    • Gleis 3
    • Gleis 4
    • Gleis 5
    • Gleis 6
    • Gleis 7
    • Gleis 8
    • Gleis 9

    Angenommen, es gibt drei Fahrstra├čen A, B und C, die auf Gleis 3, 4 und 7 f├╝hren.


    Dann werden im MapEditor in der Signal-Konfiguration dem Signalbegriff Hp4 alle drei Fahrstra├čen zugeordnet, den Signalbetriffen Gleis 3, Gleis 4 und Gleis 7 jeweils nur die Fahrstra├če A, B und C, und den restlichen Signalbegriffen werden gar keine Fahrstra├čen zugeordnet.


    Nach obiger Formel wird die Variable signalstate dann folgende Werte annehmen:

    • Fahrstra├če A: Hp4+Gleis 3, d.h. 1 + 8 = 9
    • Fahrstra├če B: Hp4+Gleis 4, d.h. 1 + 16 = 17
    • Fahrstra├če C: Hp4+Gleis 7, d.h. 1 + 128 = 129

    Im Signalscript k├Ânnen dann die Signalbegriffe wieder mit den obigen "and-Formeln" auseinander genommen werden:

    Falls (signalstate and 1) <> 0, dann soll das Signal auf Hp4 gehen, sonst auf Hp0. Nur, wenn es Hp4 zeigt, dann soll er die restlichen Werte in signalstate pr├╝fen und dann entsprechend daraus ableiten, wie er die jeweiligen Gleisnummern anzeigen soll.

    9.4 Anforderung per Szenerieobjekt

    Scripts in Szenerieobjekten k├Ânnen Fahrstra├čen anfordern oder aufl├Âsen, so dass z.B. entsprechende Schl├╝sselschalter an Ampeln usw. umgesetzt werden k├Ânnen.


    Hierf├╝r gibt es die folgenden Prozeduren:

    • procedure SRT_Request(self: integer; bezirkID, fahrstrassenID: integer) fordert eine Fahrstra├če an, diese wird dann aber nur eingelegt, wenn die Bedingungen daf├╝r gegeben sind (z.B. keine Blockade durch andere Fahrstra├čen oder besetzte Gleise)
    • procedure SRT_Deactivate(self: integer; bezirkID, fahrstrassenID: integer) l├Âst eine oder alle Fahrstra├čen auf, unabh├Ąngig davon, ob sich noch Z├╝ge auf den den Fahrstra├če(n) zugewiesenen Gleisabschnitte befinden. Um s├Ąmtliche Fahrstra├čen des Fahrstra├čenbezirks aufzul├Âsen, muss als fahrstrassenID auf -1 gesetzt werden.

    Die Identifikation erfolgt ├╝ber die IDs der Fahrstra├čenbezirke und der Fahrstra├čen, hier gelb markiert:



    Damit ein Szenerieobjekt universell einsetzbar ist, sollten f├╝r alle IDs Startvariablen verwendet werden, sodass diese im MapEditor auf konkrete Werte gesetzt werden k├Ânnen.


    Werden die IDs dagegen im Szenerieobjekt hartkodiert auf feste Werte gesetzt werden, l├Ąsst sich das Szenerieobjekt nur auf ganz konkrete Fahrstra├čen auf einer ganz bestimmten Karte einsetzen.