prinz Geschrieben Freitag um 16:00 Uhr Geschrieben Freitag um 16:00 Uhr (bearbeitet) Hallo @rainer.kreuzer , Dies wird einem Tutorial nicht gerecht. Es ist eher ein Vorschlag für eine mögliche Lösung. Ich habe Deine Anfrage hierzu in dem Tutorial zur Drehscheibe gelesen. Hier ein Vorschlag, wie man dieses Thema angehen kann. Dazu habe ich eine Beispielanlage als Entwurf hochgeladen: Zugzielanzeige (ID 81316743-3E6A-437B-B9AF-FEAFB5E6DD36 ) Vorab: Für die von Dir verwendete Zugzielanzeige gibt es verschiedene Variationen, bei denen manche Bezeichnungen der Textfelder abweichend sind. Aber bevor Du dort hineinschaust, ein paar Fragen, die ich mir immer bei neuen Aufgaben stelle: Wer weiß was: Wer hat Angaben für die Zugzielanzeige? Dies ist in meinem Beispiel der Zug (Lok), in der diese Angaben als Variablen hinterlegt sind. Dazu ist aber notwendig, dass der Zug als Objekt existiert und nicht gerade in einem Depot steckt. Es könnte genauso gut eine Liste mit Fahrplandaten sein, aus der z.B. mit der Zugnummer (=Name der Lok) die Daten ermittelt werden. Wer kennt die Anzeigen eines einzelnen (Teil-)Bahnsteigs ? Dies ist in meinem Beispiel das Ausfahrsignal des Gleises. In einer Liste (Attribute) sind die Anzeigetafeln des Bahnsteigs registriert. Dieses Signal ist in meinem Beispiel fest als Variable bei den Ausfahrtsignalen des SBF hinterlegt. Genauso gut könnte es als letztes Element einer Fahrstraße ermittelt werden. Woher kommt der Wert für die Abfahrtszeit? Wenn hier kein Fahrplan zugrunde liegt, nehme ich die aktuelle Layoutzeit + einen konstanten Wert. Wann sollen die Daten angezeigt werden? Dies ist natürlich von der Anlage abhängig. Frühestens, wenn das Bahnsteiggleis feststeht, spätestens wenn der Zug in den Bahnhof einfährt. In meinem Beispiel erfolgt die Anzeige, wenn der Zug das vorige Signal (SBF-Signal) verlässt. Wann soll die Anzeige wieder gelöscht werden? Das ist wohl bei der Ausfahrt des Zuges. Was ist, wenn ein Zug schon die Anzeige auslösen möchte, dort aber noch ein anderer Zug steht? Für diesen Fall ist vorgesehen, dass dieser Zug "Zwischengespeichert" wird und bei Löschen der Anzeige der Folgezug angezeigt wird. Wenn mehrere Einfahrten zu einem Bahnsteig möglich sind, muss dieser Punkt nochmal eingearbeitet werden. Zur Unterscheidung muss jede Zugzielanzeige als Variablen einen Bool-Wert "leer" mit Wert false erhalten. Das folgende Bild soll nochmal die Zusammenhänge darstellen: Die notwendigen Daten für die Anzeige sind bei der Lok des Zuges hinterlegt: Das Ereignis "ZZAs setzen" wird ausgelöst, wenn das Zielsignal (ASig des Bahnhofs) feststehen. Als Parameter wird das ASig sowie das auslösende Fahrzeug (=Lok) übergeben. Für alle Zugzielanzeigen des Bahnsteigs werden die Werte gesetzt. Für jede einzelne Zugzielanzeige des Bahnsteigs werden dann die Anzeigewerte gesetzt. Sollte noch ein Eintrag vorhanden sein, so wird der Zug für die Anzeige vorgemerkt. Wird das ASig verlassen, dann werden die Inhalte der Zugzielanzeigen des Bahnsteigs gelöscht. Sollte schon ein Folgezug vorgemerkt sein, so werden statt dessen die Werte des Folgezuges angezeigt In der EV findest Du diese Einträge unter Zugzielanzeige -> Bahnsteiganzeige Vorbereitet sind Ereignisse zur Behandlung einer Gesamtzuganzeige, wie sie z.B. in großen Bahnsteigen in der Nähe des Eingangs untergebracht sind. Da diese Anzeigen jedoch schon lange vor Ankunft des Zuges erscheinen, ist es hier schwieriger, so früh die Daten zu ermitteln (z.B. Gleis). Sofern diese Werte aber feststehen, könnte ich das Beispiel hierum erweitern. Viele Grüße, Wolfgang Bearbeitet Freitag um 16:02 Uhr von prinz
rainer.kreuzer Geschrieben Freitag um 18:32 Uhr Geschrieben Freitag um 18:32 Uhr vor 2 Stunden schrieb prinz: Vorab: Für die von Dir verwendete Zugzielanzeige gibt es verschiedene Variationen, bei denen manche Bezeichnungen der Textfelder abweichend sind. Hallo @prinz, Die Sache mit den verschiedenen Variationen der Anzeiger macht meine Lösung so ellenlang, da ich mit der EV nicht so vertraut bin. Ich bekommen zwar im Prinzip meine Lösung, die ist aber nicht vorzeigefähig. Ich werde mir deinen Vorschlag gleich morgen früh ansehen und mich wieder melden. Danke aber schon einmal für deine Hilfe. LG, Rainer
rainer.kreuzer Geschrieben Samstag um 05:52 Uhr Geschrieben Samstag um 05:52 Uhr vor 13 Stunden schrieb prinz: Dies wird einem Tutorial nicht gerecht. Es ist eher ein Vorschlag für eine mögliche Lösung So, bin wieder da. Hier eine kurze Zusammenfassung der Lage. Es handelt sich hier um einen Bahnhof mit langer Bahnsteigen, alles schön gerade und ohne Schnörkel. Es gibt eine zweigleisige Strecke mit Oberleitung, eine ohne. Beide Strecken können aus Schattenbahnhöfen bedient werden. Hier gibt es keinen Zufall und keine Überraschungen, meistens. Jeder Zug hat sein bestimmtes Ziel im Hbf und sein Ziel in einem der Schattenbahnhöfe, die zum Teil aus Gleisen mit ungeraden Längen bestehen. Es passt quasi jeder Ziel in seinen Abstellplatz. Es gibt auch kein Gedrängel, da jeder Zug einen anderen aufruft. Beide Strecken können den Hbf bedienen, ohne sich in die Quere zu kommen. Bei Ausfahrt aus den Schattenbahnhöfen werden die Zuglaufschilder an den Fahrzeugen gesetzt, vor Einfahrt in den Bahnhof die Zugzielanzeiger. Jeder Zug hat eine eindeutige ID. Das funktioniert auch so eben, aber mit erheblichem Aufwand, da jedes Feld der verschiedenen Anzeiger einzeln geschrieben wird. Verwendet werden alle Variationen der Schilder. Mir fehlt quasi die Datenbank im Hintergrund, Tabellen, Listen usw. Hier gibt es für mich Nachholbedarf. Ich beschäftige mich jetzt seit einem Jahr mit dem Studio und vernachlässige schon andere Aufgaben, da ich mich gerade mit SketchUp (nicht alles kann gebaut werden oder gibt es hier, was ich brauche), Lua (schöne und nützliche Infos im Forum von @Goetz und anderen) und der EV im Allgemeinen. Deshalb bin ich immer froh, Beträge hier zu finden, die ich für mich ausschlachten kann. Selber Zusteuern werde ich wohl kaum etwas. Wäre ich 5 Jahre eher auf das Studio getroffen, gebe es diese Probleme jetzt für mich nicht. Jetzt muss ich schon Angst haben, den Zugbetrieb nicht mehr zu erleben (Scherz). LG, Rainer. Hbf-002-01-2025.zip
prinz Geschrieben gestern um 12:30 Uhr Autor Geschrieben gestern um 12:30 Uhr Hallo @rainer.kreuzer , Ich bin sicher, dass Du den Zugbetrieb erleben wirst. Ich habe jetzt etwas mehr Einblick in das, was Du da erstellen möchtest. Unser Thema war ja, die Behandlung von Zugzielanzeigen sowie die Zuglaufschilder. Daraufhin habe ich nochmal die dazugehörigen Modelle gesichtet. Gefunden habe ich: - Zugzielanzeige (39E14F60-A151-47C4-BA20-45BA9810F703) von Roter Brummer in zwei Varianten (Faltblatt oder Display) - Anzeigetafel (modular) (04506C8C-DEF2-4091-9CEF-91FAC6DCD25D) von Roter Brummer in den Varianten Anzeigetafel Element und Anzeigetafel Element beidseitig. Verwendet wird in meinem Beispiel auch eine Variante des oberen Elements (Überschriften) als Halter der Variablen für die Anzeigetafel. - Haltestelle der Zukunft (2290CB3E-AC5C-4B0D-82C0-7D6A6C63705D) von Klartexter (alle Varianten) (Wohl nicht nur für Tram sondern auch für S-Bahnen nutzbar) Zuglaufschilder habe ich in Modellen von Roter Brummer und Reinhard gefunden, die jeweils () einheltliche Namen der Beschriftungsfelder verwenden. Daraufhin habe ich die oben genannte Anlage erweitert um Variationen der Zugzielanzeige, um eine Anzeigetafel (modular), eine Haltestelle der Zukunft und Modelle mit Zuglaufschildern verwendet. Das Erstellen der Textvariablen für die Züge ist sicherlich mühsam. Aber irgendwo müssen die Daten ja herkommen. Deshalb zunächst zum Datenteil (Variablen): Die Zuganzeigen teilen sich in drei Teilbereiche auf: - Zuglaufschilder: Die Zuglaufschilder aller Waggons und Triebwagen auf die Zugspezifischen Werte setzen - Gesamtanzeige: Die Übersichtstafel eines Bahnhofs mit geplanten Abfahrten versorgen - Bahnsteiganzeige: Die Bahnanzeigetafeln mit den Daten des aktuell erwarteten Zuges versorgen Die Ereignisse für Gleiskontakte, über welche die Ereignisse gestartet werden, sind direkt unter dem Modul Zuganzeigen enthalten: Kontakt Zuglaufschilder: Ändert die Inhalte der Zuglaufschilder des Zuges auf die aktuellen Werte. Anmeldung Gesamtanzeige: Die Werte des aktuellen Zuges werden in der Gesamtanzeige eingetragen. Anmeldung Bahnsteig: Die Werte des aktuellen Zuges werden in den zugehörigen Bahnsteiganzeigen eingetragen. - Anmerkung: Je nach Position des Gleiskontaktes kann das Eregnis von "Verlassen" auf "Betreten" geändert werden. Bahnanzeigen löschen: Die Werte des aktuellen Zuges werden - jeweils sofern vorhanden - aus der Bahnsteig- und Gesamtanzeige entfernt - Anmerkung: Je nach Position des Gleiskontaktes kann das Eregnis von "Verlassen" auf "Betreten" geändert werden. Damit diese Ereignisse richtig arbeiten können, müssen beim angetriebenen Fahrzeug (Lok) folgende Variablen eingetragen werden: - Text (mehrzeilig): Bahnsteig Abschnitte - Text: Startbahnhof (nur für Zuglaufschilder) - Text: Zielbahnhof - Text (mehrzeilig): Zuglauf - Zahl: Zuglaufschild (s.u.) - Text: Zugnummer - Text: Zusatzinfo Zusätzlich müssen alle Waggons des Zuges, die über ein Zuglaufschild verfügen, eine Zahl mit Namen Zuglaufschild eingetragen werden. Der Wert für diese Variable ergibt sich aus der Adressierung der Texte im Zuglaufschild. Bisher sind mir zwei Varianten bekannt (und implementiert): Wert 1 = Modelle von Roter Brummer Wert 2 = Modelle von Reinhard (Bisher konnte ich bei den verschiedenen Modelle dieser beiden keine Unterschiede entdecken) Notwendige Variablen für die Gleiskontakte: Kontakt Zuglaufschilder: - Schlagwort "Zuglaufschilder" Kontakt Anmeldung Gesamtanzeige - Schlagwort "Anmeldung Gesamtanzeige" - Objekt: Name: Anzeigetafel, Inhalt: anzusprechende Gesamtanzeige = (1.) Kopfteil der Anzeigetafel (modular) Kontakt Anmeldung Bahnsteig - Schlagwort "Anmeldung Bahnsteig" - Objekt: Name: Zielsignal, Inhalt: Ausfahrtsignal des Bahnsteigs Das angegebene Zielsignal erhält eine Liste, in der alle Zugzielanzeige-Objekte des Bahnsteigs eingetragen werden. Die Zugzielanzeige-Objekte wiederum haben zum einen eine Bool-Variable "leer" mit Wert True sowie eine Zahl-Variable "Typ" und dem Wert 1 bei den Varianten "einseitig links", "einseitig rechts" und "zweiseitig" oder den Wert 2 bei den Varianten "Faltblattanzeige beidseitig", "Faltblattanzeige links" und "Faltanzeige rechts". Alle anderen Varianten werden nicht in die Liste des Zielsignals eingetragn. Kontakt Bahnanzeigen löschen (Der Kontakt sollte mit dem zuvor genannten Zielsignal identisch sein oder ebenfalls eine Liste mit den Zugzielanzeige-Objekten des Bahnsteigs besitzen) - Schlagwort "Bahnanzeigen löschen" - Objekt: Name: Anzeigetafle, Inhalt: anzusprechende Gesamtanzeige = (1.) Kopfteil der Anzeigetafel (modular) Rest im nächsten Beitrag
prinz Geschrieben gestern um 12:33 Uhr Autor Geschrieben gestern um 12:33 Uhr (bearbeitet) ------------------------ B A H N S T E I G A N Z E I G E ----------------- Datendeklaration siehe vorigen Beitrag Es gibt zwei Ereignisse, die von außen angestoßen werden können (wegen des langen Worts Zugzielanzeige werden diese wegen Schreibfaulheit als ZZA bezeichnet): ZZAs setzen Als Parameter wird das Signal/Objekt mit der Liste der Zugzielanzeigen sowie der anzuzeigende Zug übergeben. Für alle Einträge der Liste "ZZAs" des Signals/Objekts (sofern vorhanden) werden die Zugdaten angezeigt, sofern die Variable "leer" der Anzeige auf True steht. Ansonsten wird der Zug in der Anzeigevariablen Folgezug eingetragen und sobald die Anzeige gelöscht wird, werden die Daten des Folgezugs angezeigt. ZZAs löschen Der Zug hat den Bahnhof verlassen und die aktuelle Anzeige kann gelöscht werden. Als Parameter wird das Signal/Objekt mit der Liste der Zugzielanzeigen übergeben. Für alle Einträge der Liste "ZZAs" des Signals/Objekts (sofern vorhanden) werden die Anzeigedaten gelöscht bzw. mit den Daten des Folgezuges überschrieben und dieser dann wieder auf ein leeres Objekt zurückgesetzt. ---------------------- G E S A M T A N Z E I G E ------------------------- Datendeklaration siehe vorigen Beitrag Es gibt zwei Ereignisse, die von außen angestoßen werden können: Neuer Zug Das Ereignis erfordert vier Parameter: - Abfahrtszeit: Uhrzeit der geplanten Abfahrt - Anzeigetafel: Das (1.) Kopfelement der Anzeigetafel (modular) - Gleis: Die Nummer des Gleises, in das der Zug einfahren wird - Zug: Das Triebfahrzeug des erwarteten Zuges Nach dem Einfügen wird die Zugliste der Anzeigetafel nach Abfahrtszeiten aufsteigend sortiert und die verfügbaren Anzeigezeilen angezeigt. In der Zugliste können also mehr Einträge vorhanden sein, als zur Anzeige gebracht werden können. Zug entfernen Hier sind als Parameter nur die Anzeigetafel (das (1.) Kopfelement der Anzeigetafel (modular)) sowie der zu entfernende Zug. Nach Bereinigung der Zugliste werden die Daten neu angezeigt. ----------------------- Z U G L A U F S C H I L D E R -------------------- Datendeklaration s. vorigen Beitrag Über einen Gleiskontakt mit Schlagwort "Zuglaufschilder" wird das Ereignis "Zuglaufschilder setzen" angestoßen. Im Zugverbund wird jedes Element geprüft, ob dort eine Variable "Zuglaufschild" vorhanden ist. Falls ja, werden die Werte der Lok in die passenden Textfelder des Zuglaufschildes übertragen. Bisher sind die Varianten von zwei Modellbauern implementiert: Zuglaufschild = 1 (Modelle von Roter Brummer) - Startbahnhof -> Startbahnhof - Zielbahnhof -> Zielbahnhof - Zuglauf -> Zuglauf - Zugnummer -> Zugname Der Text für "Wagennummer" muss von Hand eingetragen werden. Zuglaufschild = 2 (Modelle von Reinhard) - Zugnummer -> Zuglaufschild 1 Zugnummer - Startbahnhof -> Zuglaufschild 3 Start - Zuglauf -> Zuglaufschild 4 Zwischenhalt - Zielbahnhof -> Zuglaufschild 5 Ziel Der Text für "Zuglaufschild 2 Wagennummer" muss von Hand eingetragen werden. So, jetzt fehlt nur noch "Haltestelle der Zukunft": im nächsten Beitrag Bearbeitet gestern um 12:50 Uhr von prinz Tippfehler
prinz Geschrieben gestern um 12:43 Uhr Autor Geschrieben gestern um 12:43 Uhr ------------------------------------ T R A M (a.k.a. Straßenbahn) --------------------------------- Dieses Beispiel soll das Vorgehen zur dynamischen Belegung der Abfahrtstabelle beim Modell "Haltestelle der Zukunft" aufzeigen, und zwar um die dynamischen Felder "Liniennummer", "Linienziel" und "Abfahrt". Die übrigen Beschriftungen sind nicht von den Fahrzeugen abhängig sondern allein vom Standort der Haltestelle (Hallenstellenname, Bahnsteigname, Linien und Fahrtziel). Diese Felder sind immer manuell zu füllen. Was geschieht: Über einen Gleiskontakt wird das darüber fahrende Fahrzeug bei der Haltestelle registriert, d.h. in der Liste "Tramliste" der Haltestelle wird eine neue Tabelle mit zwei Werten eingetragen: Tram = Triebfahrzeug des Verbundes und Minuten = voraussichtliche Fahrzeit bis zur Haltestelle in Minuten. Über einen Timer werden die Minutenwerte der Anzeige vermindert (bis max. 0). Bei dem Timer muss auf die relative Simulationszeit geachtet werden. In diesem Beispiel dauert ein Tag 8 Stunden, also 1/3 Tag. Demzufolge muss auch die Timerzeit auf 1/3 Minute (= 20 Sekunden) eingestellt werden. Verlässt ein Fahrzeug die Haltestelle, so wird der Eintrag aus der Tramliste der Haltestelle entfernt. Nach dem Einfügen eines neuen Eintrags oder Löschen eines Eintrags werden zunächst Einträge ohne Tramwert (=leeres Objekt) entfernt und dann nach aufsteigender Minutenzahl sortiert. Die (maximal) ersten drei Einträge der Tramliste werden dann angezeigt. Der "Tram Delay"-Gleiskontakt ist nur für das Beispiel notwendig. Bei einer "echten" Anlage wird dieser nicht benötigt. Grundsätzlich sind hierzu folgende Elemente notwendig: Haltestelle - Typ "Haltestelle der Zukunft", ID 2290CB3E-AC5C-4B0D-82C0-7D6A6C63705D - Variablen: - - Schlagwort: Haltestelle der Zukunft - - Zahl: Anzahl, Inhalt: 0 - - Liste: Tramliste, Inhalt: leer (0 Einträge) Gleiskontakt (Tram Anmeldung) - Variablen: - - Schlagwort: Tram Anmeldung - - Objekt: Name: Haltestelle Inhalt: Haltestelle der Zukunft - - Zahl: Name: Minuten, Inhalt: Minuten bis Haltestelle (Ganzzahl!) Gleiskontakt (Tram Delay) Eigenschaften: - - Beschleunigung auf:, aktiv, Wert 40 (Geschwindigkeit der Tram) - - Abbremsen auf: , inaktiv, Wert 0 - Variablen: - - Schlagwort: Tram Delay - - Zahl: Name: Delay, Inhalt: Verzögerungswert bis zur Freigabe der Fahrt Gleiskontakt (Tram Haltestelle) Eigenschaften: - - Beschleunigung auf:, inaktiv, Wert 40 (Geschwindigkeit der Tram) - - Abbremsen auf: , aktiv, Wert 0 - Variablen: - - Schlagwort: Tram Haltestelle - - Objekt: Name: Haltestelle, Inhalt: Haltestelle der Zukunft - - Zahl: Name: Haltedauer, Inhalt: Haltedauer in Sekunden Fahrzeuge (verschiedene Modelle) - Eigenschaften: - - vordere Kupplung des ersten und hintere Kupplung des letzten Fahrzeugs deaktiviert - - automatisches Abbremsen UND automatisches Beschleunigen aktiviert - Variablen: - - Text: Name: Linie, Inhalt: Liniennummer - - Text: Name: Ziel, Inhalt: Zielname Hinweise: Besteht ein Fahrzeugverbund aus mehreren Modellen, so müssen die Variablen immer beim angetriebenen Fahrzeug eingetragen werden. Wer statt des Ziels die Richtungsangabe bevorzugt, kann diese statt des Zielnamens eintragen. Aber Achtung: Wenn sich die Richtungsangabe ändert, so muss dies (z.B. über EV) geändert werden. Was ich Dir mit dem ganzen Zeug zeigen wollte: Man kann die EV für diese Ereignisse doch sehr übersichtlich und kurz gestalten. Die von mir genutzte Vorgehensweise stammt aus der Objektorientierung, in der wiederkehrende Aktionen (z.B. Zugzielanzeiger Bahnsteig 3 für Zug IC 3401 setzen) gekappselt werden, so dass diese allgemeingültig werden und nicht für jede Kombination Zug/Anzeige neu erstellt werden müssen. Vielleicht kannst Du ja für Dich und Dein Projekt Elemente übernehmen und nutzen. Übrigens: Es gibt noch eine Zugzielanzeige nach Schweizer Modell. Diese habe ich bewusst (noch) nicht implementiert, da hier die Farbsteuerung des Zugtyps per Steuerung erfolgt, was bisher noch unberücksicht geblieben ist. Viele Grüße jedenfalls, Wolfgang
rainer.kreuzer Geschrieben gestern um 13:55 Uhr Geschrieben gestern um 13:55 Uhr vor 54 Minuten schrieb prinz: Ich bin sicher, dass Du den Zugbetrieb erleben wirst. Hallo @prinz Wolfgang, ich danke dir für die Arbeit, die du hier hineingesteckt hast. Ich werde mich gleich darüber hermachen, den Lösungsansatz nachzuvollziehen und umzusetzen. Ich weiß deine Mühe zu schätzen und bin sicher, dass auch andere hier findig werden. LG, Rainer.
prinz Geschrieben gestern um 14:06 Uhr Autor Geschrieben gestern um 14:06 Uhr Gerne. Du findest die Texte aus meinen Posts übrigens auch in der Beschreibung der einzelnen Ereignismodulen.
rainer.kreuzer Geschrieben gestern um 15:03 Uhr Geschrieben gestern um 15:03 Uhr (bearbeitet) vor einer Stunde schrieb prinz: Du findest die Texte aus meinen Posts übrigens auch in der Beschreibung der einzelnen Ereignismodulen. Und so übersichtlich. Ich hatte versucht die Daten für die Anzeiger zentral zu verwalten. Das machte es aber zu unübersichtlich. Sollte ich noch Fragen haben, melde ich mich bei dir, ansonsten nochmals vielen Dank für die Hilfestellung. Im Moment setze ich das Tutorial von @alexander42 bzgl. Lokschuppen um. Klappt auch gut. Und hoffe, dass @tim-fischertechnik sein EV-Tutorial weiterführt. LG, Rainer. Bearbeitet vor 23 Stunden von rainer.kreuzer
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