User Tools

Site Tools


userpages:babbel:zbl_bss

Userpages - Berthold (Babbel)

ZBL Statussignal via WIO und Neopixel auf dem Stellpult.

Auf dem Stellpult befinden sich 44 RGB Leds, mit WS2811 und WS2812 Chips, hier die Übersicht.

LED-Nr.png

Für die Anzeige auf dem Stellpult benötigen wir pro Block ein Statussignal und jeweils einen Ausgang für dieses.
co_ZBL_Blockstatus_bk1
co_ZBL_Blockstatus_bk2
co_ZBL_Blockstatus_bk3

ZBL_bss_plan.png

Die Signale in den jeweiligen Block eintragen und den Router laufen lassen.
https://wiki.rocrail.net/doku.php?id=block-signals-de#status-signal

Auf meinem Stellpult wird der Status des Blocks in den LED‘s der Start/Zieltasten (3,21,26) angezeigt, also trage ich die Adressen dieser unter Schnittstelle des jeweiligen Ausgangs ein.
Natürlich kann auch eine separate LED für den Blockstatus verwendet werden.

Für die Anzeige benötigen wir ein XML Skript welches den Ausgang für die LED‘s je nach Status des Signals/Blocks ändert.
Alternativ müsste sonst pro Aspekt und Signal ein Ausgang (8Stück) erstellt werden, hier zeigt sich der Vorteil von XML es kann komplexe Vorgänge reduzieren.

Signalbedeutung

In dem Skript werden, je nach Begriff, die Farben des jeweiligen Ausgangs geändert und blinken aktiviert oder deaktiviert.
Für mich habe ich es wie folgt umgesetzt, dies darf sich natürlich jeder wie er möchte anpassen.

Zeichen, Farbe Status Begriff LED-Stellpult
-, grau Keine Information 0 aus
X, grau Stopp 1 weiß Dauer leuchtend
A, grün Automatk; fährt 2 grün Dauer leuchtend
A, blau Halbautomatik; fährt 3 blau Dauer leuchtend
O, grau Leerlauf 4 weiß blinkend
W, grün Automatik; warten 5 grün blinkend
W, blau Halbautomatik; warten 6 blau blinkend
W, gelb Kein Ziel gefunden; Für mehr Informationen Trace prüfen. 7 gelb blinkend
<?xml version="1.0" encoding="UTF-8"?>
<xmlscript trace="true">
 
<vr id="vr_SZTS_cobk_block" text="" value="" generated="true"/> <!--Blockkennung aus Signal -->
<vr id="vr_SZTS_aspects_Statussignal" text="" value="" generated="true"/> <!--Aspekt des Statussignals  -->
<vr id="vr_SZTS_co_Statussignal" text="co_SZT_" value="" generated="true"/> <!--Anfang der ID des ZBL Ausgangs für das Statussignal  -->
<vr id="vr_SZTS_co_Statussignal" text="co_ZBL_Blockstatus_" value="" generated="true"/> <!--Anfang der ID des ZBL Ausgangs für das Statussignal  -->
<vr id="vr_SZTS_tx_Statussignal" text="tx_SZT_bss_" value="" generated="true"/> <!--Anfang der ID des Textfelds für den Blockstatus  -->
<vr id="vr_SZTS_tx_bss" text="" value="" generated="true"/> <!--Variable zum zusammensetzen der Kennung des Textfeld  -->
 
	<query vr="vr_SZTS_cobk_block" table="sglist" id="%callerid%" get="blockid"/>  <!-- Block ID des Signals ermitteln -->
 
		<query vr="vr_SZTS_aspects_Statussignal" table="sglist" id="%callerid%" get="aspect"/>  <!--Aspekt des Statussignals ermitteln -->
 
				 <if condition="@vr_SZTS_aspects_Statussignal = 0">
						<then>
						<trace text="Der Staus von @vr_SZTS_cobk_block ist Aspekt 0."/>
						<vr id="vr_SZTS_co_ZBL_bss" text="@vr_SZTS_co_Statussignal @vr_SZTS_cobk_block" format="%s%s"/> 
						<co id="@vr_SZTS_co_ZBL_bss" cmd ="on" value="50" blink="false">
						<color red="0" green="0" blue="0"/>
						</co>
						</then>
				</if>
 
				 <if condition="@vr_SZTS_aspects_Statussignal = 1">
						<then>
						<trace text="Der Staus von @vr_SZTS_cobk_block ist Aspekt 1."/>
						<vr id="vr_SZTS_co_ZBL_bss" text="@vr_SZTS_co_Statussignal @vr_SZTS_cobk_block" format="%s%s"/> 
						<co id="@vr_SZTS_co_ZBL_bss" cmd ="on" value="50" blink="false">
						<color red="255" green="255" blue="255"/>
						</co>
						</then>
				</if>
				 <if condition="@vr_SZTS_aspects_Statussignal = 2">
						<then>
						<trace text="Der Staus von @vr_SZTS_cobk_block ist Aspekt 2."/>
						<vr id="vr_SZTS_co_ZBL_bss" text="@vr_SZTS_co_Statussignal @vr_SZTS_cobk_block" format="%s%s"/> 
						<co id="@vr_SZTS_co_ZBL_bss" cmd ="on" value="50" blink="false">
						<color red="0" green="255" blue="0"/>
						</co>
						</then>
				</if>
				 <if condition="@vr_SZTS_aspects_Statussignal = 3">
						<then>
						<trace text="Der Staus von @vr_SZTS_cobk_block ist Aspekt 3."/>
						<vr id="vr_SZTS_co_ZBL_bss" text="@vr_SZTS_co_Statussignal @vr_SZTS_cobk_block" format="%s%s"/> 
						<co id="@vr_SZTS_co_ZBL_bss" cmd ="on" value="50" blink="false">
						<color red="0" green="0" blue="255"/>
						</co>
						</then>
				</if>
				 <if condition="@vr_SZTS_aspects_Statussignal = 4">
						<then>
						<trace text="Der Staus von @vr_SZTS_cobk_block ist Aspekt 4."/>
						<vr id="vr_SZTS_co_ZBL_bss" text="@vr_SZTS_co_Statussignal @vr_SZTS_cobk_block" format="%s%s"/> 
						<co id="@vr_SZTS_co_ZBL_bss" cmd ="on" value="50" blink="true">
						<color red="255" green="255" blue="255"/>
						</co>
						</then>
				</if>
				 <if condition="@vr_SZTS_aspects_Statussignal = 5">
						<then>
						<trace text="Der Staus von @vr_SZTS_cobk_block ist Aspekt 5."/>
						<vr id="vr_SZTS_co_ZBL_bss" text="@vr_SZTS_co_Statussignal @vr_SZTS_cobk_block" format="%s%s"/> 
						<co id="@vr_SZTS_co_ZBL_bss" cmd ="on" value="50" blink="true">
						<color red="0" green="255" blue="0"/>
						</co>
						</then>
				</if>
				 <if condition="@vr_SZTS_aspects_Statussignal = 6">
						<then>
						<trace text="Der Staus von @vr_SZTS_cobk_block ist Aspekt 6."/>
						<vr id="vr_SZTS_co_ZBL_bss" text="@vr_SZTS_co_Statussignal @vr_SZTS_cobk_block" format="%s%s"/> 
						<co id="@vr_SZTS_co_ZBL_bss" cmd ="on" value="50" blink="true">
						<color red="0" green="0" blue="255"/>
						</co>
						</then>
				</if>
				 <if condition="@vr_SZTS_aspects_Statussignal = 7">
						<then>
						<trace text="Der Staus von @vr_SZTS_cobk_block ist Aspekt 7."/>
						<vr id="vr_SZTS_co_ZBL_bss" text="@vr_SZTS_co_Statussignal @vr_SZTS_cobk_block" format="%s%s"/> 
						<co id="@vr_SZTS_co_ZBL_bss" cmd ="on" value="50" blink="true">
						<color red="255" green="255" blue="0"/>
						</co>
						</then>
				</if>	
 
</xmlscript>

Das Skript wird unter den Aktionen als „SZT_Blockstatus_Signal.xml“ hinterlegen und in den Statussignalen bei den Aktionen eingetragen.

SZT_bss_Aktion_sg.png

Das war es schon nun wird der Status des Blocks über die LED angezeigt.

Hier die gezipte Plandatei.
szt_skript_zbl_statussignal.zip

Erstellt mit den Versionen Rocrail 2.1.2261 und WIO 510

userpages/babbel/zbl_bss.txt · Last modified: 2023/12/10 09:41 by babbel