Jump to content

GKT reagiert nicht im Schiebebetrieb


jloos

Recommended Posts

Hallo Jürgen,

Das kann so auch nicht funktionieren. Ein Gleiskontakt wird dann ausgelöst, wenn das erste Fahrzeug eines Fahrzeugverbundes den Kontakt betritt. Dies ist in deinem Beispiel bei Vorwärtsfahrt das angetriebene, und bei Rückwärtsfahrt der angehängte Wagen. In deinem Event wird geprüft, ob die Variable Fahrzeug auf dem Gleiskontakt steht. Da als Auslöser Fahrzeug in der EV immer das angetriebene Fahrzeug genommen wird, funktioniert dein Ereignis nur bei Vorwärtsfahrt.

Da ich nicht weiß, was du erreichen willst, hier nur zwei Anmerkungen:

Wenn ein Gleiskontakt ausgelöst wird, steht genau ein Wagen des Verbundes auf dem Gleiskontakt. Also kann die Bedingung "Fahrzeug steht auf Gleiskontakt" entfallen und der Zähler generell hochgezählt werden.

Falls nur ausgewählte Fahrzeuge gezählt werden sollen (z.B. Name, Vorhandensein einer Variablen), so müsstes du mit der Wiederholung "Für alle Fahrzeuge in einem Fahrzeugverbund" arbeiten und darin die Prüfung durchführen.

Viele Grüße,
    Wolfgang

Edited by prinz
Tippfehler
Link to comment
Share on other sites

Hallo zusammen,

vor 46 Minuten schrieb prinz:

In deinem Event wird geprüft, ob die Variable Fahrzeug auf dem Gleiskontakt steht. Da als Auslöser Fahrzeug in der EV immer das angetriebene Fahrzeug genommen wird, funktioniert dein Ereignis nur bei Vorwärtsfahrt.

Ich habe das für mich so gelöst, dass ich in jeden angetriebenen vehicle eine Objektvariable "vehicle rear" habe, in welcher das letzte Fahrzeug als Objekt steht. Wenn ich wissen will, ob ein bestimmter Zug - egal wie rum - auf dem Gleiskontakt steht, frage ich an, ob vehicle oder vehicle.vehicle rear auf dem Kontakt steht. Falls ich irgendwann mal ein angetriebenes Fahrzeug in der Mitte haben sollte, müsste man die Logik erweitern und sich auch noch "vehicle front" merken.

vor 35 Minuten schrieb jloos:

wenn ich ein beliebiges Fahrzeug auswähle, dann geht es.

Klar, kann man machen, wenn man sicher ist, dass es sowieso nur der eine Zug ist, den man im Auge hat. In Deinem Fall kann es nicht anders sein, also reicht [Beliebig] - bzw. die Bedingung ist schlicht überflüssig, wie Wolfgang schon sagte. Allerdings fragst Du nicht einen konkreten Kontakt ab, sondern alle Kontakte mit einem Schlagwort. Wohin das im Zusammenhang mit einem Zähler, den Du hochzählts und in einem Modulvariable schreibst, führen soll, ist nicht so ganz nachvollziehbar. Damit Du Dir jetzt nicht mit vielen Modulvariablen einen abbrichst: Du könntest Dir die Anzahl der Züge im Block auch in einer Objektvariablen des Kontakts merken. Wenn Du das machst, kannst Du durchaus mit einem Schlagwort arbeiten, denn der ausgelöste Kontakt steht Dir ja als Auslöser zur Verfügung. Jetzt brauchst Du noch in jedem Zählkontakt seinen Vorgänger als Objekt, damit Du beim Verlassen des Folgekontaktes im Vorkontakt wieder eins abziehst.

Beste Grüße

Phrontistes

Edited by Phrontistes
typo
Link to comment
Share on other sites

Hallo @Phrontistes,

auf der Anlage habe ich 2 Pufferstrecken, um eine gleichmäßige Zuführung der Züge zu erreichen. Die Züge kommen aus einem Schatten Bahnhof und stehen somit in einer Reihe im Puffer. Da eine Pufferstrecken länger ist, zähle ich die eingefahrenden und ausfahrenden Züge. Das mache ich mit einem einzigen Ereigniseintrag. Da ich in dem GKT keinen Link auf die Zählervariable unterbringen kann, muss ich wissen, welcher GKT betätigt wurde. 

Es gibt sicherlich auch andere Lösungen. 

Gruß Jürgen 

Link to comment
Share on other sites

vor 3 Stunden schrieb prinz:

Da als Auslöser Fahrzeug in der EV immer das angetriebene Fahrzeug genommen wird, funktioniert dein Ereignis nur bei Vorwärtsfahrt.

