Bahnhof mit Fahrstrassen

!!! Please ensure, that your contribution or question is placed into the relevant section !!!
Questions about rolling stock, for example, do not belong in "Questions about the Forum". Following is perhaps the right area where your question will be better looked after:
General questions to EEP , Splines, rolling stock, Structures in EEP, landscape elements, Signalling system and controlling, designers, Europe-wide EEP meetings , Gossip
Your cooperation to keep the forum clear is appreciated.
In the case of pictures that are attached to the article, the source must also be stated. This also applies to your own pictures, which were taken by you. Pictures without source information will be deleted!
  • Hallo Ingo,


    ich hab in meiner Anlage ein Script geschrieben, mit den Funktionen Anmeldung und Abmeldung. Dort hatte ich aber bei der Abmeldung immer nur die ID des Fahrstrassensignals drin. Jetzt ist mir klar, wie ich gezielt bestimmte Fahrwege auflöse...

    Danke für Deine Erläuterung.


    Gruss Frank

    EEP 16.4 alle Patches und Plugins

    Mainboard: ASRock Z490 Phantom Gaming 4Prozessor: CPU Intel® core i9-10900KF 3.7GHz

    Architektur: Comet lake - Kerne: 10 - Threads: 20 - Basistakt: 3.70GHz - Turbotakt: 5.3GHz

    RAM: 32 GB DDR4 PC3000 (4x 8GB)

    SSD1: 512 GB Samsung 970 PRO MZ-V7P512BW - PCI Express 3.0 x4 (NVMe)

    SSD2: Samsung MZ-76Q1T0BW SSD 860 QVO 1TByte
    HDD1: 3 TB Sata600 Toshiba 7200rpm

    HDD2: Western Digital WD40EFAX Red 4 TByte

    Grafik: Nvidia Geforce® RTX2080Ti 11 GB DDR6 (3x DP, HDMI)

  • Hallo Ingo ( @schlingo )

    habe einen Vorschlag getestet, alles Super. Danke für die prompte Hilfe.


    :aa_1::aa_1:

    Gruss Gerd


    ----------------------------------------------------------------------------------------------------------------------------------------


    Hardwarekonfiguration:

    Laptop: Intel Core i5-9300H, 3,7 GHz, 8GB RAM, Win10 64 bit,

    NVIDIA GeForce GTX 1650

    EEP 12.1 Expert Plugin 1

    EEP 16.4

  • ein Script geschrieben, mit den Funktionen Anmeldung und Abmeldung. Dort hatte ich aber bei der Abmeldung immer nur die ID des Fahrstrassensignals drin

    Hallo Frank :)


    ah ok. Das habe ich entkoppelt. Die Abmeldung rufe ich in einem KP direkt nach dem ESig auf. Ich verwende dazu den eh vorhandenen Signal-KP, der das ESig auf Halt stellt und rufe darin zusätzlich meine Funktion zum Abmelden auf. Die FS löse ich dann wie in meinem Beispiel oben mit einem weiteren Signal-KP an geeigneter Stelle auf.


    Gruß Ingo

    Threema - Sicherer und privater Messenger

    Meine Threema-ID

    Warum Threema?


    Win 10x64 Professional, Gigabyte B360M AORUS, Intel Core i7-8700K, 32GB RAM, NVIDIA GeForce GTX 1050 Ti 4GB, Philips 273V7QDAB Full HD

    Windows Firewall und Defender
    EEP 15.1 Expert Patch 2, Plugins: 1

    EEP 16.4 Expert, Plugins: 1,2,3,4


    alt:
    Win 7x64 Professional SP1, Intel Core i5-3570, 16GB RAM, nVIDIA GeForce GT630, 2GB, 1920x1200 auf 26" TFT

    EEP6; EEP8-14; EEP 15.1 Expert Patch 2, Plugins: 1

  • Auch wenn ich den Thread jetzt erst entdeckt habe, möchte ich noch etwas dazu beitragen.

    • Auf dem Screenshot ist ein Zug #A zu sehen, der in Gleis 1 unterwegs ist.
    • Von links/West nähert sich ein weiterer Zug #B, der die Fahrt in Gleis 7 anfordert. Da Zug #A die Weiche 0001 passiert hat, ist der Weg in Gleis 7 frei, sodass die FS 0008-07 aktiviert wird. Dabei wird die FS 0008-01 implizit aufgelöst.
    • Währenddessen fährt Zug #A weiter und erreicht irgendwann den KP zur Auflösung der FS. Da zu diesem Zeitpunkt aber die FS 0008-07 aktiv ist, wird diese ungewollt aufgelöst.
    • Jetzt fordert Zug #C von Gleis 6 Ausfahrt nach links/West an. Da Zug #B das ESig (und somit den Beginn seiner FS) noch nicht erreicht hat und somit weder eine konkurrierende FS aktiv ist noch konkurrierende Gleise belegt sind, erhält Zug #C Ausfahrt.

    Danke für die detaillierte Erklärung!

    Meiner Ansicht liegt das Problem aber nicht bei Punkt 3 (im bedingungslosen Auflösen der Fahrstraße), sondern schon bei Punkt 2 (im bedingungslosen Aktivieren der Fahrstraße).

    Statt (oder zusätzlich zu) der Bedingung "Fahrstraße X ist eingestellt" im Auflösen-Kontaktpunkt empfehle ich, die Bedingung "keine Fahrstraße ist eingestellt" (oder genauer: "Fahrstraßensignal steht auf Auflösen") im Aktivierungs-Kontaktpunkt einstellen.


    Warum? Weil die "bedingungslose Aktivierung" auch für andere Probleme sorgen kann, die sich nicht durch eine Bedingung im Auflösen-KP lösen lassen:

    • Angenommen, Zug #A und Zug #B kommen kurz hintereinander. Die Fahrstraße für Zug #A nach Gleis 1 wurde gerade frisch eingestellt, als Zug #B seinen Anforderungs-Kontaktpunkt überfährt. Da Zug #A vom Einfahrsignal noch nicht losgefahren ist, ist die Fahrstraße noch nicht belegt, also wird die Fahrstraße für Zug #B nach Gleis 7 eingestellt. Ergebnis: Zug #A fährt nach Gleis 7, und Zug #B "verhungert" vor dem Einfahrsignal (weil seine Anforderung bereits abgearbeitet wurde).
      Ob dieses Problem tatsächlich auftritt, hängt natürlich stark von der Positionierung des Anforderungs-Kontaktpunkts ab.
    • Angenommen, Zug #A ist gerade im Weichenvorfeld nach Gleis 1 unterwegs, wenn Zug #B eine andere Fahrstraße für sich einstellt (also so wie in Ingos zweitem Punkt). Jetzt ist Zug #A ohne Fahrstraße unterwegs. Falls zeitgleich ein Zug #D von rechts/Ost nach Gleis 1 fahren will, so wird seine Fahrstraße aktiviert, denn Gleis 1 ist weder von einem Fahrzeug (Zug #A ist noch im Weichenvorfeld unterwegs) noch von einer Fahrstraße (die zeigt mittlerweile nach Gleis 7) belegt. Die Folge: Aus beiden Richtungen fahren Züge nach Gleis 1, und es kommt zum Zusammenstoß.


    Das "bedingungslose Aktivieren" von Fahrstraßen bedeutet, dass andere Fahrstraßen ab diesem Startsignal unkontrolliert aufgelöst werden. Und zu frühes Auflösen von Fahrstraßen kann böse Konsequenzen haben, weil dadurch auch die Reservierung des Fahrwegs verloren geht.


    Wenn eine Fahrstraße jedoch nur dann aktiviert wird, wenn momentan keine andere Fahrstraße ab diesem Startsignal aktiv ist, ist automatisch sichergestellt, dass ein Zug keine "fremde" Fahrstraße auflösen kann (weil die fremde Fahrstraße gar nicht erst aktiviert wird). Die Bedingung im Auflösen-Kontaktpunkt ist damit nicht mehr nötig (schadet aber auch nicht).


    Viele Grüße

    Benny

  • Statt (oder zusätzlich zu) der Bedingung "Fahrstraße X ist eingestellt" im Auflösen-Kontaktpunkt empfehle ich, die Bedingung "keine Fahrstraße ist eingestellt" (oder genauer: "Fahrstraßensignal steht auf Auflösen") im Aktivierungs-Kontaktpunkt einstellen.

    Hallo Benny :)


    ja, Deine Erklärungen sind plausibel :be_1:Aber: erstens ist es (zumindest bei mir) mit der Bedingung im Aktivierungs-KP nicht getan. Ich rufe da ja meine Lua-Funktion FSAnew() auf. Mit der Bedingung im KP würde die Anforderung in diesem Fall verlorengehen. Also müsste ich das in mein FS-Modul einbauen. Und zweitens hebelst Du damit das Feature von EEP aus. Wäre es dann nicht besser, das gleich aus dem EEP-Programmcode zu entfernen? Ich schrieb oben ja, dass ich das Feature grundsätzlich für nützlich halte. Aber es verwirrt eben auch, wenn man sich dessen nicht bewusst ist.


    Gruß Ingo

    Threema - Sicherer und privater Messenger

    Meine Threema-ID

    Warum Threema?


    Win 10x64 Professional, Gigabyte B360M AORUS, Intel Core i7-8700K, 32GB RAM, NVIDIA GeForce GTX 1050 Ti 4GB, Philips 273V7QDAB Full HD

    Windows Firewall und Defender
    EEP 15.1 Expert Patch 2, Plugins: 1

    EEP 16.4 Expert, Plugins: 1,2,3,4


    alt:
    Win 7x64 Professional SP1, Intel Core i5-3570, 16GB RAM, nVIDIA GeForce GT630, 2GB, 1920x1200 auf 26" TFT

    EEP6; EEP8-14; EEP 15.1 Expert Patch 2, Plugins: 1

  • Aber: erstens ist es (zumindest bei mir) mit der Bedingung im Aktivierungs-KP nicht getan. Ich rufe da ja meine Lua-Funktion FSAnew() auf. Mit der Bedingung im KP würde die Anforderung in diesem Fall verlorengehen. Also müsste ich das in mein FS-Modul einbauen.

    Ich habe bewusst von Aktivierung, nicht Anforderung geschrieben. Die Anforderung darf natürlich keine Bedingung haben, sonst geht sie verloren. Aber du hast Recht, die Aktivierung läuft in der Regel über Lua, nicht über Kontaktpunkte. Dann muss die Bedingung entsprechend über ein if in Lua realisiert werden.


    Und zweitens hebelst Du damit das Feature von EEP aus. Wäre es dann nicht besser, das gleich aus dem EEP-Programmcode zu entfernen? Ich schrieb oben ja, dass ich das Feature grundsätzlich für nützlich halte. Aber es verwirrt eben auch, wenn man sich dessen nicht bewusst ist.

    Was meinst du mit "das Feature"? Dass Fahrstraßen überschrieben werden können?

    Ich persönlich sehe keinen Vorteil von diesem Feature. Aber wenn das jetzt in EEP geändert würde, würden viele der existierenden Steuerungen kaputt gehen. Deshalb bleibt aus meiner Sicht nur, die Bedingung "es ist noch keine andere Fahrstraße aktiv" selbst hinzuzufügen.


    Viele Grüße

    Benny

  • Hallo Lelf ,

    Ich weiß nicht genau, was anmelden() bei dir macht. Wenn es das macht, was der Name sagt, dann: Nein, das meine ich nicht. Die Anmeldung soll immer (also bedingungslos) ausgeführt werden. Die wird ja ein einziges Mal vom Zug ausgelöst, und wenn es dann doch nicht passiert, passiert es nie.


    Die Bedingung gehört zur Aktivierung der Fahrstraße, als in den Teil des Programms, der immer wieder ausgeführt wird. Wenn das Fahrstraßensignal dann noch nicht auf Auflösen steht, wird es später noch einmal wiederholt.


    Ich habe mal @schlingos Code genommen und angepasst. So meine ich das:

    Code
    1. if EEPGetSignal(8) == 1 then -- Nur wenn momentan keine Fahrstraße eingestellt ist (Pos. 1 = "Auflösen")
    2. EEPSetSignal(8, 2) -- stelle die gewünschte Fahrstraße ein (hier Pos. 2 = "Fahrstraße #1")
    3. end


    Viele Grüße

    Benny

  • Benny, du hast total gut aufgepasst! ich habe mich falsch zitiert. So muß es heißen:

    LUA Source Code
    1. if EEPGetSignal( fs_id ) == 1 then
    2. schaltversuch( index, fs_id, zn, route ) --in schaltversuch() wird die gewünschte FS aufgerufen
    3. end

    LG Lelf

  • Vielleicht können wir (ich) das etwas präzisieren.

    Hallo Little :)


    es hat etwas gedauert, aber ich habe jetzt das Kapitel 6.2.1. Kontaktpunkte für Signale überarbeitet und dabei auch versucht, die Wenn-Bedingung etwas ausführlicher zu erklären. Ich hoffe, das ist halbwegs verständlich.


    Gruß Ingo

    Threema - Sicherer und privater Messenger

    Meine Threema-ID

    Warum Threema?


    Win 10x64 Professional, Gigabyte B360M AORUS, Intel Core i7-8700K, 32GB RAM, NVIDIA GeForce GTX 1050 Ti 4GB, Philips 273V7QDAB Full HD

    Windows Firewall und Defender
    EEP 15.1 Expert Patch 2, Plugins: 1

    EEP 16.4 Expert, Plugins: 1,2,3,4


    alt:
    Win 7x64 Professional SP1, Intel Core i5-3570, 16GB RAM, nVIDIA GeForce GT630, 2GB, 1920x1200 auf 26" TFT

    EEP6; EEP8-14; EEP 15.1 Expert Patch 2, Plugins: 1