Jump to content

Wie man Animationen im Zugverbund mit der EV schaltet


Recommended Posts

Posted (edited)

Hallo liebe Community,

oft möchte man Animationen im Zugbetrieb einsetzen, weil es realistischer aussieht. Besonders beindruckend ist sicherlich das gemeinsame Schließen von Türen eines ganzen Zugpaares. Wie man solche teils komplexen Steuerung über die grafische EV löst, möchte ich anhand einer Anlage von @Markus40 zeigen. Viele Wege führen nach Rom. Deswegen werde ich verschiedene Lösungsansätze für ein und dasselbe Problem zeigen, da man so die Abläufe in der EV am besten begreift.

In der Anlage befindet sich ein ICE an einem Bahnsteig mit Ausfahrtsignal. Sobald das Signal schaltet, wird die Tür geschlossen und der Pantograf hebt sich. Der ICE setzt sich in Bewegung. Wenn dieser wieder in den Bahnhof einfährt, stoppt dieser und die Tür öffnet sich und der Pantograf senkt sich. Allerdings werden immer nur die Animationen des angetriebenen Triebkopfes gesteuert. Beim anderen Zugteil funktionieren die Animationen noch nicht. Das soll sich jetzt ändern.

Im Folgenden werde ich verschiedene Lösungsansätze zeigen, die folgende Aufgabe/ Kriterien erfüllen müssen:

  1. Alle Türen des gesamten Zuges (ICEs) sollen sich schließen und öffnen lassen.
  2. Die Türen müssen auf der richtigen Bahnsteigseite öffnen und schließen.
  3. Wagons ohne Türanimation sollten keine Fehler in der EV verursachen.

Viele Grüße

Tim

Edited by tim-fischertechnik
Link to post
Share on other sites

1. Lösungsvorschlag - Türsteuerung mithilfe von Schlagwörtern

Zuerst legt man ein treffendes Schlagwort in einen Wagon des Zugverbunds an. Mithilfe der Icons kopieren und einfügen kann man das Schlagwort bequem in die restlichen Wagons des Zugverbunds einfügen.

459465265_SchlagwortICEmitTrenkopieren.jpg.b1a4e2f18afdee383b6fdbbb726732a6.jpg531344474_SchlagwortICEmitTreneinfgen.jpg.15f92bbb337e1418b9fe62fb525e7c56.jpg

Wir wollen nun im nächsten Schritt alle Objekte mit dem Schlagwort "ICE mit Türen" ansprechen. Dazu verwendet man die Wiederholung "Für alle Objekte mit einem Schlagwort". Wiederholungen bieten sich immer dann an, wenn eine Aktion auf dieselbe Art und Weise mehr als einmal ausgeführt werden soll, wie in diesem Beispiel. 

62132977_FunktionsweisevonWiederholungen.thumb.jpg.8cb224fbc3c479828ad85def0f4299b5.jpg

In die grafische EV trägt man in der Wiederholung das Schlagwort und den Namen aller Elemente ein, die später in der Wiederholung angesprochen werden. Aktionen (grüner Kasten) innerhalb von Wiederholungen brauchen immer eine Information über den Auslöser, von wem sie eigentlich angesprochen werden. Bei der Variablen wählt man dann nicht mehr den Auslöser aus, sondern die Wiederholung aus. Das sieht dann wie folgt aus. Bei Objekt steht dann nicht mehr Auslöser, sondern Wiederholung in Klammern dahinter. Der Name der Wiederholung muss mit dem Namen aus dem braunen Kasten übereinstimmen. Sonst gibt es hier Fehler.

1527393479_VariablenbergabebeieinerWiederholung.jpg.a9fb108b18225b33bbfd53ee9c57ee2c.jpg

Dieses Grundprinzip bleibt immer gleich. Anstatt einer Aktion innerhalb einer Wiederholung lassen sich weitere Aktionen und auch Bedingungen einfügen. Das Einzige was innerhalb von Wiederholungen direkt nicht möglich ist, sind zeitliche Verzögerungen.

Auf diesen Abbildungen habe ich nur das Abfahren des Zuges mit Türschließen gezeigt. Genauso müsste eine Wiederholung auch beim Schließen der Türen in die grafische EV eingebaut werden. Die Animation mit dem Pantografen verändere ich erstmal nicht, da das jetzt den Rahmen sprengen würde. Anbei füge ich noch eine mbp-Datei dieses Lösungsvorschlages an. Wer genau hinschaut wird einen kleinen Fehler finden, den ich im nächsten Lösungsvorschlag näher beleuchte. Vielleicht hat jemand schon eine Lösung gefunden.

Start und Stopp im Bahnhof Testanlage - Version 2.mbp

Herzliche Grüße
Tim

Link to post
Share on other sites

Hallo Tim,

leider hatte ich mal wieder vergessen, nach der Fertigstellung des Beitrags auf "Absenden" zu klicken. Auch wenn Du nun schon das erste Beispiel hier veröffentlicht hast, lasse ich nachfolgend den Originaltext stehen - auch wenn er sich auf Deinen ursprünglichen ersten Beitrag bezieht. Also mache weiter so!

Hier nun der versehentlich nicht abgeschickte Originaltext:

Zitat

 

Hier verschiedene Lösungsmöglichkeiten aufzuzeigen, ist eine sehr schöne Idee von Dir. (y)

