bigrala Posted July 1, 2022 Share Posted July 1, 2022 Hallo, ich würde gerne jedem Zug eine Variable mit dem Zugtyp zuweisen. Zugtpyen z.B. ZugGüter, ZugNah, ZugFern usw Diese soll beim Zusammenstellen des Zuges gesetzt und an diversen Stellen auf der Strecke sollen Aktionen in Abhängigkeit des Zugtyps stattfinden. Aber irgendwie steh ich mal wieder auf dem Schlauch ...... Okay der Lock eine Variable "ZugTyp" vom Typ Text mit dem Wert "ZugFern" gegeben. Wenn ich dann eine Bedingung für einen Gleiskontakt deffinieren will, dann wäle ich den Auslöser/Fahrzeug soll glleich der TextVariablen in der Lok sein. Aber genau das klappt irgendwie nicht - ich inde nichts wie ich den Zugtyp abfragen kann. Hatte gedacht mit Variable erweitert Auslöser/Fahrzeug und dann Text "......." zu verwenden, aber in der Auswahlliste kann ich keinen der Zugtypen finden. Wo hab ich meinen Denkfehler ? Wollte es erst mit Schlagworten machen, aber die kann ich in einer Bedingung nicht abfragen. Link to comment Share on other sites More sharing options...
Goetz Posted July 1, 2022 Share Posted July 1, 2022 vor 5 Minuten schrieb bigrala: Wo hab ich meinen Denkfehler ? Hallo Ralf, du benötigst für die Prüfung die erweiterte Variable. Gruß Götz Link to comment Share on other sites More sharing options...
bigrala Posted July 1, 2022 Author Share Posted July 1, 2022 Okay, super klappt. Vielen Dank Link to comment Share on other sites More sharing options...
bigrala Posted July 22, 2022 Author Share Posted July 22, 2022 Ich habe mein mein Vorhaben einmal umgedacht ..... Mein Vorhaben; Ich möchte das jede Lok ihre Aufgabe mit sich führt und an verschiedenen Stellen der Anlage, entsprechend ihrer Aufgaben ein Ereignis ausgelöst bzw eine Fahrstrasse aktiviert wird. Dazu habe ich aktuell jeder Lok vier boolsche Variabeln (Personen/Güter/Nah/Fern) gegeben. Diese Variabeln kann ich zum Beispiel beim Zusammenstellen des Zuges bereits mehr oder weniger automatisch setzen. Kommt eine Lok z.B. an einem EinfahrSignal an und wird als Güterzug identifiziert, so wird geprüft ob eines der beiden "Durchfahrtsgleise" frei sind, wenn ja wird die entsprechende Fahrstrasse aktiviert und der Güterzug fährt ein/durch. Sind beide besetzt, so wartet er am Einfahrsignal. Da die eigentliche Abfrage mit den Anweisungen an verschiedenen Stellen (Ein- und Ausfahrt) benötigt wird, habe ich diese in ein benutzerdefiniertes Ereignis gepackt. Nun habe ich zwei Fragen; 1- Verlässt ein Zug den Bahnhof, so wird das benutzerdefinierte Ereignis aufgerufen und geprüft ob das Einfahrsignal auf HALT steht, ob an ihm ein Zug steht und ob eine der beiden Durchfahrtsgleise frei sind. Jetzt möchte ich aber auch noch abfragen, ob z.B. der boolsche Wert für GÜTER True ist. Also ..... ist die boolsche Variable in der Lok auf True, welche am Einfahrtssignal steht. Hier komme ich nicht weiter, ich vermute mal dass man hier mit verschachtelten erweiterten Variablen arbeiten muss. 2 - Eine allgemeine Frage an alle ........ wie regelt Ihr das effektiv mit der Zugidentifizierung bzw den Aufgaben der Züge ? Link to comment Share on other sites More sharing options...
Old Grey Posted July 22, 2022 Share Posted July 22, 2022 Hallo, bei mir wird der Zugtyp über ein Schlagwort (Personen, Güter usw.) bestimmt. Dann brauche ich beim Auslösen eines Ereignisses nur noch prüfen ob diese Variable existiert. Gruß Old Grey Link to comment Share on other sites More sharing options...
Goetz Posted July 22, 2022 Share Posted July 22, 2022 Hallo Ralf, vor einer Stunde schrieb bigrala: Verlässt ein Zug den Bahnhof, so wird das benutzerdefinierte Ereignis aufgerufen ... und bei diesem Aufruf kannst du den Zug als Argument an das benutzerdefinierte Ereignis übergeben. Dann kannst du dort auf ihn zugreifen und in einer Bedingung prüfen, ob beispielsweise seine Variable "Güterzug" true ist Der Zug, den du beim Aufruf übergibst, wird im benutzerdefinierten Ereignis als "Auslöser" geführt. Du brauchst bei der Prüfung - wie du schon richtig vermutest - die erweiterte Variable. Viele Grüße Götz Link to comment Share on other sites More sharing options...
bigrala Posted July 22, 2022 Author Share Posted July 22, 2022 vor 21 Minuten schrieb Goetz: kannst du den Zug als Argument an das benutzerdefinierte Ereignis übergeben Hallo Götz, .....hm, wenn ich "Ereignis/benutzerdefiniertes Ereignis auslösen" wähle, wie kann ich da einen Parameter übergeben ? Im BenutzerEreignis, da gibt es eine ParameterListe aber noch leer. Link to comment Share on other sites More sharing options...
Herman Posted July 22, 2022 Share Posted July 22, 2022 (edited) 1 hour ago, bigrala said: benutzerdefiniertes Ereignis Hello @bigrala, For the first parameter click on ( no parameters ) and define. For the next parameter click on +. If you want to call this routine, you will see the parameter.Für den ersten Parameter klicken Sie auf ( no parameters ) und definieren Sie ihn. Für den nächsten Parameter klicken Sie auf +. Wenn Sie diese Routine aufrufen wollen, sehen Sie den Parameter.. Hilft das? Regards, Grüße , Herman Edited July 22, 2022 by Herman extra picture Link to comment Share on other sites More sharing options...
bigrala Posted July 22, 2022 Author Share Posted July 22, 2022 (edited) Hello Hermann, Thank you but I don't understand the procedure. Also aktuell habe ich es so..... Im ersten Bild werden die Lokparameter an das Einfahrsignal übergeben, es wird geprüft ob das Signal auf HALT steht und ob ein Zug am Signal steht. Im zweiten Bild wird abgefragt, ob im Signal der GÜTER auf True steht. Anschließend werden die beiden Durchfahrgleise (2 und 7) nacheinander auf FREI abgefragt und wenn eins frei ist, soll die entsprechende Fahrstraße aktiviert werden. Beim Ausfahrkontakt werden ebenfalls die Lokparameter übergeben werden und es wird geprüft ob das Einfahrsignal auf HALT steht und ob ein Zug am Signal steht, dann wird das benutzerdefinierte Ereignis aufgerufen. Soweit mein Gedankengang ..... nur ..... der Zug startet nicht bzw die Fahrstrasse wird anscheinend nicht aktiviert. Habe mal die Protokollierung drangehängt. Edited July 22, 2022 by bigrala Link to comment Share on other sites More sharing options...
Goetz Posted July 22, 2022 Share Posted July 22, 2022 (edited) vor 15 Minuten schrieb bigrala: but I don't understand the procedure. Dann noch einmal: Im benutzerdefinierten Ereignis steht oben "ohne Parameter". Da klickst du drauf, legst eine neue Variable vom Typ "Objekt" an und benennst sie, wie du willst. Zum Beispiel "Zug". (Bei Herman heißt sie "LocType"). Wenn du jetzt an anderer Stelle das benutzerdefinierte Ereignis aufrufst, dann hast du dort ein neues Feld mit dem Namen deiner Variablen. In dieses Feld gibst du den Auslöser "Fahrzeug". So kannst du das auslösende Fahrzeug an dein benutzerdefiniertes Ereignis übergeben. Und wenn du es dort zur Verfügung hast, dann kannst du auch seine Variablen dort auswerten. Viele Grüße Götz Edited July 22, 2022 by Goetz Link to comment Share on other sites More sharing options...
bigrala Posted July 22, 2022 Author Share Posted July 22, 2022 Hallo Götz, mit Deiner Erklärung hab ich es verstanden, wie das mit den Parametern funktioniert. Dass dann ein neues Feld entsteht, kannte ich bisher noch nicht. Aber...... das funktioniert, wenn der fragliche Zug der Auslöser ist, z.B. der Zug am Einfahrsignal ankommt. Ich habe aber auch den Fall, dass ein ausfahrender Zug die Prüfung für den am Einfahrsignal stehenden auslösen soll. Dies ist der Fall, wenn beide Gütergleise besetzt waren und nun ein Gütergleis frei wird. Deshalb hatte ich es so versucht, dass ich alle Variablen ins Signal übergebe und dann auf das Signal zugreife. Link to comment Share on other sites More sharing options...
bigrala Posted September 10, 2022 Author Share Posted September 10, 2022 Könnt Ihr mir nochmal auf die Sprünge helfen ? Wie Götz das so einleuchtend beschrieben hat, funktioniert das mit den Parametern und dem Auslöser, wenn der die Variablen in dem Auslösenden Zug stehen. Aber ich habe auch den Fall, dass z.B. an der Einfahrt West ein Zug steht weil alle oder sein Gleis besetzt ist. Nun verläßt ein Zug den Bhf und löst nach verlassen des Ausfahrkontakts eine Prüfung aller Einfahrsignale aus. Die wartenden Züge sollen nun auf Ihren ZugTyp (Personen, Nah, Fern ,Güter.....) überprüft werden und die entsprechenden FS aktiviert werden. Das Ganze funktioniert auch einwandfrei, auch mit der Ermittlung des Zugtyps für den auslösenden Zug. Für die wartenden Züge funktioniert die ZugTypbestimmung jedoch noch nicht. Mir fehlt da die Abfrage ...... ist die Variable 1 in der Lok an Signal XXX = True, ist die Variable 2 der Lok an Signal XXX = True ........ Wie spreche ich die Lok an Signal XXX an ? Link to comment Share on other sites More sharing options...
Goetz Posted September 10, 2022 Share Posted September 10, 2022 Hallo @bigrala, den Zug am Signal bekommst du am Besten über eine Wiederholung zu fassen. Und dann prüfst du in der Wiederholung, ob im gefundenen Fahrzeug die Variable auf true steht. Das klappt so aber nur, wenn das angetriebene Fahrzeug auf dem Kontakt steht. Falls Züge auch geschoben werden, musst du in einer weiteren Wiederholung alle Fahrzeuge untersuchen, die zu diesem Zugverband gehören. Alternativ speicherst du den Zug bei Ankunft im Signal. Dann kannst du ihn dort bei Bedarf abrufen. Viele Grüße Götz Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now