MichelLombart Geschrieben 6. November 2021 Geschrieben 6. November 2021 Hallo zusammen. Ich versuche erfolglos, ein Schlüsselwort als Variable in einem EV-Benutzerereignis zu übergeben. Ich kann problemlos eine Liste übergeben, aber nicht ein Schlüsselwort. Wie kann ich das tun? Vielen Dank und noch einen schönen Tag.
HaNNoveraNer Geschrieben 6. November 2021 Geschrieben 6. November 2021 Einfach den Namen des Keywords als Text übergeben.
Goetz Geschrieben 6. November 2021 Geschrieben 6. November 2021 Hallo Michel, vor einer Stunde schrieb michellombart: Ich kann problemlos eine Liste übergeben, aber nicht ein Schlüsselwort. Das liegt eventuell daran, dass das Schlüsselwort selbst der Name der Variablen ist und "keyword" ihr Inhalt. Deshalb findest du kein generisches "keyword", welches du übergeben könntest. Für die Übergabe ist daher sinnvoller, eine generische Variable anzulegen und dort dein Keyword als Text zu speichern. Alternativ kannst du die ganze "Variables" Liste durchforsten und dann den Bezeichner der Zelle zurückgeben, die ein "keyword" enthält. Aber das scheint mir zu sehr "brute force" zu sein. @HaNNoveraNerhat inzwischen perfekt zusammen gefasst, was ich hier umständlich beschreibe. Ich schicke es mal trotzdem ab - als Ergänzung zu seinem Hinweis. Viele Grüße Götz
MichelLombart Geschrieben 6. November 2021 Autor Geschrieben 6. November 2021 @HaNNoveraNer und @Goetz Vielen Dank für Ihre Antworten. Ich werde versuchen, Ihre Ratschläge am späten Nachmittag umzusetzen, da ich wegfahren muss. Michel.
MichelLombart Geschrieben 6. November 2021 Autor Geschrieben 6. November 2021 @HaNNoveraNer und @Goetz, Ist es das, was Sie dachten? Auf jeden Fall funktioniert es wie erwartet! Vielen Dank für Ihre Hilfe. test keyword as param.mbp Michel
HaNNoveraNer Geschrieben 6. November 2021 Geschrieben 6. November 2021 @Goetz Wenn ich dem Kontakt ein Schlagwort "Secteur #0" gebe, wie kann ich dann mit diesem Schlagwort alle Signale mit dem gleichen Schlagwort schalten? :-) Gruß Thomas
Goetz Geschrieben 6. November 2021 Geschrieben 6. November 2021 (bearbeitet) vor 12 Minuten schrieb HaNNoveraNer: Wenn ich dem Kontakt ein Schlagwort "Secteur #0" gebe, wie kann ich dann mit diesem Schlagwort alle Signale mit dem gleichen Schlagwort schalten? in einem Wort: umständlich Drum hat Michel den richtigen Weg gewählt und im Kontakt den Namen des Schlagwortes in einer Text-Variablen hinterlegt. Die kann er bequem auslesen und dann den Inhalt der Variablen als Schlagwort für seine "Wiederholung für alle Elemente mit dem Schlagwort" benutzen. Der Zweck eines Schlagwortes ist, viele gleichartige Objekte zusammenzufassen und gemeinsam ansprechen zu können. Schlagworte benutzt man nicht zur Unterscheidung (wie ich es hier oft sehe). Es ist nicht klug, Zügen das Schlagwort "Personenzug", "Güterzug", "Eilzug" etc. zu geben. Besser ist eine Textvariable "Zuggattung" und darin dann das passende Wort "Personenzug", "Güterzug" oder "Eilzug". So kann ich diese eine Variable auslesen um zu erkennen, um welchen Zug es sich handelt. Wer Zugarten per Schlagwort unterscheidet, der hat am Ende eine ganze Reihe Bedingungen in seinem Code. Weil er dann jedes Schlagwort einzeln auf seine Existenz prüfen muss. Das funktioniert zwar, ist aber von hinten durch die Brust ins Auge. Liest man hingegen eine Variable "Zuggattung" aus, dann kann man anschließend direkt die Befehle ausführen, welche zum gefundenen Wort passen. Am allerbesten geht das mittels Tabellen, in denen diese Begriffe der Bezeichner einer Zelle sind. Damit erspart man sich die ganze if-Orgie komplett. Viele Grüße Götz Bearbeitet 6. November 2021 von Goetz Ergänzungen
MichelLombart Geschrieben 6. November 2021 Autor Geschrieben 6. November 2021 vor 41 Minuten schrieb Goetz: Es ist nicht klug, Zügen das Schlagwort "Personenzug", "Güterzug", "Eilzug" etc. zu geben. Besser ist eine Textvariable "Zuggattung" und darin dann das passende Wort "Personenzug", "Güterzug" oder "Eilzug". So kann ich diese eine Variable auslesen um zu erkennen, um welchen Zug es sich handelt. Ich werde die Anpassung der Zugtypen für das Projekt, an dem ich gerade arbeite, vornehmen. Es stimmt, dass es einfacher zu handhaben ist. Grüße. Michel.
bigrala Geschrieben 5. März Geschrieben 5. März Am 6.11.2021 um 19:22 schrieb Goetz: Es ist nicht klug, Zügen das Schlagwort "Personenzug", "Güterzug", "Eilzug" etc. zu geben. Besser ist eine Textvariable "Zuggattung" und darin dann das passende Wort "Personenzug", "Güterzug" oder "Eilzug". So kann ich diese eine Variable auslesen um zu erkennen, um welchen Zug es sich handelt. Hallo Goetz, Ist das noch immer so, oder hat sich mit den Versionen auch diese Aussage geändert ? Wenn das noch so ist, wie sollte das dann optimaler Weise nach gehen ? Eine Tabelle mit allen möglichen Parameter Einträgen in jede Lok ? (ZT = ZugTyp) Tabelle "ZugTyp" ZT01 - Text - Nahverkehr ZT02 - Text - Fernverkehr ZT03 - Text - Güterzug ZT04 - Text - Personenzug ZT05 - Text - Eilzug ZT06 - Text - Schnellzug usw Wie fragst Du dann z.B. bei einer Bedingung das Ganze ab ? Du willst wissen ob der Zug ein Personenzug für Nahverkehr ist - dann ...... Eigenschaft/Variable besitz den Wert Auslöser Fahrzeug ?????????
Roter Brummer Geschrieben 5. März Geschrieben 5. März vor 1 Stunde schrieb bigrala: Du willst wissen ob der Zug ein Personenzug für Nahverkehr ist - dann ...... Eigenschaft/Variable besitz den Wert Auslöser Fahrzeug ????????? Einfach so: Damit kannst du z.B. eine Weiche stellen: Alle Züge mit dem Variablenwert "Nahverkehr" biegen ab; alle anderen fahren geradeaus. Eine Tabelle braucht es dabei nicht. Meiner persönlichen Meinung nach ist es außerdem besser, Namen von Variablen auszuschreiben. Mit den Abkürzungen kommt man spätestens dann, wenn man die Ereignisverwaltung drei Monate nicht mehr angefasst hat, komplett durcheinander. HG Brummi
bigrala Geschrieben 5. März Geschrieben 5. März (bearbeitet) Hmm, worin liegt denn der Vorteil gegenüber Schlagworten. Das erschließt sich mit nicht wirklich. Ob den Wert einer Variablen oder die Existenz einer Variablen in der Lok abfrage ..... das ist doch der gleiche Aufwand - oder was übersehe ich dabei ? Bezüglich Tabelle, das hatte Götz angesprochen, dass das am allerbesten wäre. Bearbeitet 5. März von bigrala
Goetz Geschrieben 5. März Geschrieben 5. März (bearbeitet) vor 1 Stunde schrieb bigrala: oder was übersehe ich dabei ? Ein Schlagwort ist wie ein Variablenname. Also müsstest du einzeln nach jedem Schlagwort fragen. Eine Variable mit dem Namen "Zuggattung" müsstest du hingegen nur einmal auslesen und hättest so mit einem Griff die Zuggattung zur Hand. Liest doch mal bitte die ganze Antwort von mir, die du oben zitiert hast. Da steht auch drin, warum es ist wie es ist und wie man damit umgehen kann. vor 1 Stunde schrieb bigrala: Bezüglich Tabelle, das hatte Götz angesprochen Tabellen, in denen die Zuggattung der Bezeichner ist, Ralf. Weißt du, was der Bezeichner in einer Tabelle ist? Hier siehst du ein Beispiel. Die Tabelle "Einfahrten" hat drei Einträge, deren Bezeichner eine der Zuggattungen ist. Jeder Eintrag ist dann wiederum eine Liste mit den erlaubten Fahrstraßen für diese Zuggattung. In der Liste haben die Einträge keine Bezeichner, sondern sie sind durchnummeriert. Das unterscheidet eine Liste von einer Tabelle. Viele Grüße Götz Bearbeitet 5. März von Goetz Ergänzungen
EASY Geschrieben 5. März Geschrieben 5. März (bearbeitet) Hallo, Am 6.11.2021 um 19:22 schrieb Goetz: Am allerbesten geht das mittels Tabellen, in denen diese Begriffe der Bezeichner einer Zelle sind. Damit erspart man sich die ganze if-Orgie komplett. vor 4 Stunden schrieb bigrala: Bezüglich Tabelle, das hatte Götz angesprochen, dass das am allerbesten wäre. Ich habe ein kleines Beispiel gebaut... Wenn der entsprechende Zugtyp dem in der Lokvariablen "Zugtyp" entspricht, sollen die entsprechenden Signale umgeschaltet werden... Die Lok vom Typ "Fernverkehr" hat folgende Variableneinträge... Wichtig! Der Text in der Variablen "Zugtyp" entspricht dem Namen der Tabelle für die Signale... ... die Tabelle für die Signale hat folgende Einträge... So sieht es für den "Nahverkehr" aus... Die Darstellung für den Güterverkehr ist dem Schema entsprechend (wird deshalb nicht auch noch dargestellt)... Der Eintrag in der EV sieht dann so aus... Es gibt nur eine Abfrage ob die Variable "Zugtyp" existiert (als Absicherung für den Fall, daß ein Zug nicht typisiert wurde). Der Vorteil dieser Methode liegt darin, daß weitere Zugtypen einfach nach dem Schema für die Variablen in der Lok erstellt werden können ohne die EV ändern zu müssen. Zum ausprobieren... 2024-03-05-Zugtypen unterscheiden 01.mbp Gruß EASY Bearbeitet 5. März von EASY
bigrala Geschrieben 6. März Geschrieben 6. März @Goetz @Easy Vielen Dank für eure Bemühungen, aber irgendwie habe ich da eine Denkblockade. Klar, das Beispiel von Goetz ist gut und notwendig, wenn ich z.B. zufällige FS für die Einfahrt ermitteln will. Dann kann ich (in diesem Fall) eine Zufallszahl zwischen 1 und 4 aus der Liste ermitteln lassen. ---- Mache ich auch schon seit einiger Zeit. Beim Beispiel von Easy, dass ich eine Liste über Whg abarbeiten lasse, kann ich auch nachvollziehen. Aber ..... ich benutze bisher Schlagwörter um z.B. Blocksignale oder BHF Signale zusammenzufassen. Lege in den Signalen mögliche FS ab und aktiviere diese wenn ein Signal übr ein Schlagwort angesprochen wird. Außerdem habe ich den Loks bisher Schlagwörter für Fern- Nah- und Güterverkehr gegeben und das hat auch immer ganz gut funktioniert. Ob zur Auswahl einer FS bei Ein-/Ausfahrt oder zum Start aus einem Depot. Gerade wenn Züge mehrer Parameter haben, wie z.B. Güterzug für Nah- oder Fernverkehr, Nahverkehr mit SBahn, Eilzug etc. Dann habe ich zwei Bedingung "Variable existiert" Güterzug und Nahverkehr oder Ferverkehr und das wars. Bei dem Einsatz von Tabellen und Listen muss ich doch genauso abfragen, nur eben nicht nach Schlagworten sondern nach Variablen. Habe mal versucht je zwei loks mit Text Variablen für Fernverkehr, Nahverkehr und Güterverkehr versehen und in ein Depot geschickt. Wollte sie dann mal 5 sek nach betreten eines Depots din gleichen Zugtyp wieder starten. Bisher habe ich zur Auswahl welche Zugart gestartet werden soll Schlagworte benutzt. Wenn ich es mit der Variablen Version probiere klappt es nicht. Ich komme fast zu der Überzeugung, dass bei mir Hopfen und Malz verloren ist und eure Mühen umsonst sind.
Goetz Geschrieben 6. März Geschrieben 6. März (bearbeitet) vor 13 Minuten schrieb bigrala: Bei dem Einsatz von Tabellen und Listen muss ich doch genauso abfragen Nein, du entnimmst der Variable die Zuggattung und benutzt dieses Wort direkt als Adressierung in der Tabelle. Ganz ohne Abfrage. vor 13 Minuten schrieb bigrala: Habe mal versucht je zwei loks mit Text Variablen für Fernverkehr, Nahverkehr und Güterverkehr versehen und in ein Depot geschickt. Wollte sie dann mal 5 sek nach betreten eines Depots din gleichen Zugtyp wieder starten. Bisher habe ich zur Auswahl welche Zugart gestartet werden soll Schlagworte benutzt. Wenn ich es mit der Variablen Version probiere klappt es nicht. Das ist ein anderes Thema. Für die Unterscheidung der Züge im Depot benötigst du in der Tat das Schlagwort. Da nützt die Variable nichts. Bearbeitet 6. März von Goetz
EASY Geschrieben 6. März Geschrieben 6. März Hallo, vor 3 Stunden schrieb bigrala: Ich komme fast zu der Überzeugung, dass bei mir Hopfen und Malz verloren ist und eure Mühen umsonst sind. ... wenn Du Dich hinsetzt und einmal gemütlich mit einem Getränk (in dem die beiden Stoffe vorkommen) in der Hand darüber nachdenkst, kommt vielleicht doch noch die Erkenntnis, wann es sinnvoll sein könnte ein Schlagwort oder eine Variable zu setzen (prost!). (Hinweis: manchmal ist etwas auch einfach nur abhängig vom Anwendungsfall und es gibt nicht die eine Antwort) Gruß EASY
Nico Essers Geschrieben 8. Mai Geschrieben 8. Mai (bearbeitet) On 3/5/2024 at 10:15 PM, EASY said: Hallo, Ich habe ein kleines Beispiel gebaut... Wenn der entsprechende Zugtyp dem in der Lokvariablen "Zugtyp" entspricht, sollen die entsprechenden Signale umgeschaltet werden... Die Lok vom Typ "Fernverkehr" hat folgende Variableneinträge... Wichtig! Der Text in der Variablen "Zugtyp" entspricht dem Namen der Tabelle für die Signale... ... die Tabelle für die Signale hat folgende Einträge... So sieht es für den "Nahverkehr" aus... Die Darstellung für den Güterverkehr ist dem Schema entsprechend (wird deshalb nicht auch noch dargestellt)... Der Eintrag in der EV sieht dann so aus... Es gibt nur eine Abfrage ob die Variable "Zugtyp" existiert (als Absicherung für den Fall, daß ein Zug nicht typisiert wurde). Der Vorteil dieser Methode liegt darin, daß weitere Zugtypen einfach nach dem Schema für die Variablen in der Lok erstellt werden können ohne die EV ändern zu müssen. Zum ausprobieren... 2024-03-05-Zugtypen unterscheiden 01.mbp Gruß EASY Hallo, Ich habe versucht, dieses Beispiel auf meinen Bahn anzuwenden, konnte es aber nicht herausfinden. Ich spiele erst seit 2 Wochen mit MBS. Anstelle von Signalen möchte ich die Fahrstraßen je nach Zugtyp wechseln. Ich nutze für jede Route zwischen 2 Signalen eine eigene Fahrstraße, so dass bei jedem Signal die nachfolgende Route neu ermittelt werden kann, wodurch unvorhersehbare Routen entstehen. Ich habe einen Teil meines Gleissen bereits mit den nötigen EV's ausgestattet, aber ich stecke bei Kontakt 8 fest. Die HSL fährt weiterhin regelmäßig zur Talstrecke, während dies nicht erlaubt ist, wie aus der beigefügten Anlage von 7-5-24 hervorgeht. Vorgesehen ist, dass die HSL-Züge (High Speed Line) nur über die Linie 14b zum Bahnhof fahren dürfen, die Güterzüge nur über die Linie 14a zum Nebengleis und die Personenzüge random in beide Richtungen. Der Kontakt 8 steuert somit je nach Zugtyp den Weige 12 mit den zugehörigen Fahrstrassen. Ich hoffe, Sie können mir weiterhelfen. Vielen Dank im Voraus Bunderbahn zolder 7-5-2024.mbp Bearbeitet 8. Mai von Nico Essers
Goetz Geschrieben 8. Mai Geschrieben 8. Mai vor 25 Minuten schrieb Nico Essers: Vorgesehen ist, dass die HSL-Züge (High Speed Line) nur über die Linie 14b zum Bahnhof fahren dürfen, die Güterzüge nur über die Linie 14a zum Nebengleis und die Personenzüge random in beide Richtungen. Deine EV sagt am Kontakt 8: Wenn es kein Güterzug ist, dann Route 14a, sonst (= Güterzug) zufällig 14a oder 14b Viele Grüße Götz
Nico Essers Geschrieben 8. Mai Geschrieben 8. Mai (bearbeitet) Leider funktioniert es nicht wie vorgesehen. Ich habe die HSL als besseren Namen in Intercity geändert. Die Ereignisprotekollierung zeigt, dass die Fahrstraßen für den Güterzug und den Personenzug wie erwartet sauber aktiviert sind. Allerdings passiert laut Ereignisprotekollierung am Intercity nichts und er stoppt vor Signal 14. Mal sehen, ob wir das morgen lösen können Bearbeitet 8. Mai von Nico Essers
Nico Essers Geschrieben 9. Mai Geschrieben 9. Mai Endlich eine Variante gefunden, die richtig funktioniert. Anschließend erwies sich eine kleine Anpassung in der Sortierung der Blöcke als ausreichend. Die Ereignisverwaltung sieht nun wie folgt aus.
Goetz Geschrieben 9. Mai Geschrieben 9. Mai Mit der letzten Prüfung (Personentrein) schließt du alle Züge aus, die keiner der drei Kategorien angehören. Falls ein Zug keins der drei Schlagwörter hat, wird für ihn keine Fahrstraße aktiviert werden.
Nico Essers Geschrieben 9. Mai Geschrieben 9. Mai Vielen Dank für diesen Kommentar Götz, andere Typen erwarte ich nicht, werde dies aber auf jeden Fall als Kommentar hinzufügen
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen.
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden