Hallo,
vorab möchte ich an dieser Stelle noch anmerken, dass die SimTrain SBB Signale von Rosenkill erstellt wurden und ich lediglich die Skripte liefere. Es sind also nicht "Schuster / SignalTeam" sondern "Schuster / Rosenkill" Signale.
Das Verhalten der Rivet Signale habe ich mir nun mit folgendem Ergebnis genauer angeschaut:
Grundsätzlich werden weder die Anzahl der Consists im belegten Gleis gezählt, noch blockiert ein belegter Weichenbereich bei Signalen mit mehr als einem Link das Signal selbst. Nur Zielgleise (Link 1+) und Blocksignale (0T) speichern eine Gleisbelegung und das lediglich mit dem Status "belegt" oder "frei".
Beim rückwärtigen Passieren des Link 0 wird das Signal in jedem Falle freigegeben, noch bevor der Link 0 komplett passiert wurde.
Selbst wenn das Signal also per Trigger wieder auf Halt gesetzt wird, zeigt es doch noch eine Zeit lang einen Fahrtbegriff.
Außerdem gab es beim Einsatz von Triggern später Probleme, wenn das betreffende Signal dann wieder in normaler Fahrtrichtung passiert werden soll, da es dann einen Fahrtbegriff erst nach TAB zeigt. Das wäre somit keine Lösung, die wirklich stimmig ist.
Nun zur Frage, warum das bei meinen Signalen eigentlich funktioniert?
Ich blockiere einfach die Funktion zur Fahrtstellung ab dem Zeitpunkt, wenn der Zug den Link 0 beginnt rückwärtig zu passieren. Diese Blockierung wird wieder aufgehoben, wenn am betreffenden Signal eine Weiche im Weichenbereich umgestellt wird oder der Zug bereits einige weitere Signale rückwärtig passiert hat und das betreffende Signal somit unvorbereitet ist. Weiterhin kann die Blockierung auch durch einen Trigger oder durch Drücken der TAB Taste aufgehoben werden.
Aus meiner Sicht müsste man die Skripte von Rivet dahin gehend erweitern. Auch der Weichenbereich sollte geschützt werden. Das macht das Signalverhalten solide und sicher.
Gruß Schuster