Ich würde allerdings das Senken des Stromabnehmers während des Zughalts weglassen, da dies im Allgemeinen nicht vorbildgerecht ist. Wenn der Zug am Bahnhof nur kurz hält, um die Fahrgäste ein- und aussteigen zu lassen, bleibt der Stromabnehmer normalerweise am Fahrdraht. Nur in Kopfbahnhöfen, wo möglicherweise ein Lokwechsel stattfindet und die Lok nach dem Abkuppeln vom Zug länger stehen bleibt, um die Ausfahrt des Zuges mit der neuen Lok am anderen Zug-Ende abzuwarten, kommt es vor (z.B. in München), dass der Stromabnehmer während dieser Wartezeit abgesenkt ist.

 

Viele Grüße
BahnLand

Link to post
Share on other sites
Posted (edited)

Hallo zusammen,

in meinem vorherigen Beitrag habe ich ja davon gesprochen, dass die Anlage nicht ganz perfekt ist, sondern ein Fehler aufweist. Dieser liegt darin, dass immer beim vorderen Triebkopf (der in Richtung Signal zeigt) die Türen auf der falschen Seite öffnen, also genau gegenteilig zum restlichen Zugteil. 


178067118_TrenffnenaufunterschiedlicherSeite.thumb.jpg.f7aebac75895773d7e3622e88fc9c7d2.jpg

Das sieht natürlich unschön aus. Die Ursache hierfür liegt in der unterschiedlichen Ausrichtung der jeweiligen Wagen. Bis auf den vorderen Triebkopf (z=0°) sind alle Wagen verkehrt herum (z = 180°) gedreht. Folglich sind die Seiten rechts und links miteinander vertauscht. Wenn ich im Folgenden von der rechten Türseite spreche, meine ich damit die Seite zur längeren Bahnsteigkante. Um diese Unschönheit zu beheben, kann man dem "verkehrt herum gedrehten" Wagen ein Schlagwort wie z.B.: "andere Türseite" zuweisen.

Das habe ich beim Triebkopf, der in Richtung Signal zeigt, wie folgt vorgenommen.

1638419363_SchlagwortandereTrseiteamumgedrehtenTriebkopf.thumb.jpg.0e908b6d85cd476cb2bfcdc93117d4a3.jpg

 

Nun müssen wir noch in unserem Ereignis "Wenn das  KS Hauptsignal schaltet" entscheiden, ob der einzelne Wagon innerhalb der Wiederholung eine andere Türseite aufweist und damit "gedreht" ist. Dazu bedienen wir uns wieder einer Bedingung (gelber Kasten). 
 1426110051_BedingungandereTrseite.jpg.929dc4aa07375f95f20e4386fb0a5d0d.jpg

Wir prüfen an dieser Stelle, ob das Schlagwort "andere Türseite" in irgendeinem Wagon existiert. Wenn es existiert, dann ist der Wagon "falsch herumgedreht". Das heißt, dass wir die linke Seite anstatt der rechten Seite animieren. Wenn die Bedingung nicht erfüllt ist, dann ist der Wagon "normal ausgerichtet", weshalb wir die übliche rechte Türseite animieren. 

Dasselbe Prinzip müssen wir noch in dem Ereignis "Kontakt 3 wird betreten bei der Einfahrt" anwenden. 

999313175_BedingungandereTrseite(negiert).jpg.7ba481f8ef919f2dd0fc421794b66393.jpg

Ich fragt euch zurecht, warum die Animationen vertauscht wurden. Bedingungen können auch wahr sein, wenn ein bestimmter Fall nicht erfüllt ist, beispielsweiße eine Variable NICHT existiert. Hierbei haben wir die Bedingung negiert/ invertiert. Eine wahre Aussage wird bei einer Negierung unwahr und eine falsche Aussage wahr. Wenn das Schlagwort "andere Türseite" nicht existiert, ist der Wagen "normal" positioniert und die rechte Tür wird geöffnet. Der untere Block wird immer nur ausgeführt, wenn die Bedingung nicht erfüllt wurde. In diesem Fall wird dieser Block nur ausgeführt, wenn das Schlagwort nicht nicht existiert, also letztendlich dann doch. ;) Hierbei haben wir eine doppelte Verneinung, die am Ende wieder wahr ergibt. Also ziemlich verwirrend.

Wie immer gibt es von mir ein passendes Anlagenbeispiel dazu. Ich rate jedoch immer dazu, erstmal selbst Lösungsansätze zu finden. 

Am 7.6.2022 um 23:45 schrieb BahnLand:

Ich würde allerdings das Senken des Stromabnehmers während des Zughalts weglassen, da dies im Allgemeinen nicht vorbildgerecht ist. Wenn der Zug am Bahnhof nur kurz hält, um die Fahrgäste ein- und aussteigen zu lassen, bleibt der Stromabnehmer normalerweise am Fahrdraht.

Ja das klingt gut. Ich habe die Animation rausgelöscht.


Start und Stopp im Bahnhof Testanlage - Version 3.mbp

Viel Spaß beim Ausprobieren


Liebe Grüße 

Tim

Edited by tim-fischertechnik
Formatierung
Link to post
Share on other sites

Hallo Tim,

ich habe Deine Anlage leicht abgeändert, um den Komplexitätsgrad bei der Tür-Bedienung etwas zu erhöhen.

Start und Stopp im Bahnhof Testanlage - Version 3 (mod).mbp

