User Tools

Site Tools


userpages:nice2have:fahrplananzeiger-de

Fahrplananzeiger

Einfaches RangierbeispielPositionsbestimmungErweitertes RangierbeispielRangieren mit FrachtscheinenFahrplananzeiger

Fahrplananzeiger zur Anzeige von stündlichen und absoluten Fahrplänen

Dieses Projekt wird nicht mehr weiter gepflegt - Bitte dem neuen Projekt folgen !
iot-fahrplananzeiger-de

Funktionsweise


Der Fahrplananzeiger bietet die Möglichkeit Taktfahrpläne (stündliche Fahrpläne) oder auch Fahrpläne mit fest voreingestellten Abfahrtzeiten (absolute Fahrpläne) anzuzeigen. Dabei werden, je nach Einstellung, auch Fahrpläne berücksichtigt, die noch in der Zukunft liegen. Ferner wird angezeigt:
1. Die Ankunft eines Zuges im Bahnhof (optional)
2. Die aktueller Abfahrtzeit bei Verspätungen (optional)
3. Die Zeit in Minuten der Verspätung (optional)
4. Wenn ein stündlicher Fahrplan aufgrund von Verspätung nicht ausgeführt wird als "Zug fällt aus"

Es können dabei in einer eigenen Gleisplanebene max. 10 Zeilen dargestellt werden. Diese kann man z.B. in einer eigenen Rocview-Instanz, oder über RocWeb darstellen. Außerdem gibt es eine Ausgabe in ein Textfeld zur Weitergabe an ein externes Display. Die Ausgabe in diesem Textfeld erfolgt durch "Komma" getrennt und ein Zeilenumbruch wird mit einem Pipe "|" dargestellt. In einer Zeile werden folgende Informationen angezeigt:
1. Ein grüner Stern als Symbol für die Ankunft des Zuges
2. Die planmäßige Abfahrtzeit
3. Die aktuelle Abfahrtzeit bei Verspätungen
4. Die Zugnummer
5. "über" für Haltepunkte zwischen Start- und Zielbahnhof
6. Der Zielbahnhof
7. Das Gleis im Bahnhof, in dem der Zug hält
8. Weitere Hinweise (z.B. Kurzzug, Bordrestaurant, Sonderzug etc.)

Dabei kann die Reihenfolge der Felder natürlich verändert werden. Jedoch ist es zwingend erforderlich für die korrekte Funktionsweise des Anzeigers, das keine Felder gelöscht werden. Nicht benötigte Felder kann man auf Text- und Hintergrundfarbe gleichsetzen. Einzelne Scripte sorgen dann dafür, das Fahrpläne in der Zukunft angezeigt und Status-Änderung vom Zug, der nach Fahrplan fährt, an den Anzeiger weitergegeben werden.

Aufgaben der Scripte


Insgesamt werden für den Fahrplananzeiger 10 Scripte und eine vorgefertigte Gleisplan-Datei benötigt. Die Scripte werden über Aktionen in Rocrail eingebunden.
Hinweis: Das Script "fpa_update.xml" und das Script "fpa_prozess.xml" werden von den anderen Scripten über eine "<sub>-Routine aufgerufen. Deshalb müssen diese beiden Scripte entweder direkt im Arbeitsbereich oder im Unterordner für Scripte liegen. Wer sich für den Fahrplananzeiger einen eigenen Unterordner im Arbeitsbereich oder im Script-Ordner anlegt, muß in den einzelnen Scripten entsprechend die <sub>-Routinen anpassen !

fpa_reset.xml

Dieses Script führt einen Reset vom Anzeiger durch, d.h. alle Textfelder werden geleert und benötigte Variablen für die Anzeige angelegt. Die Variablen mit der Kennung 0 bis 9 sind für die Darstellung im Gleisplan und werden auf die einzelnen Textfelder übertragen. Die Variable "FPA" übergibt den Inhalt an das Textfeld "FPA" zur weiteren Ausgabe an einem externen Display.

fpa_make_list.xml

Dieses Script generiert eine Liste von möglichen Fahrplänen, die für den Anzeiger in Frage kommen, in Form von Variablen. Es wird die Liste aller Fahrpläne durchgegangen und für "stündliche" und "absolute" Fahrpläne eine Variable mit Parametern angelegt, die später weiterverarbeitet und ausgewertet werden. Man findet also in der Liste der Variablen, Variablen mit der Kennung vom Fahrplan wieder. Das Script ist so voreingestellt, daß es max. 10 Einträge in einem Fahrplan verarbeiten kann. Das bedeutet, daß spätestens im 10. Eintrag der Bahnhofsblock stehen sollte, für den der Anzeiger gilt. Dieser Vorgang dauert länger und sollte immer mit einem Fahrplan-Reset ausgeführt werden.

