Guten Abend, ich bringe Geschenke.
Nachdem ich mir das Trauerspiel mit deutschen Zugsicherungssystemen in Railworks ein wenig angesehen habe, also sehr britische rudimentäre "PZBs" in den Standardloks und unpassende Magnete auf den Strecken, dachte ich mir, dass ich doch zumindest bei den PZBs etwas machen kann. Gibt es dann mal mehr Triebfahrzeuge mit richtigen PZBs sind dann bestimmt auch die Streckenbauer motiviert, korrekte Magnet zu verlegen.
Also Richtlinie der DB AG runtergeladen und mal durchgelesen… Ist doch gar nicht sooo kompliziert wie immer gesagt (es ist nur kompliziert beschrieben). Dann konnte ich nicht widerstehen und habe eine PZB in Lua geschrieben, die das in der Richtlinie beschriebene Verhalten simuliert, mit allen Überlagerungen und mit allen Geschwindigkeitskurven (ja, auch inklusive der Anhebung der Umschaltgeschwindigkeit nach 500 Hz in Zugart O), natürlich mit kontinuierlicher Überwachung. Hauptsächlich fehlt noch die Überwachung der Höchstgeschwindigkeit außerhalb von Beeinflussungen. Sobald es freigeschaltet ist, im Downloadbereich unter Railworks/Sonstiges.
Das Skript ist so ausgelegt, dass es in beliebige Umgebungen eingepflanzt werden kann: Es muss nichts selbstständig im Hintergrund laufen, es greift auf keine externen Funktionen oder Variablen zu, nichts daran ist überhaupt Railworks spezifisch. Im Großen und Ganzen läuft es so ab, dass der Lokbauer selbst die PZB Tasten implementiert und (wie auch immer) die Magnet-Beeinflussungen erfasst und an die PZB Update-Funktion übergibt (mit weiteren Werten wie Geschwindigkeit und Zeit) und als Ergebnis dann den Zustand der Lampen, des akustischen Signalgebers und natürlich des Zwangsbremsventils erhält.
Jetzt bin ich natürlich an Meinungen von Lokbauern interessiert, ob das von mir gewählte Interface passend ist, denn vom Lokbau in Railworks habe ich nicht wirklich eine Ahnung. Ich hatte auch schon angedacht, zur Bequemlichkeit eine zweite Update-Funktion zu bieten, die die zurückgelegte Strecke nicht erwartet (sondern selbst aus der Geschwindigkeit integriert). Ebenso eine Funktion, die die Blinkzustände der Lampen auf einfache An/Aus-Zustände reduziert, damit man sich die Implementation von Blink-Animationen sparen kann.
Und noch eine Frage: Aus der Richtlinie kann ich nicht ganz auf das Verhalten bei Überschreiten der Höchstgeschwindigkeit (also außerhalb Beeinflussungen) schließen, da steht nur, dass erst ein "Warnschuss" mit intermittierendem Zwangsbremsen kommt. Weiß da jemand, in welchem Takt (wie lang an, wie lang aus) das passiert?