Anstelle des Streckenstummels hinter dem Ausfahrsignal habe ich eine Schleife eingebaut, sodass der ICE nach der Ausfahrt automatisch in den "Bahnhof" zurückkehrt. Nun hat er aber die Fahrtrichtung gewechselt, was jetzt auch bei den zu öffnenden Türen zu berücksichtigen ist. Das überlasse ich aber als neue Herausforderung Dir:P

Viele Grüße
BahnLand

Link to post
Share on other sites

@BahnLand

Ich glaube, dass Tim das gerne Schritt für Schritt angehen will und dass er die Reihenfolge schon geplant hat.
Jedenfalls macht es bisher auf mich diesen Eindruck.

Er weiß bestimmt, welche Situationen noch bedacht werden müssen. Und er handelt sehr klug, wenn er die Fragen nicht alle auf einmal angeht, sondern jedem Faktor eine eigene Folge widmet. Lass ihn mal machen.   :)

Viele Grüße
Götz

Link to post
Share on other sites

Ich würde zur Vereinfachung jede zweite Tür rechts und links beim Halt öffnen. So braucht die EV weniger zu entscheiden, sondern mehr der Fahrgast, ob er beim Aussteigen einen Bahnsteig benutzen möchte oder nicht. Für Schlaue wäre auch der Übergang zum nächsten Bahnsteig kürzer; wenn er denn auf der richtigen Seite aussteigt.

Gruß

streit_ross

Link to post
Share on other sites

Hallo zusammen/Hallo Tim,

ich bin fasziniert von deinen Erklärungen, und auch der Einwand von BahnLand ist in der Tat interessant.

Streit_ross hat auch recht, wobei ich das mit dem Übergang evtl. nicht bräuchte für den Kopfbahnhof. 

An dieser Stelle auch gesagt zu sein, das ich die Text von dir TIM sehr gut nachvollziehen kann und verstehe warum du diesen Weg wählen tust. 

Realität ist oftmals sehr unterschiedlich zu dem, was man selber erlebt oder erreichen möchte.

Ich finde es mega klasse, das dies hier so gut möglich ist.

 

Link to post
Share on other sites

Hallo zusammen,

nachdem wir im letzten Beitrag den falsch "herum gedrehten" Triebkopf in der EV mit berücksichtig haben, damit die Tür auch wirklich auf der richtigen Seite öffnet, können wir behaupten, dass wir alle 3 Aufgaben 

Am 7.6.2022 um 18:40 schrieb tim-fischertechnik:
  1. Alle Türen des gesamten Zuges (ICEs) sollen sich schließen und öffnen lassen.
  2. Die Türen müssen auf der richtigen Bahnsteigseite öffnen und schließen.
  3. Wagons ohne Türanimation sollten keine Fehler in der EV verursachen.

erfüllt haben. 

  1. Durch die Schlagworte "ICE mit Türen" in allen Wagen stellen wir sicher, dass alle Türen des gesamten Zuges animiert sind.
  2. Durch Berücksichtigung des "falsch herum" gedrehten Triebkopfs korrigieren wir die Ausrichtung, sodass am Ende die Tür dennoch auf der richtigen Seite öffnet. Der "falsch herum" gedrehte Triebkopf erhielt dazu das Schlagwort "andere Türseite".
  3. Wir verschlagworten erstmal nur Wagen, die überhaupt eine Türanimation besitzen und identische Bezeichnungen für die beiden Türanimationen "31-Türen rechts" bzw. "32-Türen links" enthalten. Dankenswerterweise ist das beim ICE 4 von unserem Modellbauer Reinhard kein Problem. B|

... oder vielleicht doch nicht? :D

 

Wenn wir die Datei "Start und Stopp im Bahnhof Testanlage - Version 3.mbp" von mir öffnen, dann funktioniert alles reibungslos. Öffnen wir dagegen die modifizierte Version „Start und Stopp im Bahnhof Testanlage - Version 3 (mod).mbp“ von Bahnland mit der Kehrschleife, 

Am 13.6.2022 um 20:52 schrieb BahnLand:

hat er (ICE) aber die Fahrtrichtung gewechselt, was jetzt auch bei den zu öffnenden Türen zu berücksichtigen ist. Das überlasse ich aber als neue Herausforderung Dir.

1473073946_1_1_TrenffnenabhngigvonFahrtrichtung.thumb.jpg.9851032d86a8d9c45392f5a6cb25a52b.jpg

Grafik 1/1: Türen öffnen abhängig von Fahrtrichtung

Die obige Grafik spiegelt die Ausgangsituation von Bahnlands modifizierter Anlage wider. Anhand dieser können wir erkennen, dass bei normaler Fahrtrichtung die Türen alle auf der Bahnsteigseite öffnen, während bei umgekehrter Fahrtrichtung sie auf der „falschen" Seite öffnen. Das liegt hier auch wieder an der geänderten Ausrichtung des gesamten Zuges in z-Richtung um genau 180°.

Wir sehen also, dass Aufgaben nur innerhalb bestimmter Rahmenbedingungen gültig sind. Sobald wir die Fahrrichtung umkehren, können wir nicht mehr der zweiten Aufgabe in unserem Kriterienkatalog gerecht werden und enden dann meist in einem ziemlichen Chaos (undefinierter/unbekannter Zustand). Am besten schreiben wir in Zukunft die Rahmenbedingungen gleich in den Kriterienkatalog mit.

