BahnLand Posted November 6, 2018 Posted November 6, 2018 (edited) Hallo Autoscooter-Freunde, nun habe ich es endlich geschafft, die Autoscooter-Anlage, die ich in V3 gebastelt hatte, auch in V4 zum Laufen zu bringen. Die Anlage wurde mit der Autoscooter-Halle von FeuerFighter erstellt. Bild 1: In Betrieb befindliche Autoscooter-Halle von FeuerFighter Es kann aber stattdessen über die Ebenen auch die Halle von Maiky eingeblendet werden, von der wegen ihrer geringeren Größe zwei Exemplare zu einer größeren Halle zusammengesetzt wurden. Bild 2: In Betrieb befindliche doppelte Autoscooter-Halle von Maiky Beide Bilder zeigen den "laufenden Betrieb" der Anlage. Nach dem Laden ist jedoch ein "Ausgangszustand" eingestellt, bei dem alle Autoscooter-Fahrzeuge außerhalb der Halle aufgestellt sind und erst in die Halle "einfahren" müssen, damit dort der "normale Betrieb" dargestellt werden kann. Bild 3: Ausgangszustand mit im "Aufstellgleis" aufgereihten Autoscooter-Fahrzeugen Die unterhalb des Hallenbodens verlegten Gleise bilden eine große geschlossene Schleife, in der alle Autoscooter-Fahrzeuge immer hintereinander her fahren. Bild 4: Gleisplan mit Gleisabschnitten (grau, teilweise überkreuzend) und Fahrsperren (rot) Hierbei gibt es neben einigen "einfachen" Gleisabschnitten 48 Gleisüberschneidungen und Gleisengpässe (vereinfacht alle als "Kreuzungen" bezeichnet), die jeweils gleichartig vor gleichzeitigem Befahren geschützt werden müssen. Hierzu sind an allen Kreuzungen an den Einfahrten und an den Ausfahrten (in den meisten Fällen gleichzeitig Einfahrt in eine weitere Kreuzung) "Fahrsperren" eingebaut, deren Pfeile die Richtung angeben, in welche der Verkehr darüber abläuft. Ein "Fahrsperre" ist ein Gleis mit einer Spur, welche über eine Weichenschaltung aktiviert (Weichenstellung 1) und deaktiviert (Weichenstellung 0) werden kann. Wird die Spur in jenem Moment deaktiviert, wo ein Fahrzeug das Gleis betritt, wird dieses "eingeklemmt" und damit angehalten. Weitere von hinten auffahrende Fahrzeuge werden ebenfalls zwangsgestoppt. Das "Einklemmen" ist nicht mit einer neuen "Geschwindigkeitszuordnung" gleichzusetzen. Vielmehr bleibt die ursprüngliche Geschwindigkeitszuordnung sowohl für das eingeklemmte Fahrzeug als auch für die aufgefahrenen Fahrzeuge erhalten. Beim Öffnen der Fahrsperre setzen daher alle hierdurch angehaltenen Fahrzeuge ihre Fahrt mit der ursprünglich zugeordneten Geschwindigkeit fort. Das Stoppen und wieder Freigeben der Fahrzeuge wird in der Ereignisverwaltung in der Ereignisgruppe "Kreuzungen" realisiert. Alle dort hinterlegten 8 Ereignisdefinitionen beziehen sich auf die Gleise derselben Kreuzung und deren Einfahr- und Ausfahrgleise, die allerdings nicht explizit benannt, sondern über durch die Ereignisse versorgte Trigger-Variablen identifiziert werden. Bild 5: Objekt-Verknüpfungen mittels Objektvariablen Die Lokalisierung der anderen für diesen "Kreuzungs-Anschnitt" relevanten Gleis-Objekte werden über Objektvariablen referenziert, die während einer Initialisierungsphase aus einem "Grundstamm" von 48 Kreuzungsgleis-Referenzen maschinell abgeleitet werden. Insgesamt besteht der geschlossene Fahrweg aus 124 Gleisabschnitten (grau) und 124 dazwischen angeordneten Fahrsperren (rot). Diese sind in zwei getrennten Nummernbereichen jeweils fortlaufend durchnummeriert (grau 9601-9724, rot 9801-9924), wobei sich die Nummern eines grauen Gleises und der zugehörigen "Einfahrsperre" genau um 200 unterscheiden. So ist es möglich, in einer Zählschleife aus dem von Hand eingerichteten Grundstamm von 48 Kreuzungsgleis-Referenzen (siehe linke Spalte im obigen Bild, ein Kreuzungsgleis referenziert mit einer Objektvariable "Objekt.A" das andere Kreuzungsgleis, es genügt eine Referenz-Richtung) alle weiteren für eine Trigger-Variablen-gesteuerte Kreuzungs-Steuerung notwendigen Objekt-Variablen-Referenzen maschinell abzuleiten (mittlere Spalte: Objektvariablen der Kreuzungsgleise, rechte Spalte: Objektvariablen der Fahrsperren): Objekt.H = Zähler für Einfahr-Blockaden durch vorausfahrendes und kreuzendes Fahrzeug Objekt.S = Referenz der aus Sicht des Objekt-Auslösers zu blockierenden Fahrsperre Objekt.F = Referenz der aus Sicht des Objekt-Auslösers freizugebenden Fahrsperre Objekt.V = Referenz des verlassenen Kreuzungsgleises Objekt.X = Referenz des Objekt.V kreuzenden Gleises Mithilfe dieser Referenzen lässt sich jeder Kreuzungsabschnitt allein über die Trigger-Variablen der Ereignisse "Zug betritt Gleis" und "Zug verlässt Gleis" (erste 5 Ereignisdefinitionen im Abschnitt Kreuzungen in Bild 4) steuern, ohne auf eine fest einprogrammierte Größe zurückgreifen zu müssen. Der Abschnitt "Kreuzungen" wird dadurch 47-mal "eingespart". Die restlichen 3 Ereignisdefinitionen ("Überwachung starten/stoppen/läuft ab") wurden für die Auflösung möglicher "Deadlocks" hinzugefügt. Bild 6: Deadlock-Situation Bilden ausgewählte Kreuzungspunkte zusammen mit den verknüpfenden Verbindungsgleisen (das sind die Fahrsperren) ein geschlossenes Vieleck, bei dem die Fahrtrichtungen zyklisch immer dieselbe Richtung anzeigen (im obigen Bild rechts gilt dies sowohl für das Dreieck in der Mitte als auch für das um die Kreuzung am unteren Bildrand ergänzte Viereck, aber nicht für das untere Dreieck ohne die obere Kreuzung), kommt es dort zu einer Deadlock-Situation, bei der in einem "geschlossenen Ring" jeweils ein Fahrzeug das nächste an der Weiterfahrt hindert (siehe im obigen Bild links). Um solch eine Situation aufzulösen, muss man ein Fahrzeug explizit weiterfahren lassen, damit auch die anderen Fahrzeuge weiterfahren können. Hierzu wird beim "Schließen" der Fahrsperre ein Countdown aufgezogen, der nach einer maximalen Wartezeit (hier 2 Sekunden) abläuft und dann zwangsweise die Fahrsperre öffnet. Öffnet sich diese bereits alleine vorher, wird der Countdown gestoppt. Der Countdown wird wie die dadurch zu überwachende Fahrsperre mit derselben Nummer als Name bezeichnet, so ist es möglich, über dessen Trigger-Variable beim Eintreten des Countdown-Ereignisses zurück auf die Fahrsperre zuzugreifen. Da jede Fahrsperre ihren "eigenen" Countdown mit eigener Bezeichnung besitzt (ist ja dieselbe wie die Fahrsperren-Bezeichnung) kommen mehrere parallel ablaufende und zu bearbeitende Countdowns auch nicht gegenseitig ins Gehege. Nun zum Betrieb selbst: Bild 7: Schalter für Initalisierung und Reset (links) sowie das Starten und Stoppen der Autoscooter Fahrzeuge (rechts) Hierfür gibt es zwei Schalter, von denen der linke beim Einschalten eine Initialisierung durchführt, die exakt aus der Bereitstellung der oben beschriebenen Objektvariablen-Referenzen, abgeleitet aus den 48 fest implementierten Kreuzungsgleis-Referenzen, besteht. Erst wenn diese Initialisierung abgeschlossen ist (auf meinem Rechner nach etwa 5 Sekunden) ist die Blockade von "Konkurrenten" an den Kreuzungspunkten wirksam. Wird dieser Schalter zurückgesetzt, werden alle Fahrzeuge in der Halle in das Aufstellgleis zurückgefahren und die bei der Initialisierung erzeugten Objektvariablen wieder gelöscht, sodass bis auf einen möglichen Versatz der Fahrzeug-Reihenfolge der Ausgangszustand wieder erreicht ist. Die Dauer der Reset-Funktion hängt von der Anzahl der in der Halle befindlichen Fahrzeuge ab und ist abgeschlossen, wenn alle Fahrzeuge das Aufstellgleis erreicht haben. Befinden sich bereits alle Fahrzeuge im Aufstellgleis, wenn der Reset gestartet wird, werden etwa 3 Sekunden für das Löschen aller Objektvariablen benötigt. Mit dem rechten Schalter werden die Autoscooter-Fahrzeuge mit der hier angezeigten Geschwindigkeit gestartet (Schalter an) oder gestoppt (Schalter aus). Die Bedienung dieses Schalters ist nur wirksam, solange das grüne Licht leuchtet. Während der Initialisierungs- und Reset-Phase leuchtet diese Lampe rot. Die Stundenkilometer-Zahl steht in einem separaten Beschriftungsfeld. Wird die Zahl angeklickt, kann man im Eigenschaftsfenster des Beschriftungsfelds diesen Wert ändern. Er wird beim nächsten Start der Autoscooter-Flotte wirksam. Aus dem Aufstellgleis heraus können die Autoscooter-Fahrzeuge sowohl ohne als auch mit vorausgehender Objektvariablen-Initialisierung gestartet werden. Werden die Fahrzeuge ohne die Initialisierung gestartet, kippt der Init-Schalter trotzdem mit um, um einen späteren Reset zu ermöglichen. Bei dieser Start-Variante gibt es an den Kreuzungen keine Zusammenstoß-Kontrolle. Gleichzeitig ankommende Fahrzeuge fahren einfach durcheinander hindurch. Zwischen dem Start der Fahrzeuge im Aufstellgleis und dem Reset kann deren Fahrt beliebig oft angehalten und wieder fortgesetzt werden. Auf der Anlage sind insgesamt 6 Kameras installiert und oben in der Butten-Leiste aufgelistet, welche den Anlagenbetrieb aus verschiedenen Perspektiven zeigen. Kamera 4 folgt beispielsweise von einem bestimmten Standpunkt aus einem Autoscooter-Fahrzeug während seiner Fahrt. In der Mitte am oberen Rand des Kamera-Fensters sind zwei weiße mit der Kamera verknüpfte Punkte positioniert, die als Schalter fungieren. Hiermit kann die Kamera-Verfolgung von einem Fahrzeug auf ein anderes umgeschaltet werden. Hierzu sind alle Autoscooter-Fahrzeuge mit fortlaufenden Nummern bezeichnet (Bereich 9501-9524). Die Nummer des verfolgten Fahrzeugs wird bei der Kamera als Objektvariable mitgeführt. Mit einem Klick auf einen der beiden weißen Punkte kann diese Nummer erhöht (rechts) oder erniedrigt werden (links), was zu einem Wechsel des verfolgten Fahrzeugs führt. Die bei der Autoscooter-Anlage aus V3 eingeführten "Gimmiks" habe ich auch bei dieser V4-Anlage beibehalten. Die Anlage ist im Online-Katalog in der Kategorie "Fertige Anlagen" mit der Content-ID E3DA801F-84A6-410B-A685-D2B21122EDF7 veröffentlicht. Viel Spaß beim Betreiben und Betrachten wünscht BahnLand Edited November 6, 2018 by BahnLand
fmkberlin Posted November 7, 2018 Posted November 7, 2018 Hallo BahnLand, ganz kurz: "Einfach Genial !!!!!!!!!!!!!!!!!!!!!!!!!!!!" Viele Grüße fmkberlin
Andy Posted November 7, 2018 Posted November 7, 2018 Hallo BahnLand, kann Frank nur zustimmen. So wenig Programm hätte ich dafür nicht erwartet. Im Übrigen habe ich einen ähnlichen Effekt festgestellt, wie bei der Kreuzung. Solange man die EV nicht anrührt, geht alles gut. Wenn man bei laufendem Betrieb mal kurz reinschaut (und eigentlich nichts macht), braut sich außen Ungemach auf. Dann geht wohl ein Ereignis verloren und es baut sich ein Deadlock auf. Ich gehe mal davon aus, dass da schon noch ein Problem im MBS ist, wobei dieser Glitch bestimmt nicht einfach aufzuspüren ist - oder sich schlicht und einfach gar nicht verhindern läßt. Zu schön, dass die Anlage gerade jetzt fertig wird, wo wir gerade ein wenig Thema Autoscooter hatten. Tolles Timing, Maiky wird sich freuen. Auf jeden Fall ziehe ich den Hut davor, dass Du's schaffst mehrere Dinge gleichzeitig zu machen. Während ich mich jetzt mit den Kreuzungen beschäftigte, hatte meine Anlage Pause. Da bin ich nicht multithreadingfähig. Grüße Andy
FeuerFighter Posted November 7, 2018 Posted November 7, 2018 Hallo Bahnland, Einzigartig Gruß FeuerFighter
fzonk Posted November 7, 2018 Posted November 7, 2018 Hallo Bahnland, dazu fällt mir nur eins ein: RESPEKT Wenn man die Anlage „nur“ startet und anschaut sieht es so einfach aus, ABER es ist eine Höchstleistung an Logik die es bedarf für genau einen solchen Ablauf. Ich ziehe, wie so oft, den Hut vor deiner Leistung. Vor allem dazu gleich noch die sehr detaillierte Beschreibung. @Andy da passt wohl der Spruch: nur anschauen, nicht Anfassen Spaß bei Seite, ich hatte es in einem anderem Zusammenhang ja auch schon mal erwähnt, dass sich leider die Trigger erzeugten Countdowns verlieren, sobald man die EV öffnet und dann mit „OK“ schließt, die Countdowns bleiben nur erhalten wenn man die EV mit „Abrechen“ schließt. Dies wäre wohl etwas für @Neo, dass dies vielleicht bei einem zukünftigen Update (neuer Version) geändert wird, denn ich habe inzwischen auch ein paar Projekte wo ich dies nutzte und es ist ärgerlich wenn dadurch der Ablauf gestört wird, obwohl eigentlich kein „Fehler“ seitens der Programmierung vorliegt. Gruß Frank
Wüstenfuchs Posted November 7, 2018 Posted November 7, 2018 Hallo Bahnland, SUPER gemacht! Nach sechs Stunden Stresstest nicht ein Deadlock. Allerdings Müsste ich wohl mal mit zwei gewissen Herrschaften ein ernstes Wörtchen reden,... denn ich hab den beiden schon min. tausend mal verboten bei voller Platte im stehen zu fahren. Deren Mütter reizen mir noch mal den Kopf ab wenn sie das sehen. HG Wüstenfuchs PS.: Ich war früher allerdings auch nicht besser. Und solange sie keinen Kopfstand wie ich machen, werde ich dass wohl noch hingebogen kriegen.
schlagerfuzzi1 Posted November 7, 2018 Posted November 7, 2018 hallo @BahnLand, hihihihi, du solltest gleich mal die Sanitäter anrufen, denn wenn jemand den opa mit seinen Ruderboot anrempelt, der fliegt mit Sicherheit durch das elektronische gitterdach hindurch. … und zweitens, das werde ich den Tierschutzverein melden, dass eine Giraffe ohne Führerschein mit Autoscooter fährt … … und drittens hat der affe einen affen gehabt? … viertens ...auch Hunde Besitzer sollten wissen, dass man seine Vierbeiner angurten muß und sollte … das gibt mit Sicherheit eine anzeige für den Hundehalter … fünftens ja gibt's den sowas ? kidis stehend auf der Scooter Plattform... also sachen gibt's … Hühner sollen wohl während der rasenden fahrt noch eier legen... hier erhebe ich sehr großen einspruch … auch diese hundehalterin ,also ich glaub es einfach nicht,und wieder ein Hund nicht angeschnallt , Zeitung lesen und dann auch noch freihändig fahren..., na das kann ja eine ordentliche strafe ergeben … na dem Herrn mit der angel, werde ich aber auch noch was flüstern , der soll mit seiner angel an anderen stellen nach Frauen angeln … und den opa Dampflok im gelben Scooter , dem sei verziehen, obwohl das auch gefährdend sein kann, wenn er sooooo dicke Rauchwolken ausstößt …. aber ende gut alles gut … und du darfst dich mit eindecken ,so vielen du willst... Glückwunsch zum verrückten Autoscooter... superklasse gemacht + gefällt mir + extra gefällt mir … gruß schlagerfuzzi
Wüstenfuchs Posted November 7, 2018 Posted November 7, 2018 Hallo Schlagerfutzi, vor 27 Minuten schrieb schlagerfuzzi1: und zweitens, das werde ich den Tierschutzverein melden, dass eine Giraffe ohne Führerschein mit Autoscooter fährt … Du brauchst wohl meine Brille? Das sind doch Dick und Doof, allerdings Inkoknito. vor 29 Minuten schrieb schlagerfuzzi1: … fünftens ja gibt's den sowas ? kidis stehend auf der Scooter Plattform... also sachen gibt's Der Apfel fällt halt nicht weit vom Birnbaum. Da hättest Du mich früher mal sehen sollen. Stehend fahren war da schon langweilig. vor 31 Minuten schrieb schlagerfuzzi1: … und den opa Dampflok im gelben Scooter , dem sei verziehen, obwohl das auch gefährdend sein kann, wenn er sooooo dicke Rauchwolken ausstößt Das ist noch garnichts. Meine Cousine hat pro Tag zwichen 10 und 15 Lieter Nebelfluid am Scooter verbraucht. Wundert mich bis heute, dass da nie einer die Feuerwehr gerufen hat. Wie man sieht alles nur halb so schlimm. Ach so, ehr ich´s vergesse. Wegen den Hundenanschnallen, das ist manschmal so eine Sache für sich. Wenn meine Cousine ihr Mann mal beim Rangieren seinen Hund nicht einsteigen lies, sah das anschliesend so aus. Und jetzt sag mir bitte, wie den dort einer Anschnallen soll? HG Wüstenfuchs
BahnLand Posted November 9, 2018 Author Posted November 9, 2018 Hallo Leute, ich möchte mich hier wieder einmal ganz herzlich für die vielen "Gefällt mir"-Klicks und die lieben Kommentare, die für mich alle sehr motivierend sind, bedanken. Viele Grüße BahnLand
BahnLand Posted January 4, 2020 Author Posted January 4, 2020 Hallo, das Achterbahn-Vorhaben von @maxwei hat mich daran erinnert, dass meine Autoscooter-Analge aus V4 (siehe hier) in V5 nicht mehr lief. Ich habe die Anlage nun überarbeitet und erneut veröffentlicht (unveränderte Content-ID = E3DA801F-84A6-410B-A685-D2B21122EDF7). Mit der Referenzierungsmöglichkeit "echter" Objekte in den Objektvariablen, der Verwendung von Schlagwörtern und der nun überflüssigen Initialisierung hat sich die Ereignissteuerung deutlich vereinfacht. Insbesondere ist die Kennzeichnung der Gleisstücke unterhalb des Hallenbodens durch Nummern nicht mehr notwendig, wodurch auch die Schleifendurchgänge durch die Nummernkreise entfallen. Abgesehen von dem weggefallenen Init/Reset-Schalter (Reset erfolgt nun über den Pfeil-Button im Start/Stop-Schalter) wurde die ursprüngliche Funktionalität an der Benutzer-Oberfläche beibehalten. Weiterhin viel Spaß mit der Autoscooter-Anlage wünscht BahnLand
fmkberlin Posted January 4, 2020 Posted January 4, 2020 Hallo BahnLand, immer noch (Oder wieder!) ein genuss, dem Treiben zuzuschauen Viele Grüße fmkberlin
Andy Posted January 5, 2020 Posted January 5, 2020 Das ist prima, dass Du sie aktualisiert hast. Glückwunsch! Habe mich schon gewundert, dass Du morgens um halb 6 noch aktiv warst. Hier ist einfach genial, mit wie wenig Ereignissen das gelöst ist. Der Fahrweg ist einfach genial, der ist so schnell nicht nachvollziehbar. Und es kribbelt gewaltig, da mal was ohne Gleise zu versuchen. Das wäre das ideale Experimentierfeld für Kollisionserkennung und eine erste kleine MBS-KI. Gruß Andy
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now