User Tools

Site Tools


userpages:hermannk:tunnel_pfeifen_b-de
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


userpages:hermannk:tunnel_pfeifen_b-de [2022/08/25 08:16] (current) – created - external edit 127.0.0.1
Line 1: Line 1:
 +====== Tunnel pfeifen - Lösung ohne eigenen Rückmelder ======
 +[[:userpages#Hermann (hermannk)|Userpages - Hermann (hermannk)]]  -> [[:userpages:hermannk:tunnel_pfeifen-de|Tunnel pfeifen]] -> **[[:userpages:hermannk:tunnel_pfeifen_b-de|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 [[:rocrailini-gen-de#sound-abspieler|Sound-Abspieler]] \\
 +
 +|  hier geht es direkt zum [[:userpages:hermannk:tunnel_pfeifen_b-de#rocrail-arbeitsbereich|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 |  -  |
 +{{:userpages:hermannk: tunnel_pfeifen_kreuzenderblock_0.png?|}} \\
 +
 +
 +===== 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 [[:loc-fun-de#sound|Sound]]). \\
 +{{:userpages:hermannk:t_p_r_lok1_funktionen.png?|}} \\
 +siehe auch im Rocrail-Wiki [[:loc-fun-de#beschreibung|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. \\
 +{{:userpages:hermannk:t_p_r_aktion_definition.png?|}} \\
 +siehe auch im Rocrail-Wiki [[:actions-de#parameter1|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. \\
 +{{:userpages:hermannk: t_p_kb_rueckmelder_fbtp_aktionen.png?|}} \\
 +siehe auch im Rocrail-Wiki: \\
 +- [[:actionctrl-de#kennung|Kennung und Status]] \\
 +- [[:actionctrl-de#zeitgeber|Zeitgeber]] \\
 +- [[:actionctrl-de#alle_bedingungen_muessen_wahr_sein|Alle Bedingungen müssen wahr sein]] \\
 +- [[:actioncond-de|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!!! \\
 +{{:userpages:hermannk: t_p_kb_block_bktp_aktionen.png?|}} \\
 +siehe auch im Rocrail-Wiki: \\
 +- [[:actionctrl-de#kennung|Kennung und Status]] \\
 +- [[:actionctrl-de#zeitgeber|Zeitgeber]] \\
 +- [[:actionctrl-de#alle_bedingungen_muessen_wahr_sein|Alle Bedingungen müssen wahr sein]] \\
 +- [[:actioncond-de|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 \\
 +{{:userpages:hermannk:tunnel_pfeifen_kreuzenderblock_lang_mu_ja.png?|}} \\
 +<code>
 +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
 +</code>
 + \\
 +=== Fall 2 ===
 +von bk02 nach bk03; Pfeifen bei Abfahrt mit Verzögerung \\
 +{{:userpages:hermannk:tunnel_pfeifen_kreuzenderblock_kurz_mu_ja.png?|}} \\
 +<code>
 +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
 +</code>
 + \\
 +=== Fall 3 ===
 +von bk03 nach bk01 über bk02; Pfeifen bei Abfahrt mit Verzögerung \\
 +{{:userpages:hermannk:tunnel_pfeifen_kreuzenderblock_lang_gu_ja.png?|}} \\
 +<code>
 +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
 +</code>
 + \\
 +=== Fall 4 ===
 +von bk03 nach bk02; Pfeifen bei Abfahrt mit Verzögerung \\
 +{{:userpages:hermannk:tunnel_pfeifen_kreuzenderblock_kurz_gu_ja.png?|}} \\
 +<code>
 +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
 +</code>
 + \\
 +
 +===== 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  {{:userpages:hermannk: tunnel_pfeifen_kreuzenderblock.zip | Tunnel_Pfeifen_kreuzenderBlock}} \\ 
  
userpages/hermannk/tunnel_pfeifen_b-de.txt · Last modified: 2022/08/25 08:16 by 127.0.0.1