Ich habe die Herausforderung von Bahnland angenommen und werde euch jetzt im Folgenden die Funktionsweise meines Lösungsvorschlages erläutern. An dieser Stelle nochmal mein Dank an Bahnland für das nützliche Testlayout.

(Fortsetzung folgt in Kürze)

Link to post
Share on other sites
Posted (edited)

Vorkehrungen:

Wir überlegen uns, nach welchen Kriterien wir die Fahrtrichtung unterscheiden können. Die Türen öffnen sich immer, wenn der Kontakt 3 von einem Triebkopf betreten wird. In der Grafik „1/1 – Türen öffnen abhängig von Fahrtrichtung“ sehen wir, dass abhängig von der Fahrrichtung immer ein anderer Triebkopf diesen Kontakt betritt (linker Bildteil). Glücklicherweise haben wir nur dem Triebkopf A das Schlagwort „andere Türseite“ zugewiesen und können so eine Unterscheidung zwischen den beiden Triebköpfen fällen. Voraussetzung dafür ist natürlich, dass der Antrieb des vorderen Triebkopfs immer eingeschaltet ist, da sonst der GK kein Ereignis auslöst und dass die Geschwindigkeit größer Null ist, da sonst fälschlicherweise der andere Triebkopf das Ereignis auslöst, was wir unbedingt vermeiden wollen. Wir nutzen nämlich das Vorhandensein des Schlagwortes im auslösenden Triebkopf dazu, um indirekt die Fahrrichtung zu bestimmen.

 

Aus diesen Vorüberlegungen können wir unseren neuen Kriterienkatalog bilden.

Neuer Kriterienkatalog:

Unter folgenden Rahmenbedingungen:

  1. Züge können beide Fahrtrichtungen annehmen (Kehrschleife).
  2. Die Mittelwagen im ICE haben dieselbe z-Ausrichtung wie Triebkopf B.
  3. Beide Antriebe des Zugpaares sind aktiviert.
  4. Der vordere Triebkopf in Fahrrichtung muss zuvor über mindestens einen Brems- oder Beschleunigungskontakt (auch Signal) gefahren sein, damit die Geschwindigkeit nicht Null ist.
  5. Triebkopf A enthält das Schlagwort: „andere Türseite“.

sollen folgende Aufgaben/ Kriterien erfüllt sein:

  1. Alle Türen des gesamten Zuges (ICEs) sollen sich schließen und öffnen lassen.
  2. Die Türen müssen auf der richtigen Bahnsteigseite öffnen und schließen.
  3. Wagons ohne Türanimation sollten keine Fehler in der EV verursachen.

 

Beschreibung der EV:

268822948_1_2_EVfrfahrrichtungsabhngigesTrffnen.thumb.jpg.ca8aeb33b720f545cb2fdea3941fa085.jpg

Grafik 1/2: EV für fahrrichtungsabhängiges Türöffnen

 

Im Ereignis „Kontakt 3 wird betreten bei der Einfahrt“ prüfen wir, ob der Auslöser [Fahrzeug] über das Schlagwort „andere Türseite“ verfügt. Wenn das Schlagwort existiert, dann ist der ICE mit umgekehrter Fahrtrichtung in den Bahnhof eingefahren und alle linken Türen (Ausnahme Triebkopf A: rechte Tür) öffnen sich. Wenn der ICE mit dem Triebkopf B in Fahrtrichtung in den Bahnhof fährt, ist im Auslöser (Triebkopf B) kein Schlagwort „andere Türseite“ vorhanden, weshalb sich alle rechten Türen (Ausnahme Triebkopf A: linke Tür) öffnen. Auffällig ist, dass die unteren beiden Aktionen im Gegensatz zu den oberen beiden Aktionen genau spiegelverkehrt angeordnet sind, weil sich die Ausrichtung des gesamten Zuges um 180° umkehrt.

Ich persönlich finde solche Fallbeschreibungen in Textform nicht sonderlich verständlich. Dafür eigenen sich sogenannte Wahrheitstabellen viel besser.

1440177056_1_3_Wertetabelle_Trffnen.thumb.jpg.5ee6ad57628be48858865c0235e2208e.jpg

Grafik 1/3: Wahrheitstabelle Tür öffnen

In ihnen fassen wir die Zustände in Form von Zahlen (0 = falsch | 1 = wahr) tabellarisch zusammen, sodass wir am Ende eine Ergebniszeile für die linke und rechte Tür erhalten, wo jeder Zustand eindeutig ist. Solche Wahrheitstabellen sind viel übersichtlicher.

 

Für das andere Ereignis „Wenn das  KS Hauptsignal schaltet“ sieht die Wahrheitstabelle wie folgt aus:

446023079_1_4_Wertetabelle_Trschlieen.thumb.jpg.b65cf0b05ed364746a1d6e660be720e2.jpg

Grafik 1/4: Wahrheitstabelle Tür schließen

Im Gegensatz zur vorherigen Wertetabelle ist die zweite Bedingung nicht mehr negiert. Wir können jedoch bei diesem Ereignis nicht direkt auf das Fahrzeug als Auslöser zugreifen aber wir haben ja den Auslöser im Signal abgespeichert.

118875890_1_5_AufbauvonerweitertenVariablen.jpg.b7fd63df78d3e3394e163b59ac28b112.jpg

