Lösungen auf Forumsanfragen


Hier finden sich Lösungen mit xmlScripts von Problemen, die im Forum gepostet wurden.
Zur Wiederholung: Wie Skripte erstellt und in RR via Aktionsdefinition eingebunden werden, ist hier erklärt; ich werde darauf nicht näher eingehen.

Steuerung Schattenbahnhofzufahrt

Das Problem: Folgende Problemstellung wurde im Forum gepostet:
Ist der Schattenbahnhof SB1, bestehend aus den Blöcken K_4, K_5, K_6 voll besetzt, soll kein Zug mehr in den Block K_3 fahren, der dort dann warten müsste. Stattdessen sollen Züge via Block K_2 in den anderen Schattenbahnhof (K_7 bis K_11) fahren.

Steuerung Schattenbahnhofzufahrt


Die Lösung:

<?xml version="1.0" encoding="UTF-8"?>
<xmlscript desc="Script_Zufahrt_K3_regeln">
 
<!-- Wenn alle Gleise in SB1 besetzt, dann FS zu K_3 schließen -->
<!-- Ist SB1 (K_4, K_5, K_6) voll -->
<if state="bk K_4 = occupied|bk K_5 = occupied|bk K_6 = occupied" alltrue="true">
  <then>
    <!-- FS schließen -->
    <st id="autogen-[K_1+]-[K_3-]" state="closed"/>
    <exit cmt="Script_Zufahrt_K3_regeln, K_/4/5/6: FS autogen-[K_1+]-[K_3-] gesperrt"/>
  </then>
</if>
 
<!-- Wenn ein Gleis in SB1 frei, dann FS zu K_3 öffnen -->
<!-- Ist ein Gleis im SB1 frei? -->
<if state="bk K_4 = free|bk K_5 = free|bk K_6 = free" alltrue="false">
  <then>
    <!-- FS öffnen -->
    <st id="autogen-[K_1+]-[K_3-]" state="open"/>
    <exit cmt="Script_Zufahrt_K3_regeln, K_/4/5/6: FS autogen-[K_1+]-[K_3-] geöffnet"/>
  </then>
</if>
 
</xmlscript>

Das Skript wird folgendermaßen aufgerufen:
-) In den Blöcken K_4, K_5, K_6 bei OCCUPIED, keine Bedingung.
-) In den gleichen Blöcken bei FREE, keine Bedingung.

Sind die Gleise des SB1 voll besetzt, wird die Fahrstraße (FS) von K_1 nach K_3 gesperrt (visualisiert durch das FS-Symbol rechts unterhalb des Blocks K_3). Somit kann kein Zug mehr in den Block K_3 fahren. Wird ein Gleis im SB1 frei, wird die FS von K_1 nach K_3 wieder geöffnet.

Die Übung:
Zur Übung bietet sich an, die analoge Steuerung für den SB2 zu implementieren.


Personal Tools