fpa_takt.xml

Dieses Script füllt den Anzeiger mit Fahrplänen in der Zukunft. Dabei wird die Liste der Fahrpläne durchlaufen und in Kombination mit der angelegten Liste von Variablen zu den Fahrplänen Einträge für den Anzeiger generiert und in die Variablen 0 bis 9 geschrieben. Hier ist es notwenig eine Variable mit der Kennung "Vorschauzeit" manuell (selber) anzulegen. Im Feld Wert wird bei dieser Variablen die Zahl in Minuten für die Vorschauzeit eingetragen. Also wieviele Minute in die Zukunft für die Anzeige von Fahrplänen geschaut werden soll. Am Ende vom Script wird eine Aktualisierung der Anzeige angestoßen. Dieses Script wird in regelmäßigen Abständen (z.B. alle 10 bis 20 Modellminuten) durch eine Aktion ausgeführt. (Diese Aktion ist manuell anzulegen)

fpa_update.xml

Dieses Script aktualisiert die Anzeige in der Gleisplanebene oder an einem externen Display. Das Script benötigt keine eigene Aktion. Es wird am Ende von den anderen Scripten aufgerufen (<sub>-Routine s.h. Hinweis oben).

fpa.xml

Mit diesem Script aktualisiert der Zug beim Start mit einem Fahrplan die dazugehörige Variable mit der Fahrplankennung. Es wird über eine Aktion im ersten Fahrplaneintrag eines jeden Fahrplans eingebunden. Das ist u. A. deshalb notwendig, damit nicht abgearbeitete Fahrpläne erkannt werden.

fpa_destination.xml

Mit diesem Script setzt der Zug die Ankunft im Bahnhof, für den der Anzeiger gilt. In der Anzeige erscheint dadurch ein grüner Stern. Es wird über eine Aktion im Fahrplaneintrag beim Bahnhofsblock eines jeden Fahrplans eingebunden. Dieses ist jedoch nur notwendig, wenn man sich das auch anzeigen lassen möchte, also optional. Am Ende vom Script wird die Aktualisierung der Anzeige angestoßen.

fpa_delay_oebb.xml

Dieses Script berechnet, bei verspäteter Ankunft im Bahnhof, die aktualisierte Abfahrtzeit (Anzeige nach österreichischem Vorbild) . Es wird die Blockwartezeit mit berücksichtigt. Es wird über eine Aktion im jeweiligen Bahnhofsblock bei "occupied" ausgeführt. Dieses ist jedoch nur notwendig, wenn man sich das auch anzeigen lassen möchte, also optional. Wichtig ist, daß man dafür eine Variable mit der Kennung "Teiler" manuell (selber) angelegt hat. Als Wert muß in dieser Variablen der Wert vom voreingestellten Teiler eingegeben werden. Am Ende vom Script wird die Aktualisierung der Anzeige angestoßen.

fpa_delay_db.xml

Dieses Script berechnet die Verspätung in Minuten von einem Zug. Die Ausgabe erfolgt im Anzeiger im Feld für die Hinweise (Anzeige nach deutschem Vorbild). Es wird über eine Aktion im Fahrplaneintrag beim Block vor dem Bahnhofsblock eines jeden Fahrplans eingebunden. Dieses ist jedoch nur notwendig, wenn man sich das auch anzeigen lassen möchte, also optional. Am Ende vom Script wird die Aktualisierung der Anzeige angestoßen.

fpa_leave.xml

Dieses Script markiert den Eintrag für den Fahrplananzeiger zum Löschen, wenn der Zug den Bahnhof verlassen hat. Es gibt zwei Möglichkeiten dieses Script einzubinden:
1. Es wird über eine Aktion im Folgeblock hinter dem Bahnhofsblock eines jeden Fahrplans eingebunden. Die Lösch-Markierung wird dann bei "Enter" dieses Blocks gesetzt. Das funktioniert aber nur, wenn dieser Block nicht der letzte Eintrag in einem Fahrplan ist.
2. Es wird über eine Aktion in die jeweiligen Bahnhofsblöcke mit "depart" eingebunden. Dann wird die Lösch-Markierung beim Verlassen des Bahnhofs gesetzt.
Am Ende vom Script wird die Aktualisierung der Anzeige angestoßen.

fpa_prozess.xml

Dieses Script steuert die Aktuallisierung des Fahrplananzeigers. Es wird durch das Script "fpa_update.xml" aufgerufen. Es muß also keine Aktion dafür angelegt werden. (<sub>-Routine s.h. Hinweis oben)