Grafik 1/5: Aufbau von erweiterten Variablen

Deswegen greifen wir auf das Schlagwort „andere Türseite“ im Triebkopf zu, der wiederum in der Objektvariable „zug“ im Signal abgespeichert ist.

Die grafische EV setzt jetzt genau das um, was in der Wahrheitstabelle steht.

720521780_1_6_EVfrfahrrichtungsabhngigesTrschlieen.jpg.7bd1b7a6816804382fea3cf63f310fee.jpg

Grafik 1/6: EV für fahrrichtungsabhängiges Türschließen

 

Hier findet ihr wieder die zugehörige Anlage.

Start und Stopp im Bahnhof Testanlage - Version 4.mbp

Viel Spaß beim Ausprobieren!

 

Herzliche Grüße

Tim

Edited by tim-fischertechnik
Irreführende Bildunterschrift (Grafik 1/3 und 1/4) geändert
Link to post
Share on other sites
9 hours ago, tim-fischertechnik said:

sollen folgende Aufgaben/ Kriterien erfüllt sein:

  1. Alle Türen des gesamten Zuges (ICEs) sollen sich schließen und öffnen lassen.
  2. Die Türen müssen auf der richtigen Bahnsteigseite öffnen und schließen.
  3. Wagons ohne Türanimation sollten keine Fehler in der EV verursachen.

4. Spitzenbeleuchtung entsprechend der Fahrtrichtung!

Hallo

Ich habe einen herrenlosen schwebenden Fahrzeugführer vorsichtig auf die Bahnsteigkante gesetzt. Er war sich nicht sicher welche der Loks seine ist.....

bis neuLich

Start und Stopp (und anderes) im Bahnhof Testanlage.mbp

Edited by neuLich
Link to post
Share on other sites
vor 12 Stunden schrieb tim-fischertechnik:

Die grafische EV setzt jetzt genau das um, was in der Wahrheitstabelle steht.

Hallo Tim,

diese Tabelle besagt, dass es zwei Ergebnisse gibt.

Das eine bekommt man, wenn nur eine der beiden Aussagen unwahr ist.
Das andere bekommt man, wenn entweder beide wahr oder beide falsch sind.

Das kann man mit einer einzigen Bedingung prüfen:

Aussage_A == Aussage_B

Oder im MBS:

1738563542_kombinierteBedingungen.jpg.047b1cc8fd2db42a5c339291350d3a5c.jpg

 

Hier ist die Anlage mit der vorgeschlagenen Vereinfachung für beide Fälle (Tür öffnen / Tür schließen):
Start und Stopp im Bahnhof Testanlage - Version 4 Alternative.mbp

 

Viele Grüße
Götz

Link to post
Share on other sites

Hallo TIM, Hallo Freunde.

Ich wusste ja gar nicht, dass meine Testanlage so umfangreich, und voller Interesse begutachtet wird.

Ich freue mich sehr darüber und bin glücklich. 

Ich persönlich lese mit Begeisterung jede E-Mail und jeden Kommentar dazu mit, und bemerke die große vielfallt der Wege die zum Ziel führen

Wenn ich die E-Mail Anhänge drucken könnte ich würde es liebend gerne tun. :-)

Lieber Tim, hast du schon einmal darüber nachgedacht evtl. so eine Art von Schriftsteller für Bedienungsanleitungen in leichter Sprache zu werden? 

Es liest sich einfach toll und verständlich.

Lieber Goetz auch dir herzlichen dank für den Einwand dadurch kürzt sich die EV tatsächlich wieder ein wenig ab.

Ich wäre aber auch den Schritt von Tim erstmal gegangen denke ich, da die Schritte einzeln.....

Ich wünsche Euch ein schönes Wochenende und wer kann besucht doch unsere "Kieler Woche" einmal.

Link to post
Share on other sites

Hallo liebe Community,

heute stelle ich euch vor, wie wir die Türsteuerung für beide Bahnsteigseiten umsetzen werden. Die Bahn hat dafür ein milliardenschweres Investitionspaket für einen neuartiges Bahnsteigkonzept ausgeben. Es handelt sich hierbei um ein Pilotprojekt, einen verschwenkbaren Bahnsteig, der sich mittels eines Schalters verschwenken lässt. Einige Anwohner munkeln, dass das übrige Geld für den geplanten Streckenausbau nicht mehr ausgereicht hatte und eine Kehrschleife die momentan praktikabelste Lösung darstellt. :D

1296965735_1_7_KonfigurierungderGKfrBahnsteigseiten.thumb.jpg.12df6f6c954aa01314e85c3ff18c470c.jpg

Grafik 1/7: Konfigurierung der GK für Bahnsteigseiten

Sobald der Schalter betätigt wird, wird der aktuell sichtbare Bahnsteig ausgeblendet und der gegenüberliegende Bahnsteig eingeblendet. Zudem wird für jede Bahnsteigseite ein gleichfarbiger Gleiskontakt auf dem Stumpfgleis positioniert. Beide Gleiskontakte beinhalten das Schlagwort „GK-Bahnsteig“ das momentan noch irrelevant für den Ablauf ist und die boolesche Variable „linke Bahnsteigsseite“. Nur auf der linken Bahnsteigseite ist der Wert dieser Variablen wahr, also true.

