Wie man eine Anlage automatisiert und trotzdem - JS
Transcription
Wie man eine Anlage automatisiert und trotzdem - JS
Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann 1 Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann Eine kurze Beschreibung der jsTRF Rules und DriverCommands. © JS 2006 Veröffentlichung nur auf js-home.org und Partnerseiten erlaubt. © JS 2006 Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann 2 Inhaltsverzeichnis 1.Wie man anfängt und was man braucht.................................................................................... 3 2.Nach dem Bauen....................................................................................................................... 4 3.Wir regeln die Regeln damit sie später alles regeln.................................................................. 5 3.1Fahrstraßen......................................................................................................................... 5 3.2Fahrstraßen wollen geschaltet werden................................................................................6 3.2.1DriverCommand „setpath“......................................................................................... 7 3.2.2Trigger steuern Fahrstraßen........................................................................................ 7 3.3Timetable/Fahrplan-Regel................................................................................................10 3.4Und wie war das mit dem selbst fahren?..........................................................................11 3.5Fahrstraßen im Betrieb ändern......................................................................................... 11 3.6Alle Fahrplan-Befehle...................................................................................................... 12 4.Zusätzliche Signalbilder..........................................................................................................14 © JS 2006 Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann 3 1. Wie man anfängt und was man braucht Zuerst sollte man sich die nötigen Rules auf dem Rechner installieren, also am besten gleich alle jsTRF-Rules (KUID 192081:) und Commands – kurz, alle Script. Außerdem noch KUID 70791:9001, 206816:99003, 206816:99004 und 178892:80003 – letztere ist optional und macht (noch) Probleme mit TRS2006. Dann gehts ans bauen der Anlage, das wird hier mal nicht weiter beschrieben. Man sollte dabei mit Signalen nicht geizen, kann sich also ruhig am Vorbild orientieren – ebenso mit den Weichen. Ganz besonders toll sind Bahnsteige mit Passagierfunktion. Die sollte man auch ruhig nutzen, sieht gut aus. Außerdem brauchen wir Portale, damit Züge entstehen. © JS 2006 Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann 4 2. Nach dem Bauen Nach dem Bauen geht es an den Feinschliff – aber diesesmal nicht den optischen: Signale brauchen Namen und es werden Trackmarks als Ziele benötigt: • Alle Signale, die vor Weichen stehen und damit eine Fahrstraße beginnen, brauchen einen Namen. Über die Art der Namensgebung will ich dabei nichts sagen, das kann jeder machen, wie er will – bei der DB werden die Signale vom 1. Esig beginnend mit A durchbuchstabiert und dann vom 2. Esig vom Z rückwärts – das reicht zwar nicht immer, aber dann muß man eben improvisieren. Für unseren Zweck sind vielleicht sprechendere Namen sinnvoller, also z.B. alle Signale eines Bahnhofs schonmal mit einem Prefix, z.B. für B-Stadt den Prefix „BS“. Dann noch eine sinnige Numerierung wie z.B. „E1“ fürs 1. Esig, „A1a“ fürs Asig von Gleis 1 in die eine Richtung, „A1b“ für die andere. • Überhaupt brauchen alle Signale, die Teil einer Fahrstraße werden sollen, einen Namen. • Die Bahnsteige, an die Züge fahren sollen, brauchen außerdem Trackmarks als Ziele – sprechende Namen sind da schon Pflicht, z.B. habe der Bahnhof „B-Stadt“ 3 Gleise: 1, 2, 3. Gleis 1 wird in Richtung C-Stadt nur befahren, 2 in die Gegenrichtung, also AStadt. Gleis 3 in beide Richtungen, da es aber neben 2 liegt sei seine „Hauptrichtung“ wie bei Gleis 2. Wir legen also nun 4 Trackmarks an: B-Stadt Gleis 1a am Ende von Gleis 1 Richtung C-Stadt B-Stadt Gleis 2a am Ende von Gleis 2 Richtung A-Stadt B-Stadt Gleis 3a am Ende von Gleis 3 Richtung A-Stadt B-Stadt Gleis 3b am Ende von Gleis 3 Richtung C-Stadt Wir haben nun 4 Trackmarks, vorbei der Trackmark mit dem A am Ende immer die die Hauptfahrtrichtung des Gleises liegt. Achja, Zeichen muß der Trackmark natürlich in Fahrtrichtung, also weg vom Bahnsteig. • Wo wird schon Trackmarks legen, legen wir noch ein paar an. Gleis 1 und Gleis 2 sind sehr lange Bahnsteige und so ein kurzer Regionalzug (Nahverkehrszug) mit 3 Wägelchen soll ja nicht unbedingt immer ganz vorn am Bahnsteigende halten – da ist ja meist kein Dach mehr. Drum legen wir noch 2 Trackmarks jeweils ins vordere drittel, also einige Wagenlängen hinter den anderen Trackmark: „B-Stadt Gleis 1a@4" und „BStadt Gleis 2a@4“ - was soll nun? Ein Zug mit 4 Wagen (z.B. 3 Wagen plus Lok) oder weniger wird nun an diesem Trackmark halten, mit mehr Wagen am anderen - also sollte der Platz dahinter groß genug für einen 3-Wagen-Lokzug sein. • So, dann brauchen die Portale, die Züge verschlucken sollen, noch einen Trackmark vor der Einfahrt. Das wars erstmal mit der Anlage, jetzt kommen die Regeln! © JS 2006 Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann 5 3. Wir regeln die Regeln damit sie später alles regeln 3.1 Fahrstraßen Zuerstmal gilt es die Fahrstraßen zu bestimmen. Dazu dient die Fahrweg-Rule („jsTRFFahrwege“), diese also hinzufügen. Fahrwege brauchen viel Platz, deshalb sollte man nicht zuviele in eine Rule-Instanz packen. Als Orientierung gibt es eine Speicherplatzanzeige im Fenster. Sollte diese zu 2/3 voll sein, sollte man besser eine neue Rule-Instanz hinzufügen und dort weitere Fahrstraßen anlegen. Fahrstraßen werden nach Bahnhöfen geordnet, ein Bahnhof ist nur in einer Rule-Instanz sichtbar. Also legen wir zuerst mal einen Bahnhof an. Dann geht es auch gleich los mit den Fahrwegen. Dazu legen wir davon eine neue an. Der Name ist erstmal egal, es kann also der Standardname übernommen werden. Diesen neuen Fahrweg bearbeiten wird nun (EDIT-Knopf). Ein Fahrweg braucht ein Startsignal, ein neuer Fahrweg hat sowas nicht, also sollte man es setzen (EDIT-Knopf). Aus der Liste wählt man nun das richtige Signal aus, am besten fängt man ein Einfahrt-Signal eines Bahnhofs an. Anschließend sieht man die Strecke hinter dem Signal im Fenster kompakt dargestellt. Vermutlich führt sie nicht zum gewünschten Ziel. Fahrwege sollten immer an einem anderen Signal enden. Über die Weichen-Knöpfe können Weichen umgestellt werden, so daß man sich bis zum Ziel vorarbeiten kann. Kommen unterwegs Sperrsignale vor, die man vielleicht auch als Teil der Fahrstraße haben möchte, drückt man den +-Knopf hinter dem Signal – wichtig: das Signal muß dazu einen Namen haben, sonst geht das nicht. Stimmt die Fahrstraße soweit, mal den Knopf mit diesem Pfeil hinter dem Namen des Fahrwegs am oberen Rand drücken. Dies erzeugt einen automatischen Namen für die Fahrstraße – bestehend aus Startsignal und dem Weg: entweder das Endsignal oder, wenn da, einem Trackmark oder was anderem aussagekräftigem auf dem Weg. Wer das nicht mag, kann den Namen auch selbst vergeben. Speichern drücken nicht vergessen, sonst passiert nichts! In der Liste muß man nun noch die Signalbilder einstellen – standardmäßig sind die rot, das wäre aber nicht so günstig, wenn Züge fahren sollen. Dazu auf die Ampel hinter den Signalnamen drücken. Hier gibts die erste Besonderheit: Vorsignale sind Teil einer anderen Fahrstraße, stehen aber in der aktuellen. Diese muß man ebenfalls aufnehmen (müssen deshalb einen Namen haben!), sonst endet die Fahrstraße zu früh. Aber wir dürfen diese nicht verstellen. Dazu gibt es das Signalbild „leer“ auf dem Ampel, also alle Lichter aus (moderne Vorsignale sind nicht als Signale sichtbar und brauchen deshalb nicht diese umständliche Lösung). Nun gibts noch eine nette Sache: Rot erzwingen. Dazu dient die Ampel hinter dem Fahrstraßennamen. Ist die aus, ist diese Funktion aus, ist sie auch Rot, ist die Funktion an. Rot erzwingen setzt alle Signale des Fahrwegs auf rot wenn keine Fahrstraße anliegt. Das ist ganz © JS 2006 Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann 6 günstig, da Trainz einem sonst schonmal dazwischenfunkt. Leider funktionieren die eingestellten Signalbilder nicht bei alle Signalen – zumindest was Grün und Gelb angeht. Signale, die eigene Setups haben, können sich da schonmal bockig verhalten und stellen trotzdem ein anderes Bild ein. Dann muß man in deren Setup alles weitere einstellen, damit das zusammenpaßt. Signale, die sogar das Signalbild ROT eigenständig abschalten, muß man über unsichtbare Weichen, die standardmäßig eine Zugfahrt verhindern, zur Kooperation überreden. Jetzt kommt noch ein etwas kompliziertere Teil: „MX-Weichen“. Trainz kann mit Kreuzungen nicht umgehen – oder besser, es ist ihm völlig egal. Den Zügen auch, aber dem Auge tuts weh! Dazu gibts MX-Weichen für Fahrstraßen. Eine MX-Weiche ist eine gesperrte Weiche außerhalb der Fahrstraße. Durch diese Sperre kann man jedoch andere Fahrstraßen daran hindern, geschaltet zu werden bzw. können andere Fahrstraßen die aktuelle Fahrstraße darin hintern: Eine MX-Weichen zu einer Weiche der Fahrstraße muß ebenfalls frei sein, damit die Fahrstraße geschaltet werden kann und sie wird dann freigegeben, wenn die Weiche selbst freigegeben wird, also wenn der Zug drüber weggefahren ist. Kommt noch die Alias-Gruppe: Alias-Gruppen braucht man nur bei Ausfahrt-Fahrstraßen – zumindest machen sie da am meisten Sinn. Diese Gruppen fassen mehrere Fahrstraßen zu einem Namen zusammen. Im Driver wird dann unter diesem Gruppennamen automatisch die richtige Fahrstraße ausgewählt – das sehen wir später im Detail. Eine Gruppe existiert nur innerhalb eines Bahnhofs. Zum setzen einer Gruppe den Gruppen-Alias-Namen bzw. den Text, daß keiner gesetzt ist, anklicken. Aus der Liste kann nun ein Gruppen-Name gewählt werden, die GruppenZugehörigkeit gelöscht werden („-- keine Gruppe“) oder eine neue Gruppe angelegt werden („-- neue Gruppe“), das dürfte bei einem neuen Bahnhof auch nötig sein. Eine neue Gruppe hat nun einen ziemlich blöden Namen. Um ihn zu ändern den „Edit“-Knopf drücken und einen Namen eingeben. Ein Gruppenname der dem Namen des Bahnhofs, in die alle Fahrstraßen diese Gruppe führen, ist am geeignetsten. Neue Signale-Features: Einige neuere Signale bieten zusätzliche Signalbilder. Unterstützt ein Signal diese und wurde für die Zusammenarbeit mit der Fahrweg-Regel ausgelegt, erscheint hinter der „Ampel“ für das Signalbild ein weiteres Ampel-Symbol mit der Bezeichnung „Xtra“. Damit lassen sich neben den normalen rot/gelb/grün Bildern die zusätzlichen Signalbilder des Signals für eine Fahrstraße einstellen (siehe auch Kapitel 4). Das war schon alles! Ok, man kann eine Fahrstraße kopieren, sehr hilfreich beim Einfahrtsignal, denn da reicht manchmal die Änderung einer Weiche und schon hat mal eine neue Fahrstraße fertig oder wenn man ein anderes Signalbild für die selbe Fahrstraße haben möchte. 3.2 Fahrstraßen wollen geschaltet werden Fahrstraßen kann man nun auf 2 Arten schalten: © JS 2006 Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann 7 1. von Hand über den DriverCommand „setpath“ 2. per Trigger 3.2.1 DriverCommand „setpath“ Mit diesem Befehl versucht der Fahrer, eine Fahrstraße zu setzen. Dabei kann er warten oder auch nicht. Die Fahrstraße wird jedenfalls, sobald frei, geschaltet, egal, ob er wartet oder nicht. Statt direkt einer Fahrstraße kann auch eine Alias-Gruppe ausgewählt werden. Dann wird der Fahrer die Fahrstraße zu schalten versuchen, die in seiner Fahrtrichtung beim nächsten Signal vor ihm beginnt. Coole Sache: gibt es mehrere Fahrstraßen, die dort beginnen und der gleichen Gruppe angehören, wird er die Fahrstraße nehmen, die frei ist. Führen also 2 Wege zum gleichen Ziel kann man so einen Zug automatisch auf den freien Weg schicken. Ob man den Fahrer warten läßt, bis die Fahrstraße da ist oder nicht, ist Geschmackssache. Während er wartet, kann er nichts andere machen. Wartet er nicht, kann er z.B. die Türen öffnen oder schließen oder losfahren. Letzeres wäre fatal wenn die Fahrstraße noch gar nicht da ist – zumindest sieht es blöd aus. Deshalb gibts dazu den „Warte bis nicht mehr Rot“ DriverCommand. Die Idee dabei ist diese: Ein Zug soll 2 Minuten Aufenthalt haben. Also wäre ein „warte 2 Minuten“ das beste. Was aber, wenn die Fahrstraße nicht sofort geschaltet werden kann? Dann dauert der Aufenthalt länger. Vielleicht unnötig länger, denn falls die Fahrstraße erst nach 1 Minute frei ist, hat er 3 Minuten Aufenthalt. Hätte aber ruhig nur 2 haben könne. Andererseits, wenn die Fahrstraße selbst nach 2 Minuten nicht frei ist, soll er ja nicht gleich losfahren. Die Lösung: Türen auf, setpath ohne Warten, warten 2 Minuten, warten bis nicht mehr rot, Türen zu, losfahren. 3.2.2 Trigger steuern Fahrstraßen Nun ist es auch nicht immer so toll, die Fahrstraße selbst schalten zu müssen: Wenn ein Zug einen Bahnhof anfährt will er noch nicht einige Kilometer vorher erstmal selbst seine Fahrstraßen schalten. Dazu hat Auran Trigger erfunden und dazu habe ich sie benutzt: FahrwegTrigger („jsTRF-FahrwegTrigger“) Diese Rule nun hinzufügen. Die Idee dahinter ist denkbar einfach: Ein Zug bekommt den Befehl, zu einem Trackmark zu fahren. Und wir stellen unterwegs einige Trigger aus und wenn er dort drüber fährt schalten wir die nötigen Fahrstraßen, damit er zu seinem Ziel kommt. 3.2.2.1 Vorbereitung Ok, nun haben wir die Rule drin und vielleicht schon geöffnet – aber wir haben ja noch gar keine Trigger gesetzt. Das holen wir jetzt erstmal nach, also Rule-Editor wieder schließen. Trigger wollen gut plaziert sein: © JS 2006 Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann • weit genug vor dem Esig eines Bahnhofs • nicht zuweit weg, sonst könnte es andere Züge behindern 8 Ein guter Kompromiß bei normalen Zügen ist 1 ½ Blocksignale vor dem Esig – also ein gutes Stück vor dem Vorsignal des Esig. Dann kommt der Trainz-Fahrer auch nicht durch seinen Röntgenblick auf die Idee wegen des roten Signals schonmal die Bremsen anzuwärmen. Trigger brauchen Namen, der FahrwegTrigger braucht Trigger mit guten Namen. Gute Namen haben ein (einstellbares) Prefix oder Namensmuster. Außerdem brauchen wir nur Trigger für die Einfahrt in einen Bahnhof, raus benutzen wir den setpath Befehl – fürs erste. Also einige Trigger wie beschrieben weit weg von der 1. Fahrstraße eines Bahnhofs. Als Namesmuster wählen wir „FW Trigger“ und dahinter dann etwas sprechendes wie ein Kürzel des Bahnhofs, zu dem der Trigger führt und dann noch ein Kürzel des Bahnhofs, von dem das Gleis kommt, z.B. „FW Trigger BS AS“ für einen Trigger auf dem Gleis vor dem Bahnhof „BStadt“ aus Richtung „A-Stadt“. Das machen wir dann nun mal für alle Bahnhöfe, ich geh solange eMails lesen, bis das fertig ist.... 3.2.2.2 Trigger verknüpfen Schon fertig? Naja, war auch nicht viel Mail da, n paar Dinger aus dem Forum, das kommt später... Ok, die Trigger sind da, zurück in die FahrwegTrigger Rule. Direkt auf der erste Seite unten steht was von Namensmuster – klingelts? Das sollten wir nun so ändern, wie wir das bei den Triggern benutzt haben. Das ist ganz hilfreich, denn Trigger gibts massig auch ohne Fahrweg-Trigger! Wie der Name Muster schon sagt, reicht es nicht, nur den Text einzugeben, man muß ein Suchmuster eingeben. Das kennt man doch von Dateinamen: „*“ als Platzhalter für „alles beliebige“. Es gibts noch mehr als „*“, Details dazu in der Hilfe in der Rule. Dummerweise geht der Stern bei Trainz nicht einzugeben. Deswegen muß man ein Ausrufezeichen „!“ eingeben. Das wird dann zu einem Stern umgesetzt. Im Beispiel geben wir „FW Trigger!“ ein und sehen „FW Trigger*“ nach dem OK. Dann gehts auch schon los. Die Bahnhöfe wurden bereits von den Fahrstraßen übernommen. Nun fügen wir einen neuen Trigger hinzu. Dann setzen wir dafür einige Fahrstraßen, die dieser schalten soll. Schließlich wird für jede Fahrstraße ein oder mehrere Ziele definiert. Ziele können alle Trackmarks sein, die angefahren werden sollen oder, viel besser, Suchmuster. Also statt „A-Stadt Gleis 1“ und „A-Stadt Gleis 2“ angeben zu müssen, reicht ein „A-Stadt Gleis *“. Kann die Regel später im Driver kein passendes Ziel finden, kann sie eine Default-Fahrstraße nehmen, dazu dient der kleine runde Schalter. Das ist aber nicht immer günstig, hängt von der Situation ob, z.B. reagiert der Trigger nicht richtungsabhängig, da kann ein Default schonmal ungünstig sein. Der Schalter dahinter sollte immer abgehakt sein! Hier wären wir im einfachen Fall damit fertig... Aber es geht noch mehr: © JS 2006 Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann • Unter-Fahrstraßen • Funktionen 9 Unter-Fahrstraßen sind Fahrstraßen, die geschaltet werden, wenn deren übergeordnete Fahrstraße erfolgreich geschaltet wurde. Ein Beispiel: Ein Bahnhof A-Stadt hat 2 Gleise, die auch aus unserer Beispielrichtung beide befahren werden können, die Fahrstraßen heißen „Esig1 Gleis 1“ und „Esig1 Gleis 2“. Und dahinter gibt es 2 Fahrstraßen, die den Bahnhof wieder verlassen „A1 weg“ von Gleis 1 aus und „A2 weg“ von Gleise 2 aus. Dem Trigger für die Einfahrt geben wir nun erstmal 2 Fahrstraßen und die Ziele: Esig1 Gleis 1 Gleis 1 Esig1 Gleis 2 Gleis 2 Damit kann nun ein Zug einfahren und er selbst muß dann per DriverCommand setpath die „A1 weg“ oder „A2 weg“ setzen – oder noch besser, wenn beide in einer Alias-Gruppe sind, muß nur noch „Richtung weg“ setzen. Aber was ist mit durchfahrenden Zügen? Dazu eine 3. Regel mit Unterpfad, dann haben wir insgesamt: Esig1 Gleis 1 Gleis 1 Esig1 Gleis 2 Gleis 2 Esig1 Gleis 1 A1 weg Für die 3. haben wir hier jetzt kein Ziel, das könnte nun entweder als Default gesetzt werden oder aber bzw. zusätzlich könnte man die Gleisnamen von anderen Bahnhöfen angeben, zu dem die durchfahrenden Züge fahren. Bleiben noch die Funktionen: Funktionen werden so wie Trigger angelegt und mit Fahrstraßen und Zielen versehen. Funktionen kann man dann von Triggern „aufrufen“ lassen. So kann man sich in manchen Situationen etwas Arbeit ersparen indem man Dinge nur 1x definieren muß. Funktionen werden zielabhängig aufgerufen werden, also statt einer Fahrstraße. Das wars auch schon damit. Eigentlich könnte man jetzt schon loslegen und fahren lassen. Und bevor es die TimetableRule gab, war das auch so nötig. Und es ist auch durchaus von Vorteil, das mal zu machen, um dann den Ablauf der Timetable-Rule besser zu verstehen. Im Prinzip muß man den Fahrern nun diese Befehlsfolge geben: Autodrive zu einem Trackmark eines Bahnsteigs, dort warten, wenn nötig per setpath die Fahrstraße zum Verlassen setzen lassen und dann weitefahren zum nächsten Trackmark. Was hat des noch mit diesem Haken-Schalter auf sich? Damit kann eine Fahrstraße abgeschaltet werden. Wozu soll das gut sein? Zu einem zum Testen, zum anderen werden wir das später sehen (Kapitel 3.5). © JS 2006 Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann 10 3.3 Timetable/Fahrplan-Regel Genau das, was da drüber so einfach steht, macht die Fahrplan-Regel („jsTRF-Fahrplan“) auch „nur“. Nur macht sie es etwas eleganter und vereinfacht die Arbeit und Wartung – und sie ermöglicht die manuelle Steuerung der Lok! Aber vorher ein paar Vorarbeiten, die nicht zwingend sind, aber den Komfort erhöhen: • Die „DestSignTable“ Rule hinzufügen und dort einige Zieltexte eingeben, die später auf den Zielschildern der Züge erscheinen sollen – sofern die verwendeten Züge das können. • Die ScheduleLib („jsTRF-Fahrauftragssammlung“) hinzufügen – dort kann man nämlich Befehlsfolgen ablegen um sie leicher wiederverwenden zu können. Im Moment brauchen wir aber noch keine. Aber vielleicht später am Ende des Tutoriums. So, nun aber die Fahrplan-Regel hinzu und bearbeitet. Fahrpläne in der Rule sind eine simple Sache und haben ein einfaches Prinzip: • „fahre irgendwohin, tu da was“ • mach nochmal was woanders Legen wir mal einen neuen Fahrplan an, geben ihm einen guten Namen und dann bearbeiten wir ihn. Es gibt zur Zeit 7 mögliche Fahrplan-Befehle (Detaillierte Beschreibung in Kapitel 3.6): • Copy Commands (copycommand) • Drive and Load (driveload) • Use other timetable (nexttimetable) • Portal and Exit (portalexit) • Restart (restart) • Shunting • Other timetable by variable value (nextbyvariable) • If by variable value (ifbyvariable) • If by driver name (ifbydrivername) Und selbst davon braucht man normalerweise nur 3, davon einen ganz oft. Aber bauen wir unseren Fahrplan weiter. Dazu einen „driveload“ hinzufügen – das ist nämlich der wichtigsten. Dort gibt man nun das Fahrziel des Zugs an, dann die Wartezeit am Ziel, ob er die Fahrtrichtung ändern soll nach den Ankunft, die Zugzielanzeige, eine Fahrstraße oder vielleicht sogar Befehle aus der ScheduleLib ausführen soll. Nungut, erstmal ein Fahrziel, also unser Trackmark für Gleis 1a in B-Stadt. Dort soll der Zug dann 2 Minuten warten. Zum verlassen braucht er eine Fahrstraße, diese setzen wir anhand der Gruppe – „B-Stadt C-Stadt“ wäre das richtig hier. Wichtig für die Optik ist noch die Seite an der der Bahnsteig ist, damit sich die Türen richtig öffnen. © JS 2006 Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann 11 Das war schon der 1. Eintrag, nun gleich nochmal einen „driveload“ hinzu. Als Fahrziel Gleis 2a in C-Stadt (da führt Gleis 1 ja hin, siehe oben). Als Wartezeit setzen wir dort mal 5 Minuten, außerdem ändern wir die Fahrtrichtung und die Zugzielanzeige und dann brauchen wir eine Fahrstraßengruppe zum rauskommen, Gruppe „B-Stadt“ (Auswahl „C-Stadt BStadt“). So, jetzt noch einen 3. Eintrag: „portalexit“. Dort wählen wir ein Portal und dann den Trackmark, der davor liegt. Was haben wir nun gemacht? Es wird folgendes passieren: Gar nichts. Es fehlt noch was! Wir müssen diesen Fahrplan einem Zug bzw. dessen Fahrer geben – entweder direkt oder über ScheduleLib oder Portal. Jedenfalls muß der Fahrer den DriverCommand „UseTimetable“ mit diesem Fahrplan ausführen. Das führt dazu, daß der Fahrplan hinten (!) an alle bestehenden Befehle des Fahrers angehängt wird. Gut, aber was passiert nun? Der Fahrer führt den Befehl „UseTimetable“ aus. Dieser hängt nun anhand oben definiertem Fahrplan einige neue Befehle an: Den Befehl, daß der Zug zu dem 1. Trackmark fährt („BStadt Gleis 1a“, die Türen auf der Seite aufmacht, die eingestellt wurde, dann einige Zeit wartet, eine Fahrstraße für die Ausfahrt setzt, nochmal etwas wartet bis die Wartezeit 2 Minuten insgesamt rum ist. Dann prüft der Fahrer, ob er grün hat, macht die Türen zu und fährt zum nächsten Trackmark, „C-Stadt Gleis 2a“. Dort angekommen, wieder Türen auf, etwas warten, Richtung wechseln (der Fahrer sitzt im Steuerwagen sofern vorhanden), noch etwas warten, Fahrstraße, warten, auf grün prüfen, Türen zu, losfahren. Kommt er nun am Trackmark vor dem Portal an, fährt es in das Portal und der Zug ist weg. 3.4 Und wie war das mit dem selbst fahren? Hat der Fahrer im Driver seinen Fahrplan bekommen, kann man auch selbst fahren. Dazu mal die Taste „k“ drücken (Tastatur!). Im erscheinenden Fenster die Falte „Manual Drive“ öffnen (das „+“ davor drücken“. Nun muß man den Zug mit der Kamera ausgewählt haben, den man fahren will. Dann erscheint hier die Möglichkeit, den Zug selbst zu fahren. Dort kann man das dann auch wieder beenden. Wenn der Zug nun laut Fahrplan fahren soll, kann man das dann selbst machen. 3.5 Fahrstraßen im Betrieb ändern Kommen wir zu diesem Haken-Schalter in der Fahrweg-Trigger (PathTrigger) Rule. Wie gesagt, sollte der im Normalfall gesetzt sein. Dann schaltet eine Fahrstraße automatisch. Ist der Haken weg, wird die Fahrstraße nicht beachtet. Das kann man aber im laufenden Betrieb ändern. Dazu dient ebenfalls das „K“-Fenster. Dort die Falte „PathTrigger“ öffnen. Es erscheint eine Liste aller definierten Trigger. Diese können nun ebenfalls geöffnet werden und dann sieht man die Fahrstraßen und Ziele des Triggers und wieder den Haken-Schalter und den runden Knopf. Der runde Knopf ist, wie vorher, der Default-Schalter und ermöglicht die Änderung der Default-Fahrstraße im Betrieb (diese Änderungen werden jedoch nicht gespeichert!). Außerdem kann über den Haken-Schalter (nah, schon eine Vermutung?) eine Fahrstraße im Betrieb ein- oder ausgeschaltet werden. Wozu das gut ist? Man könnte z.B. so dynamisch eingreifen um Züge umzuleiten (sofern man die nötigen Fahrstraßen vorder im © JS 2006 Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann 12 Editor definiert hat und diese dann am besten abgeschaltet hat). 3.6 Alle Fahrplan-Befehle Hier eine kurze Beschreibung alle verfügbaren Fahrplan-Befehle. Befehl Drive and Load (driveload) Restart Verwendung Fährt einen Zug zu einem Ziel, öffnet die Türen, ändern auf Wunsch Zugschilder und Fahrtrichtung, wartet, erlaubt CopyCommand vor und nach warten, setzt auf Wunsch Fahrstraße. Startet Fahrplan vom Anfang. Fahrplaneinträge danach werden nicht ausgeführt! Fährt einen Zug zu einem Trackmark, dann in ein Portal – der Trackmark sollte deshalb vor dem Portal sein. Falls der Zug im Portal für immer verschindet werden keine Fahrplaneinträge danach mehr ausgeführt! Fährt optional zu einem Trackmark, führt dann CopyCommand aus. Nach CopyCommand wird Fahrplan weiter ausgeführt! (restart) Portal and Exit (portalexit) Copy Commands (copycommand) Use other timetable Besonderheiten Erlaubt den Wechsel zu einem anderen Fahrplaneinträge danach Fahrplan. werden nicht ausgeführt! (nexttimetable) Shunting Wie „Drive and Load“ aber ohne Load – ein Zug fährt zu einem Ziel, öffnet jedoch keine Türen, ändern aber auf Wunsch Zugschilder und Fahrtrichtung, wartet, erlaubt CopyCommand und setzt eine Fahrstraße Other timetable by Erlaubt den Wechsel zu einem von bis Fahrplaneinträge danach zu 5 verschiedenen Fahrplänen anhand werden nicht immer variable value des Werts einer Session-Variable (0 für ausgeführt! (nextbyvariable) 1. Fahrplan, 1 für 2. usw.). Der Wert kann dabei gleich oder größer-gleich sein (wählbar). Paßt der Wert nicht (nur bei Prüfung auf Gleichheit möglich), wird der Fahrplan dahinter weiter ausgeführt. © JS 2006 Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann Befehl If by variable value (ifbyvariable) If by driver name (ifbydrivername) Dummy Verwendung 13 Besonderheiten Wenn-dann-Befehl. Der Vergleich mit einer Session-Variable (Vergleichart wählbar) mit einem numerischen Wert bewirkt die Fortsetzung des Fahrplans bei Gültigkeit des Vergleichs direkt hinter dem Befehl, ansonsten hinter dem Befehl „sonst“, der ebenfalls hinzugefügt wird. Danach wird der Fahrplan hinter dem „ende wenn“ Befehl fortgesetzt (wird auch hinzugefügt). Fügt gleich 3 Befehle ein: wenn, sonst, ende wenn (if, else, endif). Dazwischen müssen dann die Befehle. Wenn-dann-Befehl. Der Vergleich mit dem Namen des Fahrers des Fahrplan (Vergleich wählbar: gleich oder ungleich, Muster oder ungleich Muster) bewirkt die Fortsetzung des Fahrplans bei Gültigkeit des Vergleichs direkt hinter dem Befehl, ansonsten hinter dem Befehl „sonst“, der ebenfalls hinzugefügt wird. Danach wird der Fahrplan hinter dem „ende wenn“ Befehl fortgesetzt (wird auch hinzugefügt). Fügt gleich 3 Befehle ein: wenn, sonst, ende wenn (if, else, endif). Dazwischen müssen dann die Befehle. Macht nichts, führt nächsten Fahrplan aus. Als (optischer) Separator geeignet. If-Befehle dürfen nicht ineinander verschachtelt werden! If-Befehle dürfen nicht ineinander verschachtelt werden! (dummy) CopyCommand führt Befehle aus der Schedule-Library (Fahrerauftragssammlung) aus, die Befehle werden dabei eingefügt, nicht hinten angehängt. © JS 2006 Wie man eine Anlage automatisiert und trotzdem alles vernünftig fährt und man sogar selbst fahren kann 14 4. Zusätzliche Signalbilder Die Funktion der zusätzliche Signalbilder über die Fahrweg-Regel erfordert einige Anpassungen am Signal durch den Ersteller. Eine Beschreibung des Verfahrens ist verfügbar und wurde so bereits von einigen Signalerbauern umgesetzt. Je mehr Signale dieses Verfahren unterstützen, desto besser für den Anlagenerbauer. © JS 2006