klaus.schulz Geschrieben 7. Januar 2018 Geschrieben 7. Januar 2018 hab da ein Problem ich möchte gerne das z.B Güterloks eine Weiche schalten und Personenloks die Weiche wieder umschalten ohne das ich jeder einzelnen Lok einen befehl geben muss. Meine Loks haben den Name GLok 1 oder GLok 2 usw oder PLok 1 usw sind ca.150 Züge auf der Bahn.
h.w.stein-info Geschrieben 7. Januar 2018 Geschrieben 7. Januar 2018 (bearbeitet) Hallo Klaus Ich bin Experte in der EV , aber wenn ich Dich richtig verstehe will Du nur GLok's und PLok's trennen über einer Weiche . Mein Vorschlag wär : In dem Du über ein Kontaktgleis " Weiche_umschalten" mit jeder Lok bestimmen kannst welche der beiden Arten von Züge ( PLok' oder GLok's ) die Weiche ( z.B . Einfahrt ) schalten . " in Version 4 " Name: Weiche_schalten / Einfahrt Ereignis (Auslöser) Zug / Fahrzeugverbund betritt ein Gleis / eine Straße Fahrzeug (mit Antrieb) : [Alle Fahrzeuge (mit Antrieb)] Gleis/Straße: Weiche_schalten Bedingungen Alle Bedingungen müssen erfüllt sein (UND) Fahrzeug steht auf einem Gleis/einer Straße Fahrzeug: PLok Gleis/Straße: Weiche_schalten zB. Kontaktgleis Aktionen Aktionen für "Bedingungen sind erfüllt" Weiche schalten Gleis/Straße: 2271L zB. Märklin-K Weiche L Position: 1 Aktionen für "Bedingungen sind NICHT erfüllt" Weiche schalten Gleis/Straße: 2271L zB. Märklin-K Weiche L Position: 0 Erklärung : Hier werden alle Züge ( auch Zugverband ) über ein Kontaktgleis mit den Namen "Weiche_schalten" die Weiche '2271L' gesteuert. Nur weil eine Bedingung gegeben wurde , daß nur die PLok die Bedingung erfüllen kann . In diesem Fall fährt nur die PLok ( oder auch alle PLok's ) auch nur gerade über die Weiche . Und die GLok ( oder auch alle GLok's) keine Bedingung erfüllt , haben sie den Abzweig der Weiche erhalten. Bei meiner kleinen Test-Anlage hat es zumindest so funktioniert , wie oben geschrieben in der EV . Es ist auch nur ein einziger Eintrag für den Auslöser gebraucht worden . Die Bezeichnung " PLok " ohne Nummer und auch " GLok " ohne Nummer . Vielleicht gibt es noch eine andere Lösung/en . Viel Spaß Viele Grüße HnS Bearbeitet 7. Januar 2018 von h.w.stein-info Erklärung angehangen
klaus.schulz Geschrieben 7. Januar 2018 Autor Geschrieben 7. Januar 2018 Hallo Hans danke dir vielmals für deine schnelle Antwort , werde es mal so machen bis es eine andere Lösung gibt Grüessli Klaus
BahnLand Geschrieben 7. Januar 2018 Geschrieben 7. Januar 2018 Hallo Klaus, wenn es nur eine "PLok" und nur eine "GLok" gibt, ist der Vorschlag von Hans (@h.w.stein-info) in Ordnung. Sobald es jedoch mehrere Loks mit demselben Namen "PLok" oder "GLok" gibt, funktioniert der Vorschlag von Hans nicht mehr, da dann mit der Referenz "PLok" oder "GLok" nur noch eine Lok mit dieser Bezeichnung identifiziert werden kann. Alle anderen Loks mit demselben Namen werden nicht als solche erkannt und führen daher auch nicht zu der erwarteten Weichenschaltung. Ich habe die im nachfolgenden Bild gezeigte Demo-Anlage als mbp-Datei beigelegt, die den Unterschied zwischen der Abfrage des Lok-Namens selbst oder alternativ einer jeder Lok zugeordneten Objekt-Variable verdeutlichen soll: Bild 1: Weichenschaltung.mbp Zunächst habe ich den von Hans gemachten Vorschlag nachgestellt. Hierbei habe ich 3 Personenzugloks mit "PLok" und 3 Güterzugloks mit "GLok" bezeichnet. Bild 2: Liste der auf der Anlage befindlichen Objekte (links mit doppelten, rechts mit eindeutigen Lok-Bezeichnungen) In der obigen Liste links werden aufgrund der identischen Bezeichnung 3 Loks mit Namen "PLok" und 3 mit Namen "GLok" angezeigt. Stellt man nun in der Anlage aus Bild 1 die Ausweiche im Vordergrund anhand der von Hans skizzierten Bedingung aus Bild 3, ... Bild 3: "Fahrzeug steht auf Gleis"-Bedingung mit Lokname ... so wird genau eine Lok mit dieser Bezeichnung erkannt (es ist nicht vorhersehbar, welche), und die anderen werden "ignoriert". Bild 4: Alternative Zusatzbedingung mit Auswertung der "_Trigger1"-Variable Spezifiziert man jedoch in der Zusatzbedingiung nicht die Lok selbst über ihren Namen, sondern testet anhand der vom Modellbahn-Studio gelieferten Objekt-Variable "_Trigger1._Name", ob dieser mit der Zeichenkette "PLok" identisch ist (in obigen Bild links), werden alle Loks mit dem Namen "PLok" erkannt, und die Weiche dann entsprechend korrekt gestellt. Diese Lösung hat jedoch einen Haken: Es müssen alle Loks, die so erfasst werden und damit die Ausweiche korrekt stellen sollen, denselben Namen besitzen. Damit können sie aber nicht mehr untereinander unterschieden werden. Wenn man dagegen den Loks unterschiedliche Namen verpasst (bitte zur Probe einfach zwei Loks von "PLok" nach "PLok 2 und PLok 3" und zwei Loks von "GLok" nach "GLok 2" und "GLok 3" umbenennen - wie im Bild 2 rechts gezeigt), wird auch mit dieser Zusatzbedingung nur noch jene Lok erkannt, die ihre alte Bezeichnung "PLok" behalten hat. Möchte man eine "saubere" Lösung dieser Aufgabe erreichen, die für alle Loks mit unterschiedlichen Namen "greift", benötigt man Objekt-Variablen, die man den einzelnen Lokomotiven zuordnet, und in denen man die zu unterscheidende Eigenschaft (z.B. "PLok" oder "Glok") hinterlegt. Bild 5: Definition einer Objekt-Variable Hat man auf der Anlage eine Lok ausgewählt, kann man wie oben gezeigt dieser über den Button im Eigenschaftsfenster ganz rechs eine Objektvariable zuweisen. Objektvariable, können auch in der Ereignisverwaltung angezeigt werden. Ich habe hierfür jedoch die Eigenschaften "alt" und "neu" zugewiesen, um nicht Personenzug- und Güterzugloks, sondern Altbau- und Neubauloks unterscheiden zu können. Das Prinzip ist jedoch dasselbe. Bild 6: Anzeige von Variable in der Ereignisverwaltung Im obigen linken Fenster (vollständig 2-spaltig angezeigt) sieht man nur zwei Objekt-Variable, obwohl allen 6 Loks welche zugeordnet sind. Der Grund hierfür liegt in der nicht eindeutigen Vergabe der Loknamen. In der Objekt-Variablen-Liste kann nämlich jeder Objekt-Name nur einmal angezeigt werden (es gibt keine Unterscheidungsmöglichkeit zwischen Objekten mit gleichem Namen). Anders sieht es aus, wenn man jeder Lok einen eindeutigen Namen verpasst. Dann erhält man die im zur Hälfte angezeigten Fenster rechts angezeigte Liste. Wählt man nun in der Zusatzbedingung für das "Zug betritt Gleis"-Ereignis die in Bild 4 rechts gezeigte Variante, wobei anstelle des Namens der Lok deren Wert in der Objektvariable als Unterscheidungsmerkmal herangezogen wird, funktioniert die Schaltung für Loks mit gleichen Namen immer noch, aber sie funktioniert auch bei Loks mit unterschiedlichen Namen, da die Lok-Bezeichnungen in der Zusatzbedingung nicht mehr abgefragt werden. Da der Wert in der Objektvariable wirklich nur eine "Eigenschaft" und nicht die "Identifizierung der Lok" darstellt, kann hier problemlos derselbe Wert mehreren Objekten (hier den Loks) zugeordnet werden. Viele Grüße BahnLand
h.w.stein-info Geschrieben 7. Januar 2018 Geschrieben 7. Januar 2018 Hallo Klaus und Hans-Martin Habe ich mir schon gedacht, das es doch noch spezifischer ( genauer ) geht . Gut , das ich vorher geschrieben habe , das ich kein Experte bin . Sonst könnte ich mich nicht mehr heraus reden . Ich ging auch davon aus das es auch ohne Variablen gehen könnte . Was aber doch zeigt , das es doch nicht ohne gehen kann . Einfach ist nicht immer die gute Lösung ! Auch wenn sie zum Teil funktionieren kann , aber doch nicht ausreicht . Viele Grüße HnS
Goetz Geschrieben 8. Januar 2018 Geschrieben 8. Januar 2018 vor 15 Stunden schrieb h.w.stein-info: Gut , das ich vorher geschrieben habe , das ich kein Experte bin Genau genommen hast du versehentlich das Gegenteil geschrieben: vor 23 Stunden schrieb h.w.stein-info: Hallo Klaus Ich bin Experte in der EV
klaus.schulz Geschrieben 10. Januar 2018 Autor Geschrieben 10. Januar 2018 Am 7.1.2018 um 14:18 schrieb BahnLand: Hallo Klaus, wenn es nur eine "PLok" und nur eine "GLok" gibt, ist der Vorschlag von Hans (@h.w.stein-info) in Ordnung. Sobald es jedoch mehrere Loks mit demselben Namen "PLok" oder "GLok" gibt, funktioniert der Vorschlag von Hans nicht mehr, da dann mit der Referenz "PLok" oder "GLok" nur noch eine Lok mit dieser Bezeichnung identifiziert werden kann. Alle anderen Loks mit demselben Namen werden nicht als solche erkannt und führen daher auch nicht zu der erwarteten Weichenschaltung. Ich habe die im nachfolgenden Bild gezeigte Demo-Anlage als mbp-Datei beigelegt, die den Unterschied zwischen der Abfrage des Lok-Namens selbst oder alternativ einer jeder Lok zugeordneten Objekt-Variable verdeutlichen soll: Bild 1: Weichenschaltung.mbp Zunächst habe ich den von Hans gemachten Vorschlag nachgestellt. Hierbei habe ich 3 Personenzugloks mit "PLok" und 3 Güterzugloks mit "GLok" bezeichnet. Bild 2: Liste der auf der Anlage befindlichen Objekte (links mit doppelten, rechts mit eindeutigen Lok-Bezeichnungen) In der obigen Liste links werden aufgrund der identischen Bezeichnung 3 Loks mit Namen "PLok" und 3 mit Namen "GLok" angezeigt. Stellt man nun in der Anlage aus Bild 1 die Ausweiche im Vordergrund anhand der von Hans skizzierten Bedingung aus Bild 3, ... Bild 3: "Fahrzeug steht auf Gleis"-Bedingung mit Lokname ... so wird genau eine Lok mit dieser Bezeichnung erkannt (es ist nicht vorhersehbar, welche), und die anderen werden "ignoriert". Bild 4: Alternative Zusatzbedingung mit Auswertung der "_Trigger1"-Variable Spezifiziert man jedoch in der Zusatzbedingiung nicht die Lok selbst über ihren Namen, sondern testet anhand der vom Modellbahn-Studio gelieferten Objekt-Variable "_Trigger1._Name", ob dieser mit der Zeichenkette "PLok" identisch ist (in obigen Bild links), werden alle Loks mit dem Namen "PLok" erkannt, und die Weiche dann entsprechend korrekt gestellt. Diese Lösung hat jedoch einen Haken: Es müssen alle Loks, die so erfasst werden und damit die Ausweiche korrekt stellen sollen, denselben Namen besitzen. Damit können sie aber nicht mehr untereinander unterschieden werden. Wenn man dagegen den Loks unterschiedliche Namen verpasst (bitte zur Probe einfach zwei Loks von "PLok" nach "PLok 2 und PLok 3" und zwei Loks von "GLok" nach "GLok 2" und "GLok 3" umbenennen - wie im Bild 2 rechts gezeigt), wird auch mit dieser Zusatzbedingung nur noch jene Lok erkannt, die ihre alte Bezeichnung "PLok" behalten hat. Möchte man eine "saubere" Lösung dieser Aufgabe erreichen, die für alle Loks mit unterschiedlichen Namen "greift", benötigt man Objekt-Variablen, die man den einzelnen Lokomotiven zuordnet, und in denen man die zu unterscheidende Eigenschaft (z.B. "PLok" oder "Glok") hinterlegt. Bild 5: Definition einer Objekt-Variable Hat man auf der Anlage eine Lok ausgewählt, kann man wie oben gezeigt dieser über den Button im Eigenschaftsfenster ganz rechs eine Objektvariable zuweisen. Objektvariable, können auch in der Ereignisverwaltung angezeigt werden. Ich habe hierfür jedoch die Eigenschaften "alt" und "neu" zugewiesen, um nicht Personenzug- und Güterzugloks, sondern Altbau- und Neubauloks unterscheiden zu können. Das Prinzip ist jedoch dasselbe. Bild 6: Anzeige von Variable in der Ereignisverwaltung Im obigen linken Fenster (vollständig 2-spaltig angezeigt) sieht man nur zwei Objekt-Variable, obwohl allen 6 Loks welche zugeordnet sind. Der Grund hierfür liegt in der nicht eindeutigen Vergabe der Loknamen. In der Objekt-Variablen-Liste kann nämlich jeder Objekt-Name nur einmal angezeigt werden (es gibt keine Unterscheidungsmöglichkeit zwischen Objekten mit gleichem Namen). Anders sieht es aus, wenn man jeder Lok einen eindeutigen Namen verpasst. Dann erhält man die im zur Hälfte angezeigten Fenster rechts angezeigte Liste. Wählt man nun in der Zusatzbedingung für das "Zug betritt Gleis"-Ereignis die in Bild 4 rechts gezeigte Variante, wobei anstelle des Namens der Lok deren Wert in der Objektvariable als Unterscheidungsmerkmal herangezogen wird, funktioniert die Schaltung für Loks mit gleichen Namen immer noch, aber sie funktioniert auch bei Loks mit unterschiedlichen Namen, da die Lok-Bezeichnungen in der Zusatzbedingung nicht mehr abgefragt werden. Da der Wert in der Objektvariable wirklich nur eine "Eigenschaft" und nicht die "Identifizierung der Lok" darstellt, kann hier problemlos derselbe Wert mehreren Objekten (hier den Loks) zugeordnet werden. Viele Grüße BahnLand Hallo Bahnland tausend dank, das hat mir geholfen und sogar noch mehr jetzt kann ich auch noch andere Ereignisse verwalten wie Geschwindigkeit und Signale setzen Gruss Klaus
19-Eisenbahn-67 Geschrieben 18. Februar 2018 Geschrieben 18. Februar 2018 Hallo Bahnland, ich kann die Anlage Weichenschaltung leider nicht im MBS4 öffnen. Ich habe die Anlage runtergeladen und dann mit doppelklick versucht zu öffnen,nichts. Auch über den Downlaodpfad ging nichts. Hast du eine Idee? Gruss Michael
BahnLand Geschrieben 18. Februar 2018 Geschrieben 18. Februar 2018 Hallo Michael, hast Du die neuesete Version des Modellbahn-Studios installiert (4.2.2.0 (64 Bit)). Wenn nicht, würde ich Dich bitten, diese nachzuinstallieren. Denn mit dieser Version abgespeicherte Anlagen (insbesondere die von Dir genannte) lassen sich von älteren Versionen nicht mehr laden. Mir ist momoentan nicht bewusst, ob es sich bei dieser Version um eine Beta-Version handelt. Wenn ja, und wenn Du keine Beta-Versionen einsetzen möchtest, musst Du den nächsten offiziellen Update von Neo abwarten. Genaueres kann Dir da sicher Neo sagen. Viele Grüße BahnLand
19-Eisenbahn-67 Geschrieben 24. Februar 2018 Geschrieben 24. Februar 2018 Hallo Bahnland, ich habe Version 4.2.2.0 (32 Bit). Was muss ich tun? Bin sehr vorsichtig bei installationen, hat schon mal meinen ganzen PC lahmgelegt. Gruss Michael
FriLu Geschrieben 25. Februar 2018 Geschrieben 25. Februar 2018 Michael, wenn Du zusätzlich noch die V3 auf deinem Rechner hast, zeigt die Windows-Verknüpfung ( endung .mbs) auf die alte Version. Du musst dann "Öffnen mit..." auswählen und auf die V4 verweisen. ( oder in der Systemsteuerung >> ->Programme->Standardprogramme->Dateityp immer mit einem bestimmten Programm öffnen << die V4 auswählen ). Gruß ~ Lutz
19-Eisenbahn-67 Geschrieben 25. Februar 2018 Geschrieben 25. Februar 2018 Hallo Lutz, V3 und V4 laufen auf verschiedenen Rechner. Gruss Michael
BahnLand Geschrieben 25. Februar 2018 Geschrieben 25. Februar 2018 Hallo Michael, da es bis auf die Bit-Variante dieselbe Version ist, müsstest Du die Anlage mit Deiner 32-Bit-Version erfolgreich laden können. Falls nicht, musst Du bei Neo nachfragen. Viele Grüße BahnLand
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