Später möchten wir sicherlich keinen verschwenkbaren Bahnsteig mehr haben und entscheiden uns dann für einen der beiden Gleiskontakte entsprechend der Bahnsteigseite. Für unser Tutorial wird in Zukunft nur noch das Ereignismodul „Tutorial-Modul“ relevant sein. Alle übrigen Module sind für die eigentliche Türsteuerung irrelevant und müssen weder berücksichtigt noch verändert werden. Wenn der ICE zweimal in den Bahnhof gefahren ist, verschwenkt er beim Betreten eines Gleiskontaktes in der Kehrschleife automatisch den Bahnsteig um.

(Fortsetzung folgt in Kürze)

Link to post
Share on other sites
Posted (edited)

Inspiriert von Götz

Am 17.6.2022 um 11:47 schrieb Goetz:

Hier ist die Anlage mit der vorgeschlagenen Vereinfachung für beide Fälle (Tür öffnen / Tür schließen):

möchte ich die Türsteuerung für beide Bahnsteigseiten nach dem Schema umzusetzen, da der Code wesentlich schlanker und übersichtlicher wird.

Wir benötigen im Gegensatz zur vorherigen Anlage zusätzlich die Information über die Bahnsteigseite. Wir entscheiden uns einfach für die linke Bahnsteigseite, da wir sie zuvor immer angefahren haben, und weisen dem Gleiskontakt die boolesche Variable „linke Bahnsteigsseite“ mit dem Wert „true“ zu. Konkret steht der Wert der booleschen Variablen für Folgendes:

  • linke Bahnsteigsseite = true --> linke Bahnsteigseite
  • linke Bahnsteigsseite = false --> rechte Bahnsteigseite

Boolesche Variablen können im Gegensatz zu Zahlen nur zwei Werte (true und false) darstellen, eignen sich aber prima für Bedingungen, weil diese ebenfalls nur „wahr“ oder „falsch“ zurückgeben.

 

1630189592_1_8_Wertetabelle_TrenffnenschlieenaufbeidenBahnsteigseiten.thumb.jpg.6ad7c988df408a90993c5baddc414614.jpg

Grafik 1/8: Wertetabelle - Türen öffnen schließen auf beiden Bahnsteigseiten

Wenn wir diese Wertetabelle anschauen, sehen wir, dass sich die ersten vier Fälle in ihren Ergebnissen genau spiegelverkehrt zu den übrigen Fällen verhalten. Die Fälle 5 bis 8 sind uns schon bekannt, da wir hier die linke Bahnsteigseite wie im vorherigen Lösungsvorschlag anfahren. Da liegt es doch nahe, wenn wir mit einer zusätzlichen Bedingung überprüfen, ob die Variable „linke Bahnsteigseite“ im Gleiskontakt den Wert „true“ enthält und wir die Animationen für die rechte Bahnsteigseite vertauschen.

2081851691_1_9_ausfhrlicheEV-TrenaufbeidenBahnsteigseitenffnen.jpg.099f8b7dfde319a13287a1113bded85c.jpg

Grafik 1/9: ausführliche EV - Türen auf beiden Bahnsteigseiten öffnen

Das funktioniert recht gut, doch wir haben im Beitrag von Götz gelernt, dass wir Aussagen so zusammenfassen können, dass diese nur mit einer einzigen Bedingung überprüft werden können. Beim ersten und achten Fall in der Wertetabelle sind alle drei Aussagen entweder falsch oder wahr.

Dabei spielt es keine Rolle ob, wir nur zwei Faktoren,

Faktor A == Faktor B

drei Faktoren,

(Faktor A == Faktor B) == Faktor C

vier Faktoren,

((Faktor A == Faktor B) == Faktor C) == Faktor D

oder gar fünf Faktoren

(((Faktor A == Faktor B) == Faktor C) == Faktor D) == Faktor E

verwenden. Wir müssen natürlich auf die Klammern achten. Wenn ein weiterer Faktor hinzukommt, nennt man das auch Kaskadierung, weil ein weiterer Fall (Kaskade) das Ergebnis in die eine oder andere Richtung kippt. Für unsere drei Aussagen gilt nach dem Schema Folgendes:

(linke Bahnsteigsseite == Schlagwort „andere Türseite“ im Auslöser) == Schlagwort „andere Türseite“ im Wagon

 

Wir haben nun das Problem, dass wir mit der grafischen EV maximal 2 Variablen gleichzeitig vergleichen können. Wir haben zwei Möglichkeiten das Problem zu umgehen:

  • Wir vergleichen immer zwei Variablen der Reihe nach und speichern das Zwischenergebnis. Mit steigender Zahl an Faktoren wird dieses Prinzip jedoch unhandlich.
  • Wir nutzen in der grafischen EV die Skript-Bedingung. Dort schreiben wir einen Einzeiler in der Programmiersprache Lua. Ihr braucht keine Sorge haben, Lua zu lernen, da man die grafische EV einfach in Lua umwandeln kann. Wir entscheiden uns hierfür.

 

Skript Bedingung Nr. 1:

636942141_1_10_kompakteEV-TrenaufbeidenBahnsteigseitenffnen.thumb.jpg.52fefefd8bde4c5a09867f291bc9ae7a.jpg

Grafik 1/10: kompakte EV - Türen auf beiden Bahnsteigseiten öffnen

Das Ereignis: „Kontakt 3 wird betreten bei der Einfahrt (kompakt)“ kann jetzt durch zwei Gleiskontakte ausgelöst werden. Vor der Wiederholung weisen wir dem Fahrzeug den Wert der Bahnsteigseite mittels der Variablen „linke Bahnsteigsseite“ aus dem Gleiskontakt zu. Das dient später im Ereignis „Wenn das  KS Hauptsignal schaltet (kompakt)“ dazu, die Bahnsteigseite zu identifizieren, da auf das Fahrzeug nicht direkt als Auslöser zurückgegriffen werden kann. Der Auslöser bei diesem Ereignis ist ein Signal, das jedoch den Zug in seiner Objektvariablen „zug“ abgespeichert hat.

Die fertige Lua-Zeile für die Skript Bedingung Nr. 1 lautet:

return (vehicle.variables["andere Türseite"] == Wagon.variables["andere Türseite"]) == contact.variables["linke Bahnsteigsseite"]

Wie kommen wir jetzt aber darauf? Wir wandeln die einzelnen Bedingungen in ein Skript um und fügen die einzelnen Codestücke über Copy & Paste in die Skript-Bedingung ein.

  1. Wir löschen doppelte Animationen heraus.
  2. Wir legen an oberster Stelle die Skript-Bedingung an.
  3. Wir verschieben die Animationen in die Skript-Bedingung, sodass die Animation mit der rechten Seite im oberen Block der Bedingung angeordnet wird und die linke Seite im unteren Block.
  4. In der Wiederholung haben wir 3 Bedingungen (Skript-Bedingung ausgenommen). Zwei davon sind unterschiedlich. Jede unterschiedliche Bedingung wandeln wir in ein Skript um. Die Bedingung, bei der 
    if vehicle.variables["andere Türseite"] == Wagon.variables["andere Türseite"] then
    end
    steht fügen wir als erstes in die Skript-Bedingung ein. Dabei lassen wir das "if", "then" und "end" weg und setzen es vor "return". Um diesen Code bilden wir noch eine öffnende und schließende runde Klammer. Ans Ende fügen wir zwei Gleichheitszeichen.
  5. Die andere umgewandelte Bedingung fügen wir ebenfalls in die Skript-Bedingung ein. Der Wert "True" wird nicht kopiert. 


Dabei müssen wir nicht einmal wissen, wofür jede Bezeichnung genau steht. 

  • Return steht für den Rückgabewert. Bei jeder Skript-Bedingung wird ein boolescher Wert zurückgegeben, der entweder wahr oder unwahr ist.
  • engl. vehicle = Fahrzeug | Wagon = Name, den wir uns in unserer Wiederholung ausgedacht haben | engl. contact = Gleiskontakt
  • .variables["   "] steht dafür, dass ein Objekt einen Bezug (Referenz) zu einer Variablen besitzt. Die Klammern mit den doppelten Anführungszeichen umschließen den Variablennamen

"Eingedeutscht" sähe der Code so aus:

gebe_ zurück (Fahrzeug.Variable["andere Türseite"] == Wagon.Variable["andere Türseite"]) == Gleiskontakt.Variable["linke Bahnsteigsseite"]

 

1173001198_1_11_kompakteEV-TrenaufbeidenBahnsteigseitenschlieen.thumb.jpg.0e4f9c145b8ec8f25415202d0c66724e.jpg

Grafik 1/11: kompakte EV - Türen auf beiden Bahnsteigseiten schließen

Im Ereignis „Wenn das  KS Hauptsignal schaltet (kompakt)“ löschen wir die Variable „linke Bahnsteigsseite“ im Triebkopf.

Skript Bedingung Nr. 2:

return (signal.variables["zug"].variables["andere Türseite"] == Wagon.variables["andere Türseite"]) == signal.variables["zug"].variables["linke Bahnsteigsseite"]
  • engl. signal = Signal
  • Bei diesem Konstrukt: signal.variables["zug"].variables["linke Bahnsteigsseite"]  haben wir zwei Variablen.

 

Anlagenlayout – Version 5

Start und Stopp im Bahnhof Testanlage - Version 5.mbp

 

Liebe Grüße,

Tim

Edited by tim-fischertechnik
Rechtschreib- und Grammatikfehler
Link to post
Share on other sites

Hallo

Wozu dient der Aufwand die beiden GK's auszutauschen wenn die Bahnsteigseite wechselt? Den einzigen EV relevanten Unterschied, den Wert der boolschen Variablen, könnte man auch schon beim einfahren des Zuges z. B. am Signal übermitteln. Also im Grunde werden die beiden GK's nicht wirklich gebraucht. Selbst ein banaler GK hat einige Polygone. Die Polygonlast und eine übertrieben aufgeblasen EV, beides im Verhältnis zur Größe einer Anlage, sind entscheidend für die Performance, z. b. Bildruckeln. Sicherlich kein Thema bei einer kleinen Demo wie hier, aber wenn eine Anlage dann schon beim Laden viele Minuten braucht, greifen diese Verschwendungen.

Bis neuLich

Link to post
Share on other sites
Posted (edited)
vor einer Stunde schrieb neuLich:

Wozu dient der Aufwand die beiden GK's auszutauschen wenn die Bahnsteigseite wechselt?

Hallo Neulich,

ja du hast Recht. Das war Murks von mir. Vermutlich ist es diesem Grund geschuldet:

vor 2 Stunden schrieb tim-fischertechnik:

