![]() |
![]() |
||
xmlskript |
Lok-Geschwindigkeitvirtueller In-Melder
Pfad: mknetz/Eisenbahn/Digital/RocRail/xmlskript |
||
Impressum |
|
Auf unserer Anlage ist es ein häufiges Problem, dass ein Bahnhofsgleis z.B. Karlsbad Gleis 4 nur einen Rückmelder, hier r125, hat.
Der Rückmelder r125 soll nun einen virtuellen In-Melder ri125 richtungsabhängig über Timer auslösen. Der In-Melder veranlasst dann das Bremsen.
<?xml version="1.0" encoding="UTF-8"?> <xmlscript> <query vr="lcid125" table="fblist" id="%callerid%" get="identifier"/> <if condition="#lcid125 = 0"> <then> <trace text="ri125 : -"/> <exit/> </then> </if> ...
Es wird eine Variable lcid125 für die Lok-ID angelegt. Da die Variable exklusiv für den Rückmelder r125 benutzt werden soll, erhält sie die angehängte Nummer 125. Die query-Anweisung liest den Wert des Attributs 'identifier' ein. Es ist nun möglich, dass das Attribut 'identifier' von r125 keine Lok-ID enthält, z.B. weil ein Wagen den Besetztmelder auslöst. In diesem Fall wird ein Wert 0 übergeben und das Skript wird gleich verlassen.
... <query vr="bes125" table="lclist" id="@lcid125" get="blockenterside"/>
Das Attribut 'blockenterside' der erkannten Lok kann die Werte 'true' und 'false' annehmen. 'true' bedeutet dabei, dass der kleine Pfeil im Blocksymbol von der +-Seite wegweist. Wenn in Rocrail alles richtig eingerichtet und initialisiert ist, zeigt der Pfeil die Fahrtrichtung des Zugs an.
... <if condition="@bes125 = true"> <then> <!-- true-Richtung --> <!-- special --> <if condition="@lcid = 2150"> <then> <sleep=12000/> <fb id="ri125" cmd="on"/> <fb id="ri125" cmd="off"/> <trace text="ri125>: @lcid125 hält nun."/> <exit/> </then> </if> <!-- default --> <sleep=8000/> <fb id="ri125" cmd="on"/> <fb id="ri125" cmd="off"/> <trace text="ri125>: @lcid125 hält nun."/> <exit/> </then> <else> <!-- false-Richtung --> <sleep=9000/> <fb id="ri125" cmd="on"/> <fb id="ri125" cmd="off"/> <trace text="ri125>: @lcid125 hält nun."/> <exit/> </else> </if> </xmlscript>
Es empfiehlt sich, in die entsprechenden Kommentare statt 'true- und false-Richtung' die Richtungen vor Ort einzutragen.