Jump to content

Empfohlene Beiträge

Geschrieben (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:

ZZA1.thumb.jpg.85e46ee1d7315a2d18065ebeba830f93.jpg

Die notwendigen Daten für die Anzeige sind bei der Lok des Zuges hinterlegt:

ZZA2.jpg.20c35bca596632abfe29524dfef6cf0a.jpg

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.

ZZA3.jpg.30f25b6cf72edee4d6339ab82308bae3.jpg

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.

ZZA4.thumb.jpg.4f6b1690e893b0b03e0c86d89ec0bb80.jpg

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

ZZA5.thumb.jpg.c3dc820aeee1aedbe90351755bbfa3b7.jpg

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 von prinz
Geschrieben
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

Geschrieben
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

Geschrieben

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 ((y)) 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.

zza.thumb.jpg.b9bf7cb5f10c206325aa7c4b45fe6c40.jpg

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

 

 

 

Geschrieben (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 von prinz
Tippfehler
Geschrieben

------------------------------------  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

 

Geschrieben
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.

Geschrieben (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.

 

Bw-002-01-2025.jpg

Bw-003-01-2025.jpg

Bearbeitet von rainer.kreuzer

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...