Später möchten wir sicherlich keinen verschwenkbaren Bahnsteig mehr haben und entscheiden uns dann für einen der beiden Gleiskontakte entsprechend der Bahnsteigseite

Ich wollte ein Augenmerk darauf legen, dass die Gleiskontakte auch farblich zu den Bahnsteigbezeichnungen passen, damit man versteht, welchen Wert die Variable "linke Bahnsteigseite" bei der jeweiligen Seite aufweist und ich habe es als Herausforderung für mich gesehen, das Positionieren von Objekten mithilfe von Lua zu verstehen. Ich habe dein Anliegen berücksichtig und stelle hier nochmal eine modifizierte Anlage ein.
Start und Stopp im Bahnhof Testanlage - Version 5.mbp

 

vor einer Stunde schrieb neuLich:

Selbst ein banaler GK hat einige Polygone.

Da ich selbst Modellbauer bin, kann ich dir beruhigt sagen, dass so ein Gleiskontakt gerade mal 32 Polygone (Dreiecke) beinhaltet. Wenn man an irgendeiner Stelle im Programm Polygone einsparen kann, ist das mehr als gut, da die Framerate darunter nicht so sehr leidet aber verglichen mit anderen Modellen ist der Einfluss nur marginal auf die Performance. Ich verstehe deinen Einwand, dass man solche Betriebsabläufe nur über einen Gleiskontakt dem KS-Signal steuern kann, wie du eindrücklich in deinem Testlayout gezeigt hast. Damit benötigt man nur ein Ereignis. Leider wird dann die EV recht groß und unübersichtlich. Es ist besser, wenn man solche Betriebsabläufe auf viele kleine verschiedene Ereignisse aufteilt, weil man es besser terminieren und strukturieren kann. Das würde ich dir als Tipp raten. Grundsätzlich gibt es ganz verschiedene Lösungsansätze für ein und dasselbe Problem.

vor einer Stunde schrieb neuLich:

übertrieben aufgeblasen EV

Daher kann ich nicht ganz diesen Einwand nachvollziehen, weil ich mich bemühe, die EV so minimalistisch wie möglich aufzubauen. In der Tutorialreihe wird es fortlaufend Verbesserungsvorschläge geben. Am Ende habe ich dann quasi eine fast "perfekte" Lösung parat. 

 

vor 18 Stunden schrieb neuLich:

4. Spitzenbeleuchtung entsprechend der Fahrtrichtung!

5. Funktion mit unterschiedlichen Zugkonfigurationen

Diese Punkte werde ich an gegebener Stelle auch noch in mein Anlagenlayout einfügen, wenn es thematisch passt.(y)

Liebe Grüße,
Tim

Edited by tim-fischertechnik
Link to post
Share on other sites
39 minutes ago, tim-fischertechnik said:

kann ich dir beruhigt sagen, dass so ein Gleiskontakt gerade mal 32 Polygone (Dreiecke) beinhaltet. Wenn man an irgendeiner Stelle im Programm Polygone einsparen kann, ist das mehr als gut,

Hallo

Ein weiterer, hier vielleicht wichtigerer Grund, gerade bei Tutorials, die Anzahl der Objekte gering zu halten ist die Limitierung der Standard Version auf maximal 150 Objekte die ein "Testfahrer" zugebilligt bekommt um so eine Demo wenigstens abspeichern zu können.

Bis neuLich

Link to post
Share on other sites

2. Lösungsvorschlag - Türsteuerung mithilfe einer Liste mit Objektvariablen (Schlagworte)

Hallo zusammen,

leider bin ich seit gestern gesundheitlich angeschlagen und mir fehlt die nötige Ruhe und Kraft gerade. Den bisherigen Stand möchte ich euch dennoch nicht vorenthalten. Die Anlage stell die Ausgangssituation für den zweiten Lösungsvorschlag dar.

kurze Beschreibung:
Die Anlage beinhaltet zwei Bahnhöfe mit je zwei Gleisen. Die ICEs pendeln zwischen den zwei Bahnhöfen über die automatische Fahrstraßensteuerung. Diese Anlage soll zeigen, dass Schlagworte bei mehreren ICEs nicht mehr viel Sinn ergeben, da sich plötzlich die Türen bei sämtlichen ICEs öffnen, egal ob sie mitten auf freier Strecke fahren oder gerade am Bahnhof stehen.

2. Lösungsvorschlag - Ausgangssituation.mbp


Herzliche Grüße
Tim

Edited by tim-fischertechnik
Link to post
Share on other sites

Hallo Tim, Hallo Freunde

anbei eine Neue Version meines HBF Kiel mit einigen Veränderungen.

Leider funktioniert die EV noch nicht wirklich,

bin aber dran, mit Tims Hilfe klappt es bestimmt, und Eurer Hilfe natürlich auch.

Frage wäre Jetzt aktuell grade bei der Zugnamensanzeige:

Würde gerne die Originalnamen der Züge anzeigen lassen mit Original-Nummer.

Und ich weiß nicht ob es dass gibt, die Anzeigen als Digitalanzeigen.

Aktuell bin ich am Beschriften der Signale und Weichensignale(längst überfällig).

Stellpult ist auch leicht verändert.

11D32CE1-AB63-463C-AA6A-D1ABA0FA9263 

Wünsche viel Spaß beim Anschauen, und bin auf Eure Reaktionen gespannt.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...