Manuell anzulegende Variablen

Vorschauzeit


Vorschauzeit für stündliche Fahrpläne:
Die Variable "Vorschauzeit" muß von einem selbst (manuell) angelegt werden und bietet die Möglichkeit, je nach Anzahl von Fahrplänen und deren Taktung, die Anzahl der angezeigten Fahrpläne zu steuern (stündliche Fahrpläne). Die Variable wird nicht durch die Scripte automatisch erzeugt. Unter "Wert" ist eine Zahl als Modellminute einzugeben. Der Anzeiger ist auf max. 10 begrenzt. Wenn nicht alle Fahrpläne angezeigt werden, sollte man diesen Wert reduzieren.

Vorschauzeit für absolute Fahrpläne:
Die Variable "VZ_aFP" wird durch das Script "fpa_reset.xml" erzeugt, bzw. überschrieben. In dieser Variablen ist die Vorschauzeit für "absolute Fahrpläne" als Wert in Stunde/Stunden eingetragen. Voreingestellt ist der Wert "5", also 5 Stunden Vorschauzeit (z.B. von 10:00 Uhr bis 14:59 Uhr). Der voreingestellte Wert "5" kann im Script fpa_reset.xml auch geändert werden.
<codexml><vr id="VZ_aFP" value="5"/></code>

Einbindung des Fahrplananzeigers in Rocrail

Als Erstes einmal die Scripte in den Arbeitsbereich kopieren. Wenn es in dem Arbeitsbereich einen Unterordner für Scripte gibt, der auch in den Rocrail-Eigenschaften definiert ist, dann natürlich dorthin kopieren. Als Nächstes in Rocrail eine neue Gleisplanebene anlegen. In diese wechseln und dann über "Datei → Ebene importieren" die Fahrplananzeiger_V4.xml importieren.

Danach empfiehlt es sich bereits die benötigte Variable "Vorschauzeit" manuell anzulegen. Die weiteren Schritte:

Wichtige Einstellungen in Rocrail

Bei den Fahrplänen ist es wichtig, daß im die Option Haltepunkt richtig gesetzt ist und das die minimale Wartezeit auf mindestens einer Minute steht, damit die "aktuelle Abfahrtzeit" bei Verspätungen richtig berechnet wird. Außerdem ist bei den jeweiligen Lok-Eigenschaften unbedingt die Option "Fahrplan Abfahrtzeiten benutzen" zu setzen und die Option "Eigene Wartezeit in Blöcken verwenden" zu deaktivieren.

- Für die Scripte "fpa.xml , fpa_destination.xml , fpa_delay_oebb.xml oder fpa_delay_db.xml und fpa_leave.xml eine Aktion anlegen und die Scripte dort jeweils einbinden.

- Für das Script "fpa_takt.xml" eine Aktion anlegen, die mit "Benutze" und "Jede" mit einer Einstellung von 10 bis 20 Modellminuten ausgeführt wird.

Hier gibt es jetzt zwei Möglichkeiten. Entweder man setzt zusätzlich den Haken bei "Aktivieren". Dann wird das Script automatisch in dem angegebenen Zeitabstand ausgeführt, oder man legt dafür zusätzlich einen Ausgang als Schalter an und bindet die Aktion an den Schalter. Dann wird das Script nur ausgeführt, wenn der Schalter auch auf "on" (Aktionssteuerung "on")steht. Dieses Vorgehen empfiehlt sich, wenn man sowohl mit dem Fahrplänen, als auch ohne Fahrpläne fahren möchte. Dann erfolgt bei Schalter "off" auch keine Aktualisierung . Zusätzlich sollte man dann auch die anderen Aktionen für die Scripte mit einer Bedingung "Ausgang / Schalter on" an den entsprechenden Positionen einbinden.

- Für das Script "fpa_reset.xml" und fpa_make_list.xml eine Aktion anlegen, die an einen Ausgang, als Taster definiert, angebunden wird (Aktionssteuerung "on"). Der Taster muß ebenfalls manuell angelegt werden, da ihn sicher jeder anders platzieren möchte.

- Über den Script-Editor in Rocrail oder einen separaten Script-Editor das Script "fpa_make_list.xml" öffnen. Hier müssen noch die einzelnen Blöcke vom Bahnhof eingetragen werden. Das Script ist nicht groß und die Stelle für die Einträge leicht zu finden.
<codexml> <!– HIER MUESSEN ALLE BLOECKE VOM BAHNHOF EINGETRAGEN WERDEN ! –> <if condition="@FPA-F1 = BB1|@FPA-F1 = BB2|@FPA-F1 = BB3" alltrue="false"> <!– ——————————————————— –> </code>
- Die Scripte "fpa.xml" , "fpa_destination.xml" und evtl. "fpa_delay_db.xml" werden jetzt in den Fahrplänen an entsprechender Stelle eingebunden. Zusätzlich wird in das Freitextfeld vom ersten Eintrag die Zugnummer (z.B. RE 22222), über (z.B. Frankfurt-Köln-Bremen), Ziel (z.B. München), Hinweise (z.B. Kurzzug) eingetragen. Die Angaben werden jeweils durch ein Komma getrennt. Möchte man keine Hinweise angeben muß trotzdem hinter dem Ziel ein Komma gesetzt werden.

- Das Script "fpa_delay_oebb.xml" wird (optional) in den jeweiligen Bahnhofsblöcken mit der Aktionssteuerung "occupied" eingebunden. Zusätzlich wird in diesen Blöcken im Feld "Beschreibungen" die Gleisnummer (z.B. 1, 2a etc.) eingetragen.

- Das Script "fpa_leave.xml" kann entweder wie die Scripte "fpa.xml" und "fpa_destination.xml" in den Fahrplänen eingebunden werden (Dann im Folgeblock vom Bahnhofsblock), oder wie das Script "fpa_delay_oebb.xml" in den jeweiligen Bahnhofsblöcken mit der Aktionssteuerung "depart".

- Damit die Modelluhr im Fahrplananzeiger funktioniert, muß man noch eine Aktion anlegen, die das Textfeld "Modellzeit" jede Modellminute aktualisiert.

- Über den angelegten Taster einen Fahrplan-Reset ausführen. Damit werden benötigte Variablen angelegt und die fpa_make_list.xml ausgeführt.
<codexml> 18:59:38 Taktfahrplan-Liste erstellt 18:59:35 Reset des Fahrplananzeigers abgeschlossen, bzw. benötigte Variablen angelegt </code>
Wenn man alles richtig gemacht hat, sollte der Fahrplananzeiger jetzt funktionieren. Der Schalter (Update), der sich noch sichtbar in der Anzeige vom Fahrplananzeiger befindet, kann unsichtbar gemacht werden, in dem man über die Eigenschaften den Haken bei "Anzeigen" entfernt. Er darf nicht gelöscht werden, da über diesen Ausgang sichergestellt wird, daß keine Scripte die Aktualisierung der Anzeige doppelt anstoßen.

Dateien

Hier wird immer die aktuellste Version vom Fahrplananzeiger verfügbar sein. Bei einem Update der Scripte ist es nicht notwendig, die Fahrplananzeiger_V4.xml neu zu importieren / anzulegen. Dieses ist nur bei der ersten Einrichtung erforderlich.
fahrplananzeiger.zip
Update: 01.02.17 - Korrekturen bei max. erreichten Einträgen
Update: 02.02.17 - Korrekturen bei Variablen und "Zug fällt aus". <trace> Änderung: Ausgabe von Fahrplan-Kennung anstatt von Lok-Kennung
Update: 05.02.17 - Begrenzung der Vorschauliste aufgehoben. Es können jetzt bis zu 59 Minuten in der Vorschau generiert werden. Angezeigt werden im Gleisplan aber weiterhin nur 10 Einträge (unsortiert). Das Textfeld "FPA" enthält alle Einträge. Zeit als Zahl in der Textfeld-Ausgabe "FPA" hinzugefügt (Vorbereitung auf Sortierung der Einträge). Ausgang "Update" obsolet. Umstellung auf Variable "process". Ausgang kann gelöscht werden.
Update: 05.02.17 - Nachtrag - Fehlerkorrektur in "fpa_make_list.xml" Danke an "Semilasso"
Update: 07.02.17 - ab Revision 11.921+ Variablen bereinigt. D-0 bis D-** wird nicht mehr benötigt. var*B bis var*D werden nicht mehr benötigt. Feature-Erweiterung: Sortierung der ersten 10 Einträge
Update: 31.10.17 - Erzeugung von temporären Variablen, Fehlerkorrekturen
Update: 03.11.17 - Sortierung der Einträge, Wegfall der Variablen "Teiler", neue Variable für die Vorschau "absoluter Fahrpläne" ab Revision 12.944+
Update: 27.12.17 - Korrektur bei Sortierung der Einträge. Es werden jetzt max. nur 10 Einträge sortiert.

userpages/nice2have/fahrplananzeiger-de.txt · Last modified: 2018/11/12 08:56 by 127.0.0.1