Grüß Gott und guten Morgen,
vielen, vielen Dank für's Mitdenken.
Zitat
Vermutlich hast Du Deine Gleisfrei-Abfrage in FS1 und FS2 so realisiert, dass Du dies im Auslöser (Zugkontaktsymbol) als Eigenschaft definiert hast.
Das ist wohl beim Bearbeiten meines ersten Entwurfs des Beitrags verloren gegangen.
Es ist _kein_ Auslöser in den Fahrstraßen definiert. Es sind nur Elemente in der Ablaufleiste eingefügt.
Die Fahrstraßen sollen über das "S"-förmige Fahrstraßensymbol im Gleisbild aufgerufen werden. Aus Vereinfachungsgründen wollte ich "modularisieren" und nicht in jeder Fahrstraße für die Ausfahrt aus einem Gleis auch alle Elemente der Strecke prüfen, sondern die Elemente der Strecke in eine eigene Fahrstraße auslagern und diese dann aus den jeweiligen Fahrstraßen für die Ausfahrt aus den Gleisen aufrufen.
Weil jede Fahrstraße für sich alleine genommen so wie von mir beabsichtigt funktioniert(e), bin ich bisher davon ausgegangen, die Logik verstanden zu haben. War wohl ein Trugschluß und wirklich "funktioniert" haben sie wohl nicht, nur "richtig" (?) geschaltet. Wahrscheinlich habe ich sie nur im vorauseilenden Gehorsam entsprechend ihrer Bestimmung angewendet. ops:
Zitat
Hast Du Dir in der Ablaufleiste die Eigenschaften des als Element in die Fahrstraße FS1 eingefügten FS2 angesehen?
Ich glaube, dass dort Dein Denkfehler ist. Die Fahrstraße als Element in einem übergeordneten Ereignis kann doch keine Auslösebedingung befolgen - sie ist ja als Element in der Ablaufleiste schon ausgelöst worden.
Sie soll ja keine Auslösebedingung befolgen. Mein Denkfehler ist wohl, daß die Fahrstraße nicht in der Abarbeitung fortfährt ("fortfahren"), wenn das Element als definiertes Kriterium erfüllt ist (hier: "frei") und ansonsten abbricht.
Und für "warten" habe ich die Logik angenommen, "warten bis definiertes Kriterium eingetreten ist" (hier: "frei") und erst dann weiter abgearbeitet wird.
Zitat
Hast Du also in einer Fahrstraße (FS1) ein weiteres Fahrstraßenereignis (FS2) als Element eingefügt?
Ja.
Im ersten Schritt der Entwicklung habe ich FS1 (Weichenstraße) ohne eingefügte FS2 getestet.
Die Weichenstraße schaltet nicht, wenn ein S88 Kontakt in der Weichenstraße belegt ist. Es wird ein roter Punkt angezeigt.
Die Weichenstraße schaltet, wenn alle S88 Kontakte der Weichenstraße frei sind. Es wird ein grüner Punkt angezeigt. (Dies zeigt aber wohl nicht "Erfolg" aller Schaltungen an, sondern nur, daß die Fahrstraßenabarbeitung durchgelaufen ist.)
Auch FS2 (Strecke A) habe ich für sich alleine ausgeführt.
Die abzweigende Weiche schaltet nicht, wenn ein S88 Kontakt in der Strecke belegt ist. Es wird ein roter Punkt angezeigt.
Die Weiche schaltet, wenn alle S88 Kontakte der Strecke frei sind. Es wird ein grüner Punkt angezeigt.
Im nächsten Schritt der Entwicklung habe ich dann FS2 als erstes Element in die Ablaufleiste der FS1 eingefügt. Das Ergebnis war eben nicht wie erwartet, daß die Weichenstraße nur schaltet, wenn "Erfolg" bei der Prüfung auf "frei" sowohl für die Strecke, als auch für die Weichenstraße erzielt wurde.
Zitat
Oder ist auch die FS1 schon ein Element in einem übergeordneten Ereignis?
Nein.
Zitat
Jedenfalls wird im zweiten Fall (das wäre Deine FS3) meiner Meinung nach in den Eigenschaften dieses Elements "Fahrstraße" eingestellt, ob die Fahrstraße mit den anderen Elementen parallel oder sequentiell abgearbeitet wird. "Warten" bedeutet dann sequentiell.
Einen Abbruch des ganzen Ablaufs kannst Du aber einfach mit einer Abfrage des Gleisfreimelders mit der Bedingung "fortfahren" bei "Gleis Frei" erreichen, weil bei "Gleis besetzt" es NICHT fortfahren bedeutet.
Das ist wohl der Denkfehler.
Darf ich die Logik der Fahrstraßenelemente wie folgt verstehen:
Stellung: belegt
Kondition: warten
Bedeutung: Anhalten der Fahrstraßenabarbeitung, bis nicht mehr belegt, dann fortfahren
Stellung: frei
Kondition: warten
Bedeutung: Anhalten der Fahrstraßenabarbeitung, bis belegt, dann fortfahren
Stellung: belegt
Kondition: fortfahren
Bedeutung: Fahrstraßenabarbeitung fortfahren und wenn nicht belegt, dann warnen mit rotem Punkt
Stellung: frei
Kondition: fortfahren
Bedeutung: Fahrstraßenabarbeitung fortfahren und wenn belegt, dann warnen mit rotem Punkt
Gruß
Sven