Table of Contents
Tunnel pfeifen - Lösung ohne eigenen Rückmelder
Userpages - Hermann (hermannk) → Tunnel pfeifen → Lösung ohne eigenen Rückmelder
Vorwort 1:
Damit wurde diese Dokumentation erstellt: Stand 19.08.2022
Attribut | Wert | Bemerkung |
---|---|---|
Steuerung | Rocrail | Version 2.1.2542+ (macOS "Monterey" on M2 CPU) |
Computer | MacBook Pro (M2) | macOS 12.5 (Monterey) |
Vorwort 2:
- die Nutzung dieser Lösung erfolgt auf eigenes Risiko;
- regelmäßige Datensicherungen des Rocrail-Arbeitsbereichs werden empfohlen;
Vorwort 3:
Falls der Rocrail-Server den Sound abspielen soll, muss das bitte individuell je nach Betriebssystem des Rocrail-Servers konfiguriert werden;
siehe dazu im Rocrail-Wiki Sound-Abspieler
hier geht es direkt zum Rocrail-Arbeitsbereich-Download |
Aufgabenstellung
Wenn eine Lokomotive in einen Tunnel fährt, soll sie pfeifen. |
In diesem Szenario wird vorausgesetzt, dass kein zusätzlicher Rückmelder verbaut werden kann.
Ferner wird durch lange und kurze Züge und durch eine Abzweigung vor einer Tunneleinfahrt die Aufgabenstellung erschwert.
Das Pfeifen ertönt hier immer nur vor der Einfahrt in den Tunnel und ist zeitgesteuert - also dementsprechend ungenau!
Für lange Züge ist in manuell erstellten Fahrstrassen der Block bk02 als "kreuzender Block" eingetragen.
Lösungen ohne eigenen Rückmelder:
Fall | von Block | nach Block | pfeifen | Bemerkung | Auslöser | Bedingung |
---|---|---|---|---|---|---|
1 | bk01 | bk03 | ja | langer Zug über kreuzenden Block bk02 | fb02- | [bk01-]-[bk03+] = locked |
2 | bk02 | bk03 | ja | kurzer Zug | bk02, depart | [bk02-]-[bk03+] = locked |
3 | bk03 | bk01 | ja | langer Zug über kreuzenden Block bk02 | bk03, depart | [bk03+]-[bk01-] = locked |
4 | bk03 | bk02 | ja | kurzer Zug | bk03, depart | [bk03+]-[bk02-] = locked |
5 | bk01 | bk04 | nein | langer Zug über kreuzenden Block bk02 | - | |
6 | bk02 | bk04 | nein | kurzer Zug | - | |
7 | bk04 | bk01 | nein | langer Zug über kreuzenden Block bk02 | - | |
8 | bk04 | bk02 | nein | kurzer Zug | - |
Lösung-Details
Für die Lösung werden folgende Teil-Schritte ausgeführt:
- das Pfeifen als Funktion in den Lokomotiven definieren;
- die Aktion für das Pfeifen definieren;
- die Aktion für das Pfeifen anwenden.
Lok-Funktion Pfeifen
Das Pfeifen ist als Funktion in den Eigenschaften einer Lok konfiguriert.
Das Pfeifen wird nicht mit einer starren Funktions-Nummer aufgerufen, sondern mit einer Funktions-"Beschreibung".
Die Länge des Pfeifens wird in jeder Lok individuell festgelegt, so dass man die Pfeifen-Funktion zwar einschalten muss, aber nicht auszuschalten braucht; die Lok-Funktion "Pfeifen" schaltet sich nach der Zeit "Zeitgeber x 100ms" selbst wieder ab.
Falls die Lok keine Sound-Lok ist, kann man das Pfeifen mit einer mp3-Datei (im Feld "Sound") durch den Rocrail-Server erzeugen lassen; (siehe dazu im Rocrail-Wiki Sound).
siehe auch im Rocrail-Wiki Beschreibung einer Funktion
die Aktion definieren
Die Aktion "ac_TunnelPfeifen" wird das Pfeifen der Lok, die durch den Tunnel fährt, ausführen.
Die Kennung der Lok wird durch den Stern ("*") allgemein gehalten; die tatsächliche Lok-Kennung ermittelt Rocrail über einen Block und wendet diese Lok-Kennung dann an. Daher ist es wichtig, dass das Rocrail-Objekt, in dem die Aktion angewendet werden soll, einen Bezug zu einem Block hat, damit über den Block die Lok-Kennung der Lok ermittelt werden kann, die die Aktion ausführen soll.
Es wird die Funktions-Beschreibung "Pfeifen" als Parameter verwendet, um nicht für jede Lok an eine bestimmte Funktions-Nummer gebunden zu sein.
siehe auch im Rocrail-Wiki Parameter bei einer Aktion vom Type Funktion
die Aktion anwenden
Fall | von Block | nach Block | pfeifen | Bemerkung | Auslöser | Bedingung |
---|---|---|---|---|---|---|
1 | bk01 | bk03 | ja | langer Zug über kreuzenden Block bk02 | fb02- | [bk01-]-[bk03+] = locked |
2 | bk02 | bk03 | ja | kurzer Zug | bk02, depart | [bk02-]-[bk03+] = locked |
3 | bk03 | bk01 | ja | langer Zug über kreuzenden Block bk02 | bk03, depart | [bk03+]-[bk01-] = locked |
4 | bk03 | bk02 | ja | kurzer Zug | bk03, depart | [bk03+]-[bk02-] = locked |
Fall 1: von bk01 nach bk03 über bk02; Pfeifen durch fb02- mit Verzögerung
Die Aktion "ac_TunnelPfeifen" wird ausgelöst, wenn der Rückmelder "fb02-" aktiviert wird (Status gleich "on").
Es wird eine zeitliche Verzögerung für das Pfeifen von 2 Sekunden ("Zeitgeber" = 2000 ms) vorgesehen.
Als zusätzliche Bedingung wird die Fahrstrasse "[bk01-]-[bk03+]" als "locked" (belegt) eingetragen.
Achtung: wird in einer eigenen Erweiterung dieses Beispiels hier mehr als eine Fahrstrasse eingetragen, so ist "Alle Bedingungen müssen wahr sein" = AUS einzustellen.
siehe auch im Rocrail-Wiki:
- Kennung und Status
- Zeitgeber
- Alle Bedingungen müssen wahr sein
- Aktionssteuerung - Bedingungen
Fall 2: von bk02 nach bk03; Pfeifen bei Abfahrt im Block bk02 mit Verzögerung
Die Lok steht im Block bk02 und der Rückmelder fb02- ist belegt (als IN-Melder); daher kann der Rückmelder fb02- nicht für das Pfeifen benutzt werden.
siehe Fall 3 und 4
Fall 3 und 4: von bk03 nach bk02 oder bk01; Pfeifen bei Abfahrt im Block mit Verzögerung
Vorbemerkung: hier wird die Abfahrt in Block bk03 dokumentiert.
Die Aktion "ac_TunnelPfeifen" wird ausgelöst, wenn die Lok im Block losfährt (Status gleich "depart").
Es wird eine zeitliche Verzögerung für das Pfeifen von 3 Sekunden ("Zeitgeber" = 3000 ms) vorgesehen.
Als zusätzliche Bedingung werden die Fahrstrasse "[bk03+]-[bk02-]" und "[bk03+]-[bk01-]" als "locked" (belegt) eingetragen.
Es ist "Alle Bedingungen müssen wahr sein" = AUS einzustellen!!!
siehe auch im Rocrail-Wiki:
- Kennung und Status
- Zeitgeber
- Alle Bedingungen müssen wahr sein
- Aktionssteuerung - Bedingungen
Fall 5 bis 8:
In all diesen Fällen fährt die Lok nicht durch den Tunnel; die definierten Bedingungen sind nicht wahr und die Aktion wird daher nicht ausgeführt.
der Betrieb
Fall | von Block | nach Block | pfeifen | Bemerkung | Auslöser | Bedingung |
---|---|---|---|---|---|---|
1 | bk01 | bk03 | ja | langer Zug über kreuzenden Block bk02 | fb02- | [bk01-]-[bk03+] = locked |
2 | bk02 | bk03 | ja | kurzer Zug | bk02, depart | [bk02-]-[bk03+] = locked |
3 | bk03 | bk01 | ja | langer Zug über kreuzenden Block bk02 | bk03, depart | [bk03+]-[bk01-] = locked |
4 | bk03 | bk02 | ja | kurzer Zug | bk03, depart | [bk03+]-[bk02-] = locked |
Fall 1
von bk01 nach bk03 über bk02; Pfeifen durch fb02- mit Verzögerung
23:14:23 id=lc_lang: addr=1, protocol=default, calculated speed=22, command=- V=80, dir=fwd, lights=off, throttleid=- 23:14:31 simulate fb uid= addr=0:2 state=false regval=42 code=,,, (fb01-) 23:14:34 simulate fb uid= addr=0:3 state=true regval=5 code=,,, (fb02+) 23:14:35 simulate fb uid= addr=0:3 state=false regval=135 code=,,, (fb02+) 23:14:37 simulate fb uid= addr=0:4 state=true regval=98 code=,,, (fb02-) 23:14:39 id=lc_lang decoder 1 f1(1)=on (Pfeifen mit 2 Sekunden Verzögerung) 23:14:39 id=lc_lang decoder 1 f1(1)=off
Fall 2
von bk02 nach bk03; Pfeifen bei Abfahrt mit Verzögerung
08:55:28 id=lc_kurz: addr=2, protocol=default, calculated speed=22, command=- V=80, dir=fwd, lights=off, throttleid=- 08:55:30 id=lc_kurz decoder 2 f4(1)=on (Pfeifen mit 2 Sekunden Verzögerung) 08:55:31 id=lc_kurz decoder 2 f4(1)=off
Fall 3
von bk03 nach bk01 über bk02; Pfeifen bei Abfahrt mit Verzögerung
09:16:59 id=lc_lang: addr=1, protocol=default, calculated speed=22, command=- V=80, dir=rev, lights=off, throttleid=- 09:17:02 id=lc_lang decoder 1 f1(1)=on (Pfeifen mit 3 Sekunden Verzögerung) 09:17:02 id=lc_lang decoder 1 f1(1)=off
Fall 4
von bk03 nach bk02; Pfeifen bei Abfahrt mit Verzögerung
09:19:51 id=lc_kurz: addr=2, protocol=default, calculated speed=22, command=- V=80, dir=rev, lights=off, throttleid=- 09:19:54 id=lc_kurz decoder 2 f4(1)=on (Pfeifen mit 3 Sekunden Verzögerung) 09:19:54 id=lc_kurz decoder 2 f4(1)=off
Fazit
In dieser Lösungs-Variante, ist der Aufwand für die Realisierung zwar größer, aber immer noch überschaubar.
Wichtig ist, die Aktion von einem Rocrail-Objekt auslösen zu lassen, welches Bezug zu einem Block hat, der die Lok "kennt", damit genau diese Lok das Pfeifen ausführt.
Jeder kann für sich die Aufgabenstellung erweitern.
starke Hinweise:
- vorher immer eine Datensicherung machen!
- anwenden auf eigene Gefahr!
Rocrail-Arbeitsbereich
Der Arbeitsbereich Tunnel_Pfeifen_kreuzenderBlock