Jump to content

Autoscooter-Anlage


BahnLand

Empfohlene Beiträge

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.

1945138388_01Halle1.thumb.jpg.ec6c0c2a98a5d18c393f335fb4b5e357.jpg
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.

2055826419_02Halle2.thumb.jpg.cc059f471d2d436bf327a929bdd5f246.jpg
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.

639164618_03Fahrzeug-Bereitstellung(24Fahrzeuge).thumb.jpg.38a26ead9fdcf627b66643120d3d3567.jpg
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.

547586285_04Ereignisse.thumb.jpg.13cf8c249cd7bc173f2108f8d4bf01d0.jpg
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.

206503542_05Objektvariablen.thumb.jpg.41ab4e001906288c26e0f7913f95a30d.jpg
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.

31594551_06Deadlock.thumb.jpg.7121a6d162590072139c60fd8bccf110.jpg
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:

1262890211_07Schalter(InitialisierungFahrtReset).thumb.jpg.4051ab64aefe1a56b9db65cf0067104a.jpg
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. :D
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

 

Bearbeitet von BahnLand
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Bahnland,

dazu fällt mir nur eins ein:

RESPEKT (y)

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Bahnland,

SUPER gemacht!(y)(y)(y)

Nach sechs Stunden Stresstest nicht ein Deadlock.

Allerdings Müsste ich wohl mal mit zwei gewissen Herrschaften ein ernstes Wörtchen reden,...

scooter.thumb.jpg.4b220d581b641aa03f3e449c59a82f94.jpg

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.:o

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.;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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. …:D und zweitens, das werde ich den Tierschutzverein melden, dass eine Giraffe ohne Führerschein mit Autoscooter fährt … :D:D:D … und drittens hat der affe einen affen gehabt?:D … viertens ...auch Hunde Besitzer sollten wissen, dass man seine Vierbeiner angurten muß und sollte … das gibt mit Sicherheit eine anzeige für den Hundehalter :D … fünftens ja gibt's den sowas ? kidis stehend auf der Scooter Plattform... also sachen gibt's :D:D… Hühner sollen wohl während der rasenden fahrt noch eier legen... hier erhebe ich sehr großen einspruch :D:D … 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 :D:D … na dem Herrn mit der angel, werde ich aber auch noch was flüstern :D, der soll mit seiner angel an anderen stellen nach Frauen angeln :D … und den opa Dampflok im gelben Scooter , dem sei verziehen, obwohl das auch gefährdend sein kann, wenn er sooooo dicke Rauchwolken ausstößt :D:D …. aber ende gut alles gut … und du darfst dich mit (y) eindecken ,so vielen du willst... Glückwunsch zum verrückten Autoscooter... superklasse gemacht (y) + gefällt mir + extra gefällt mir … gruß schlagerfuzzi

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.:D:D

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.:D  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.:D:D

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.

Hund.thumb.jpg.1daa014d33ccc0cd19e2d5617d7b48ec.jpg

Und jetzt sag mir bitte, wie den dort einer Anschnallen soll?

HG

Wüstenfuchs

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Jahr später...

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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