Nur noch mal zu meinem Verständnis: Vor Signalen oder an GKT, die Variablen aus der Lok auslesen, spielt es keine Rolle ob der Fahrzeugverbund gezogen oder geschoben wird. Obwohl ich da auch als Auslöser Fahrzeug auswähle. Bei der Bedingung "Fahrzeug steht auf Gleis/Gleiskontakt" gilt das nur für das angetriebene Fahrzeug. 

Gruß Jürgen 

Link to comment
Share on other sites

Hallo Jürgen @jloos,

vor 3 Minuten schrieb jloos:

Nur noch mal zu meinem Verständnis: Vor Signalen oder an GKT, die Variablen aus der Lok auslesen, spielt es keine Rolle ob der Fahrzeugverbund gezogen oder geschoben wird.

Ja, Du bekommst beim Betreten eines (Signal-)Kontaktes immer das angetriebene Fahrzeug als Auslöser (wobei es tunlichst immer nur ein angetriebene Fahrzeug im Verbund geben sollte).

vor 4 Minuten schrieb jloos:

Obwohl ich da auch als Auslöser Fahrzeug auswähle.

Nicht "obwohl", sondern "weil" der Auslöser für das Ereignis "Betreten" das angetriebene Fahrzeug ist (und nicht der geschobene Wagen).

vor 3 Minuten schrieb jloos:

Bei der Bedingung "Fahrzeug steht auf Gleis/Gleiskontakt" gilt das nur für das angetriebene Fahrzeug. 

Das würde ich etwas anders formulieren: Bei der Bedingung "Fahrzeug steht auf Gleis/Gleiskontakt" prüfst  Du auf das Fahrzeug, welches tatsächlich auf dem Gleiskontakt steht. Das ist nicht zwingend das angetriebene Fahrzeug sondern ggf. der geschobenen Wagen. Deshalb prüfe ich, wie oben beschrieben, auf immer auf vehicle oder vehicle.vehicle rear, dann ist es egal wie rum der Zug fährt. Das setzt voraus, dass man händisch in jedem Fahrzeug eine Variable vom Typ Objekt anlegt und in diese händisch das Fahrzeugobjekt des Fahrzeugen am anderen Ende (Triebkopf, Steuerwagen oder was auch immer) einträgt. Je nachdem reicht es aber auch, zu prüfen, ob irgendein Fahrzeug auf dem Kontakt steht ([Any] in der deutschen Version [Beliebig] wenn ich mich recht erinnere).

vor 2 Stunden schrieb jloos:

Da ich in dem GKT keinen Link auf die Zählervariable unterbringen kann, muss ich wissen, welcher GKT betätigt wurde

Das verstehe ich nicht ganz. Du kannst die Zählvariable im Kontakt "unterbringen" (Objektvariable vom Typ numerisch) und Du weißt auch, welcher Kontakt gerade betätigt wurde, denn dieser steht Dir im Ereignis als Auslöser zur Verfügung. Das ist nur eine Zeile in der EV. Diese Lösung funktioniert auch mit dem Schlagwort, weil jeder Kontakt seine eigene Variable "Anz. Züge im Block" hat.

Screenshot2023-11-04225927.thumb.jpg.67bdac3bed0b12e7210f087cc3fe423c.jpg

Eine andere Frage ist es dann, wer unter welchen Umständen die Zählvariable im "richtigen" Kontakt wieder vermindert.

Beste Grüße

Phrontistes

Link to comment
Share on other sites

vor 5 Minuten schrieb jloos:

Wenn 4 Stellen auf den Zähler zugreifen, find ich es praktischer, wenn es eine Modul Variable ist. 

Das ist klar. Nur hatte ich aus dem Schlagwort "Blockzähler" geschlossen, dass es Blöcke gibt mit Anfang und Ende und es zwei Stellen gibt, die auf den Zähler zugreifen (Anfang und Ende).

Beste Grüße

Phrontistes

Link to comment
Share on other sites

vor 12 Stunden schrieb jloos:

Da ich in dem GKT keinen Link auf die Zählervariable unterbringen kann, muss ich wissen, welcher GKT betätigt wurde. 

Dafür ist aber vollkommen unerheblich, welches Fahrzeug den Kontakt betreten hat.

Du brauchst die Bedingung "Eigenschaft besitzt den Wert" um zu prüfen, welcher Kontakt betreten wurde:

welcherBlockzhler.jpg.8837c0e12c984ecfe1789790c1608c0d.jpg

geänderte Beispielanlage:  Blockzähler wird von beiden Enden ausgelöst.mbp

Viele Grüße
Götz

Edited by Goetz
Beispielanlage hinzugefügt
Link to comment
Share on other sites

Wie Götz es gerade geschrieben hat und ich es vielleicht etwas grob umschrieben hab: Sobald ein Gleiskontakt ausgelöst wird kannst du sicher sein, dass auch ein Fahrzeug auf diesem steht. Deshalb mein Hinweis, dass du die Bedingung weglassen kannst. Wo du den Zähler unterbringst hängt von der Situation ab.

Alles Gute    
Wolfgang

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...