Jump to content

prinz

Mitglieder
  • Gesamte Inhalte

    695
  • Benutzer seit

  • Letzter Besuch

5 User folgen diesem Benutzer

Über prinz

  • Geburtstag 07/03/1955

Letzte Besucher des Profils

3868 Profilaufrufe
  1. Hallo @Swen44, Entschuldige bitte, dass wir Dein Thema für diese Diskussion (Haupt-/Unterprogramm etc.) "missbraucht" haben. Viele Grüße, Wolfgang
  2. Gerne. Du findest die Texte aus meinen Posts übrigens auch in der Beschreibung der einzelnen Ereignismodulen.
  3. Hallo lieber @AndreasWB , Ich möchte hier nicht unbedingt eine Diskussion über verschiedene Softwareentwicklungs-Paradigmen anstoßen. Trotzdem kann ich das von Dir geschriebene nicht einfach so stehen lassen. Du redest immer von Hauptprogramm und Unterprogrammen. Dies sind zwar geläufige Begriffe, aber nur in der Welt der Prozeduralen Software-Entwicklung, so wie sie z.B. bei alten EVA-Verfahren (Eingabe - Verarbeitung - Ausgabe) verwendet wurde. Bei objektorientierter Softwareentwicklung sieht das etwas anders aus. Meiner Meinung gibt es in der EV kein "Hauptprogramm", wahrscheinlich eher in der MBS-Engine. Bei der Objektorientierung werden Datendefinitionen und Methoden zu Objektklassen modelliert, die Daten dann bei den einzelnen Objekten der Klasse gekappselt. Dort ist es selbstverständlich, dass auch Daten eines Objekts innerhalb einer Methode der Klasse modifiziert werden können. Diese Methoden können auch von anderer Seite (Dein Sprech: Hauptprogramm) aufgerufen werden. Unserer Teil der Ereignisbearbeitung ist daher einfacher in der Welt der Objektorientierung zu realisieren, da es hier immer darum geht, auf ein spezifisches Ereigniss zu einem oder mehreren Objekten zu reagieren. Leider gibt es (innerhalb der EV) keine Möglichkeit der Klassenbildung. Aber man kann durch die Zuweisung von Schlagwörtern Quasi Klassen bilden und so auf Ereignisse zu Objekten einer Klasse reagieren. (Übrigens gibt Lua an, dass es sowohl prozedurales als auch objektorientiertes Arbeiten unterstützt.) Ein Beispiel: Auf einer Anlage kommen meistens verschiedene Klassen von Signalen vor. Nehmen wir einmal ein Blocksignal und ein Ausfahrtsignal eines Bahnhofs. Beide haben einige Eigenschaften gemeinsam: Bei Halt den Zug anhalten, bei Fahrt den Zug auf einen bestimmten Wert beschleunigen, eventuell nächste Fahrstraße ermitteln und aktivieren. Beim Blocksignal eventuell nach Verlassen des Zuges den vorigen Block freigeben. Beim Ausfahrtsignal Handling des Zug-Aufenthalts (Türenmanagment, Haltezeit). Objektorientiert sähe das ungefähr so aus, dass es eine gemeinsame Oberklasse Signal gibt, in welcher die gemeinsamen Aufgaben abgehandelt werden. Blocksignal und Ausfahrsignal wären demnach Unterklassen (Ableitungen) von Signal, in denen dann die genannten "Sonderaufgaben" abgehandelt werden. Es gibt also Ereignisse für Signale mit Schlagwort Blocksignal und solche für Ausfahrtsignal (z.B. Signal erreicht). In beiden Ereignissen wird das Benutzerdefinierte Ereignis "Signal erreicht" zur Abhandlung der gemeinsamen Aufgaben aufgerufen. Insofern lässt sich in der EV durchaus objektorientiert arbeiten (Auch wenn mir leider die Klassenbildung fehlt). Und nochmal zur "asynchronen Verarbeitung": Asynchron wird die Verarbeitung nur, wenn in Ereignissen (initiert durch Ereignis oder benutzerdefiniert) Verzögerungen vorkommen, bei denen die Abarbeitung e. Ein Ereignis gleich welcher Art wird ansonsten immer von Anfang bis Ende abgearbeitet, bevor das nächste Ereignis in Angriff genommen wird. Auch die Teile zwischen Anfang/Verzögerung/Ende wird immer für sich ohne Unterbrechung abgearbeitet. Von daher kann es auch nicht vorkommen, dass mehrere "Prozeduren" gleichzeitig auf Variable zugreifen (es sei denn: siehe Verzögerung). Darauf kann man sich verlassen. Man merkt das sehr deutlich, wenn ein längerer Zug aus einem Depot abgerufen wird. Weil für diesen Vorgang (unter anderem) die Darstellung aller Objekte des Zuges neu erstellt werden muss, was nun mal einiges an Zeit kostet, kommt es hierbei zu unerwünschtem "Ruckeln" der Anlagendarstellung. Zum Schluß: Ich habe das nicht als Kritik an Dich geschrieben, sondern um meine Erfahrungen in der EV hier einzubringen. Also nichts für ungut. Viele Grüße, Wolfgang
  4. ------------------------------------ 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
  5. ------------------------ 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
  6. 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
  7. Das kann ich so nicht bestätigen. Ich habe in der grafischen EV schon öfter Benutzerdefinierte Ereignisse eingesetzt, um in mehreren Ereignissen ein Ergebnis ermitteln zu lassen (z.B. freien Platz im SBF ermitteln). Das Ergebnis wird als Variable zu einem als Parameter übergebenen Objekt eingetragen und vom aufrufenden Ereignis weiterverwendet. Wichtig: in dem Benutzerdefinierten Ereignis kommen keine Verzögerungen vor. Wenn also - nach Deiner Sprechart - Prozeduren "parallel" zu dem aufrufenden Ereignis weiterlaufen, könnte das so nicht funktionieren. Also wartet auch in diesem Fall das aufrufende Ereignis auf die Beendigung des benutzerdefinierten. Weiterer Hintergrund: Vor einiger Zeit (Jahren) hatten ich und ein paar andere Anwender Probleme bei einer Vorfahrtsteurung für Abzweigungen. Ein wesentliche Punkt war dabei, dass Zähler für die aktuellen Fahrzeuge auf der Abzweigung manchmal falsche Werte ausgaben. Meine Vermutung damals, dass Ereigniss, welche den Zähler hoch- oder herunterzählen, sich dabei in die Quere kommen und so der Zähler verfälscht wird. Laut @Neo kann das jedoch nicht vorkommen, da vom MBS erst ein Ereignis abgearbeitet wird bevor das nächste begonnen wird. Wird die Abarbeitung durch eine Verzögerung unterbrochen (Frage: eventuell auch bei Aufruf eines benutzerdefinierten Ereignisses?), so können auch andere Ereignisse abgearbeitet werden bevor die Abarbeitung nach der Unterbrechung fortgesetzt wird. Viele Grüße, Wolfgang
  8. 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
  9. Hallo Vierauge, Ergänzend zu dem, was Götz schon geschrieben hat, habe ich Deinen Event "Franz abkuppeln" überarbeitet, so wie es meiner Meinung ablaufen sollte. Die geänderte Anlage ist beigefügt. Hier die Schritte im Detail: Teil1: Anhalten und Güterwagen ermitteln: Zunächst wird das Fahrzeug gestoppt. In den Aktionen wird hier jetzt immer der Auslöser Fahrzeug angegeben. Damit könntest Du auch die aktuelle Lok durch eine andere ersetzen ohne die EV zu überarbeiten. Neben der vielleicht besseren Lösung von Götz, die Lok zu entkuppeln, wird hier der (letzte) Waggon des Fahrzeugverbundes als Variable der Lok eingetragen sowie dessen Ausrichtung zur Fahrtrichtung. Danach wird - wichtig - eine kurze Verzögerung eingefügt, damit die Lok zum stehen kommen kann. 2. Feststellbremse setzen und abkuppeln Bei dem Güterwagen, der zuvor bei der Lok als Variable eingetragen wurde, wird die Feststellbremse gesetzt und je nach Fahrrichtung (Ori) die hintere oder vordere Kupplung gelöst. Eine Bemerkung zur Feststellbremse: Diese ist unbedingt notwendig, wenn das Gleis nicht eben liegt, also X- oder Y-Rotation ungleich 0 sind. Ansonsten würde ein Wagon fortrollen. Bei ebenem Gelände ist diese nicht notwendig. 3. Fahrrichtung ändern und Lok abfahren Nach Umschalten der Fahrtichtung und einer kurzen Verzögerung (auch hier wichtig) wird die Lok wieder beschleunigt. Hierzu ein Hinweis: Wenn Du die Fahrtrichtung-Umschaltung benutzt, dann bei Geschwindigkeiten immer "Relativ zur Fahrtrichtung" ankreuzen und nur positive Geschwindigkeitswerte verwenden oder - alternativ - ohne die Fahrtrichtung-Umschaltung arbeiten und bei Geschwindigkeiten immer positive bzw. negative Geschwindigkeitswerte eintragen abhängig von der gewünschten Fahrtrichtung. Sonst kommt man schnell durcheinander. 4. Kupplung wieder aktivieren und Feststellbremse lösen. Nach einer Verzögerung wird die zuvor gelöste Kupplung wieder aktiviert und die Feststellbremse gelöst. Falls das Gleis nicht gerade liegt, siehe oben. 5. Aufräumen Da hier zwei Variable bei der Lok temporär eingetragen wurden, gehört dazu, diese nach Ende der Verwendung wieder zu löschen. 6. Alternativ: Wenn Du nach Götz' Vorschlag die Kupplung der Lok statt des Güterwagens verwendest und die Feststellbremse wegen planem Gelände nicht benötigst, kann die Ermittlung des Güterwagens wegfallen, da nicht benötigt. Statt des Deaktivieren und Aktivierung der Kupplungen des Güterwagens sprichst Du nur die hintere Kupplung der Lok an. Das Setzen und Lösen der Feststellbremse kann ersatzlos gestrichen werden. Viele Grüße, Wolfgang Bergbahn im Bau 2.mbp
  10. Hallo @Vierauge, Bei dem dargestellten Ereignis solltest Du: Erst die Lok anhalten. Vor der Richtungsumschaltung mindestens 1 Sekunde verzögern (Die Lok braucht auch Zeit, um anzuhalten) Dann den Rest (Feststellbremse, entkuppeln, Geschwindigkeit setzen Statt die Lok mit Namen identifizieren (BR Franz) kannst Du auch den Auslöser Fahrzeug auswählen (mit dem Zahnrad neben Objekt umschalten auf Auslöser und dann den Eintrag Fahrzeug auswählen). Bei den Geschwindigkeitsänderungen reicht es, die Lok (bzw. Auslöser Fahrzeug) anzugeben. Der Gleis-Eintrag kann auf <beliebiges Gleis> stehen bleiben. Viele Grüße, Wolfgang
  11. Hallo @volkerfreimuth , Da hast Du mir ja eine Knobelaufgabe gegeben . Ein erster Test mit der aktuellen Version V9 ergab das von Dir geschilderte Problem. Ein Test mit Version 8.5 (damit wurde die Anlage erstellt) verlief ohne Probleme. Mmhh. Liegt das an den Versionen (man selbst macht ja nie Fehler)? Nein. Es gibt eine Bedienreihenfolge, bei der am Bahnübergang Schrott produziert wird: Wird vor dem Start der Simulation der Automatik-Schalter umgestellt, so werden erste Aktionen unter anderem für den Bahnverkehr ausgeführt, darunter auch das Aktivieren einer Fahrstraße -> bewirkt Schließen der unteren Schranke -> bewirkt Einstellung der Eigenschaften der dazugehörigen Haltekontakte auf der Straße. Läuft nach Start der Simulation der Starttimer ab, werden u.a. alle Straßenkontakte initialisiert mit Brems- bzw. Beschleunigungseigenschaften. Damit gerät der Bahnübergang etwas durcheinander. Die Anlage ist neu hochgeladen mit der Änderung, dass bei Umstellen des Automatikschalters eine Initialisierung des Bahnverkehrs nur durchgeführt wird, wenn der Starttimer noch nicht abgearbeitet wurde. Danke für Deinen Kommentar (ehrlich gemeint) und wieder ein Fehler beseitigt. Viele Grüße, Wolfgang
  12. Hallo @michel-pohl, So, die Anlage ist wieder verfügbar. War blöd von mir, diese nur als Entwurf zu veröffentlichen. Name: Basissteuerungen, ID 741AF992-2B29-48ED-B6B8-6C416AF9A1EC Die Anlage kannst Du zu Deiner Anlage importieren. Das geht so: Im oberen Menü kannst Du mit dem oft übersehenen Winkel nach unten (s. im gelben Kringel) das Menü zum Import öffnen und dort wählst Du "aus Anlage" aus. Im folgenden Fenster trägst Du die obige ID ein. Bei MBS V9 wird gefragt, ob Du Events und/oder Objekte einfügen willst. Den Haken bei Objekte kannst Du wegnehmen, da Du die Bodenplatte nicht benötigst. Die Einstellung für den Timer findest Du, in dem Du im unteren Menü die Ereignisverwaltung startest (s. Kringel): Im folgenden Fenster findest Du den Starttimer unter Ereignisse -> Ereignisse importiert: Wenn der Timer markiert ist, kannst Du rechts die Restzeit (restliche Laufzeit) eintragen. Empfehlung: Starte vor dem Start der Anlage das Ereignisprotokoll. Das findest Du im Menü des Winkels rechts neben der Ereignisverwaltung (s. Kringel oben). Sollte bei dem Ablauf ein Fehler erkannt werden, wird dies im Protokoll angezeigt und die Simulation gestoppt. Viele Grüße, Wolfgang
  13. Hallo @michel-pohl, Hast Du die Steuerung für die Anlage importiert? Ich hatte geschrieben: Ich werde nachher prüfen, ob die Anlage noch verfügbar ist. Viele Grüße, Wolfgang
  14. Doch. Ich wusste das auch nicht. Hier ein Beispiel: Ampel und Gleiskontakt sind aufgestellt. Der Gleiskontakt kennt keine verschiedenen Zustände: Jetzt wird der Gleiskontakt mit der Ampel verbunden, und siehe da: Viele Grüße, Wolfgang
×
×
  • Neu erstellen...