User Tools

Site Tools


userpages:hermannk:tunnel_pfeifen_b-de

Tunnel pfeifen - Lösung ohne eigenen Rückmelder

Userpages - Hermann (hermannk)Tunnel pfeifenLö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

userpages/hermannk/tunnel_pfeifen_b-de.txt · Last modified: 2022/08/25 08:16 by hermannk