Tutorial:Ansteuerung von Außenanlagen-Komponenten: Unterschied zwischen den Versionen

Aus StellSi-Hilfewiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 17: Zeile 17:


* Die Werte <code>setMove</code> und <code>setLock</code> von der Relaisanlage an den Antrieb/Riegel steuern, ob sich der Antrieb bzw. der Riegel in die angegebene Richtung bewegen sollen
* Die Werte <code>setMove</code> und <code>setLock</code> von der Relaisanlage an den Antrieb/Riegel steuern, ob sich der Antrieb bzw. der Riegel in die angegebene Richtung bewegen sollen
** Gültige Richtungsangaben: <code>WEICHEN_DIRECTION_LEFT</code>, <code>WEICHEN_DIRECTION_RIGHT</code>, <code>WEICHEN_DIRECTION_IDLE</code>, <code>RIEGEL_STATE_UNLOCKED</code>, <code>RIEGEL_STATE_LOCKED</code>, <code>RIEGEL_STATE_IDLE</code>
** Gültige Richtungsangaben: <code>WEICHEN_DIRECTION_LEFT</code> (Weiche wird nach Links umgestellt), <code>WEICHEN_DIRECTION_RIGHT</code>, <code>WEICHEN_DIRECTION_IDLE</code> (Stellstrom wird abgeschalten), <code>RIEGEL_STATE_UNLOCKED</code>, <code>RIEGEL_STATE_LOCKED</code>, <code>RIEGEL_STATE_IDLE</code>
* Der Antrieb gibt folgenden Fehlercode als Ereignis zurück, wenn das Umstellen z.B. aufgrund von Riegelung fehlschlägt: <code>moveFailed</code>
* Der Antrieb gibt folgenden Fehlercode als Ereignis zurück, wenn das Umstellen z.B. aufgrund von Riegelung fehlschlägt: <code>moveFailed</code>
* Der Riegel gibt folgenden Fehlercode als Ereignis zurück, wenn er am Riegelungspunkt feststellt, dass der Riegel falsch steht: <code>lockFailed</code>
* Der Riegel gibt folgenden Fehlercode als Ereignis zurück, wenn er am Riegelungspunkt feststellt, dass der Riegel falsch steht: <code>lockFailed</code>
Zeile 23: Zeile 23:
** Gültige Rückgabewerte siehe setMove
** Gültige Rückgabewerte siehe setMove
** Für das Verhalten bei Stellstromabschaltung und Antriebstrennung siehe die zugehörigen Konfigurationsmöglichkeiten in der stwb.
** Für das Verhalten bei Stellstromabschaltung und Antriebstrennung siehe die zugehörigen Konfigurationsmöglichkeiten in der stwb.
** Beispiel: Wenn man von der Weiche <code>directionChanged</code> <code>WEICHEN_DIRECTION_LEFT</code> bekommt ist sie in linker Endlage, wenn man <code>WEICHEN_DIRECTION_RIGHT</code> bekommt in rechter Endlage und in allen anderen Fällen ist die Weiche nicht in Endlage, kein Antrieb angebunden (je nach Konfiguration) oder der Antrieb kann aus sonnstigen Gründen nicht von einer Endlage ausgehen. Ein Auswertung von <code>moveFailed</code> ist nur erforderlich, wenn eine direkte Rückmeldung vom Antrieb erfolgt, etwa bei mechanischen Weichenantrieben. Bei elektrischen Weichenatrieben reicht es, <code>directionChanged</code> auszuwerten. Beachten Sie, dass selbst bei mechanischen Stellwerken in der Außenanlage die Zeit angehalten seien kann. Wenn während dieser Pause der Nutzer erneut einen Umstellbefehl gibt, sollte das Verhalten trotsdem irgendwie definiert sein.
* Der Antrieb und der Riegel können die Pluslage (o.Ä.) durch eine Beschriftung markieren. Dazu stehen die setWerte (string) <code>setLeftDesc</code>, <code>setRightDesc</code> (Antrieb) bzw. <code>setMyDirectionDesc</code> und <code>setOtherDirectionDesc</code> (Riegel) zur Verfügung.
* Der Antrieb und der Riegel können die Pluslage (o.Ä.) durch eine Beschriftung markieren. Dazu stehen die setWerte (string) <code>setLeftDesc</code>, <code>setRightDesc</code> (Antrieb) bzw. <code>setMyDirectionDesc</code> und <code>setOtherDirectionDesc</code> (Riegel) zur Verfügung.



Version vom 25. Juni 2017, 15:01 Uhr

Signale

Je nach Definition in der Bibliothek: (Derzeit konkurieren setWert und Ereignisse, das könnte sich aber ändern.)

  • ...

Spezialwerte: (setWert, Ansteuerung über Ereignisse erzeugt eine Fehlermeldung.)

  • net_signalhalt an einen beliebigen Signalschirm eines Signals
    • Es wird ermittelt, welcher Schirm von allen Signalen mit dem selben Netzwerknamen den größten Betrag von net_signalhalt hat.
    • Ist dieser Wert positiv, wird an das Nachbarstellwerk gemeldet, dass das Signal sicher in Haltstellung ist.
    • Ist er negativ, 0 oder gibt es wiedersprüchliche Informationen mit dem selben Gewicht wird das Signal als nicht sicher in der Haltstellung gemeldet. (z.B. weil es Fahrt zeigt)
  • net_signalhalt von einem beliebigen Signalschim eines Signals oder vom Streckenanschluss an das Script
    • 0: Es ist kein Nachbar verbunden, in denen dieses Signal als SlavePrefered markiert ist.
    • -1: Ein Nachbar beansprucht die Befehlsgewalt über dieses Signal und hat dieses Signal nicht sicher in Haltstellung. (z.B. weil es Fahrt zeigt)
    • 1: Ein Nachbar beansprucht die Befehlsgewalt über dieses Signal und hat es sicher in Haltstellung.

Weichen und Riegel

Weichen werden über setWert angesteuert. (Ansteuerung über Ereignisse erzeugt eine Fehlermeldung.)

  • Die Werte setMove und setLock von der Relaisanlage an den Antrieb/Riegel steuern, ob sich der Antrieb bzw. der Riegel in die angegebene Richtung bewegen sollen
    • Gültige Richtungsangaben: WEICHEN_DIRECTION_LEFT (Weiche wird nach Links umgestellt), WEICHEN_DIRECTION_RIGHT, WEICHEN_DIRECTION_IDLE (Stellstrom wird abgeschalten), RIEGEL_STATE_UNLOCKED, RIEGEL_STATE_LOCKED, RIEGEL_STATE_IDLE
  • Der Antrieb gibt folgenden Fehlercode als Ereignis zurück, wenn das Umstellen z.B. aufgrund von Riegelung fehlschlägt: moveFailed
  • Der Riegel gibt folgenden Fehlercode als Ereignis zurück, wenn er am Riegelungspunkt feststellt, dass der Riegel falsch steht: lockFailed
  • Antrieb und Riegel geben über folgenden setWert an die Relaisanlage zurück, in welche Position sich die Zunge bzw. der Riegel befinden: directionChanged und lockChanged.
    • Gültige Rückgabewerte siehe setMove
    • Für das Verhalten bei Stellstromabschaltung und Antriebstrennung siehe die zugehörigen Konfigurationsmöglichkeiten in der stwb.
    • Beispiel: Wenn man von der Weiche directionChanged WEICHEN_DIRECTION_LEFT bekommt ist sie in linker Endlage, wenn man WEICHEN_DIRECTION_RIGHT bekommt in rechter Endlage und in allen anderen Fällen ist die Weiche nicht in Endlage, kein Antrieb angebunden (je nach Konfiguration) oder der Antrieb kann aus sonnstigen Gründen nicht von einer Endlage ausgehen. Ein Auswertung von moveFailed ist nur erforderlich, wenn eine direkte Rückmeldung vom Antrieb erfolgt, etwa bei mechanischen Weichenantrieben. Bei elektrischen Weichenatrieben reicht es, directionChanged auszuwerten. Beachten Sie, dass selbst bei mechanischen Stellwerken in der Außenanlage die Zeit angehalten seien kann. Wenn während dieser Pause der Nutzer erneut einen Umstellbefehl gibt, sollte das Verhalten trotsdem irgendwie definiert sein.
  • Der Antrieb und der Riegel können die Pluslage (o.Ä.) durch eine Beschriftung markieren. Dazu stehen die setWerte (string) setLeftDesc, setRightDesc (Antrieb) bzw. setMyDirectionDesc und setOtherDirectionDesc (Riegel) zur Verfügung.

Zugnummernmeldeanlage

Ist noch komplett im Bau! Folgendes kann daher womöglich auch ein Provisorium sein:

  • Alles im Streckenanschluss
  • znanlage_leaving_vorhanden (W->0/1)
  • znanlage_entering_vorhanden (W->0/1)
  • znanlage_leaving_vormelden (E->int zugnummer)
  • znanlage_leaving_vormeldung_ruecknehmen (E->int zugnummer)
  • znanlage_entering_vormelden (<-E int zugnummer)

Streckenblock

Das ist noch komplett provisorisch, und läuft auf Gefahr, jederzeit zu fliegen:

  • Ereignisse vom Script an den Streckenanschluss
    • Das hier weist den Anschluss an, den Versuch durchzuführen, entsprechende Abgaben zu tätigen.
    • Das Script darf sich nicht darauf verlassen, es kann (z.B. bei Netzwerkverbidnungsaufbau) auch unerwartet passieren oder ignoriert werden.
    • streckenblock_erlaubnisabgabe
    • streckenblock_vorblock
    • streckenblock_rueckblock
  • Werte vom Script an den Streckenanschluss
    • streckenblock_aspm_gleis_frei
    • streckenblock_aspm_signal_halt
  • Werte vom Streckenanschluss an das Script
    • Die Werte können sich auch unerwartet ändern (z.B. bei Netzwerkverbidnungsaufbau). Diese Werte sollten maßgeblich sein, nicht die Bedienungen der Anlage!
    • streckenblock_erlaubnisempfang
    • streckenblock_vorblockempfang
    • streckenblock_vorblockabgabe
    • streckenblock_aspmempfang (Sollte i.A. nicht zu gebrauchen sein, da AspM des NachbarStw im eigenen Stw eh nicht angezeigt werden, und Netzwerkmäßig auch das passende Gegensignal fehlt. Aber zu Debugging-Zwecken habe ich es mal gelassen.)