Jump to content

Empfohlene Beiträge

Geschrieben

Moin Forum,

habe mit v8.5 wieder den Weg zurück zum Modellbahnstudio gefunden ud mir eine erste Anlage erstellt.

Teil der Anlage ist eine Verladung von pa-Behältern mit eigenem GBS.

V_Uebersicht.thumb.jpg.d5a1056ddf5eb6b9f86ffc2f779841d8.jpg

Diese Behälter sollen auf einen beliebigen Containeranhänger geladen werden können.

V_Detail2.thumb.jpg.0b28ee3e1d5dedc4e2a2541f80a0a30d.jpg

Die Position zur Umladung am Gleis (6 Sperrsignale) ist bestimmt und wird per EV angefahren.
Auf den Wagen sind entsprechend insgesamt 6 Kontakte um zu ermitteln, ob auf den Wagen ein Container steht.

Wenn, wie im letzten Bild der Auflieger am hier 6.Kontaktpunkt steht, kann ich mutmaßlich den darüber befindlichen Container starten.

Wie bekomme ich es jedoch hin, per EV die Ladebrücke auf dem Anhänger zu drehen?
Das Zugfahrzeug steht ja auf dem Gleiskontakt - wie spreche ich aber DESSEN Auflieger an?
Wie in der Übersicht zu sehen soll es ein beliebiges Gespann sein, da derzeit 4 Stück vorhanden.

 

Die Teilanlage dazu füge ich hier bei: Behälterverladung.mbp

Gruß
Paul

Geschrieben

Hallo Paul,

ich habe als Beispiel mal ein Ereignis für Sperrsig1 eingefügt (und das Signal auf Sh0 gestellt).

Behälterverladung_2.mbp

Eventuell noch mit einem Schlagwort beim Auflieger prüfen, ob die Animation ausgeführt werden soll.

 

Viele Grüße,
    Wolfgang

Geschrieben

Sodele - Dank der Hilfe von @prinz ist der erste Behälter abgeladen und auf dem Hof abgestellt:

V_Detail3.thumb.jpg.9c23c450c4fecb4697dfa4d7e416d15c.jpg

Inklusive des Abtellvorgangs und der Belegt-Anzeige auf dem GBS sind das 5 Ereignisse in der EV für 1 von 6 Beladepositionen am Güterwagen und 1 von 27 Parkpositionen auf dem Hof. In der EV gäbe es auf diesem Weg sicher einen riesigen Aufwand.

Mir stellt sich nun die Frage, ob sich dieser Aufwand (Erstellung, Pflege) nicht vereinfachen lässt.
Ich denke dabei an eine oder mehrere Tabellen für die Güterwagen, die LKW-Gespanne die Abstellflächen auf dem Hof und die GBS-Anzeige,
aus denen je nach Auslöser oder Vorwahl am GBS dann der Entlade- und Abstellvorgang seine notwendigen Parameter entnimmt.

Vermute mal, dass ich da um LUA wohl nicht drum herum kommen werden - Oder?

 

Gruß
Paul

Geschrieben
vor 34 Minuten schrieb shpaul13:

Vermute mal, dass ich da um LUA wohl nicht drum herum kommen werden - Oder?

Zumindest würde Lua die Sache enorm vereinfachen.

 

Geschrieben (bearbeitet)

Hallo Paul,

Da hat Götz recht. Aber mit der grafischen EV kommt man auch sehr weit.

Versuch doch mal, mehr mit Schlagworten zu arbeiten. Damit kann man gleichartige Vorgänge (Parkkontakt erreicht / verlassen oder Aufliegerfahrzeug erreicht Aufladepunkt links) vereinheitlichen. Allerdings muss man dann neben den Schlagworten noch die Objektreferenzen eintragen, die in den bisherigen Events unterschiedlich sind.

Beispiel Parkkontakte: Bisher hattest Du für jeden Kontakt ein Ereignis für Betreten (= GBS-Baustein auf belegt stellen) und ein Ereignis für Verlassen (= GBS-Baustein auf frei stellen) erstellt. Gibt man jeden Kontakt zwei Variablen (1. Schlagwort GBS-Kontakt, 2. Objekt GBS mit dem passenden GBS-Baustein als Inhalt), so kann man aus den 6 Aktionen 2 machen: 1. GBS-Kontakt betreten, ausgelöst wenn ein Kontakt mit Schlagwort GBS-Kontakt betreten wird, schaltet das Objekt in der Variable GBS auf belegt. 2. GBS-Kontakt verlassen entsprechend.

Ebenso kann man auch komplexere Situationen zusammenfassen: Hier: Abladung an den SperrSig1-6. Schau die das mal in Ruhe an. Die Werte werden gesetzt, wenn der Zug den Gleiskontakt erreicht. Das meiste kann man gut nachvollziehen, wenn die Ereignisprotokollierung mitläuft.

Ach ja: Bei der Zuordnung der Ladungen zu den einzelnen Sperrsignalen kann es eine Rolle spielen, wie ein Waggon in den Zug eingehängt ist (in / gegen Fahrtrichtung). Bekommt man auch hin. Aber ich wollte Dir nicht alles abnehmen ;)

Du must zunächst den Zug vorwärts fahren lassen. Dieser hält an dem Gleiskontakt. Die Variablen der SperrSig1-6 werden kann gesetzt.

Ach ja: Das SperrSig6 ist doppelt vorhanden, beide liegen übereinander. Ich habe eines davon gelöscht.

Wenn Du Fragen hast, jederzeit gerne.

Hier die geänderte Anlage (unter neuem Namen):

Behälterverladung_3.mbp

Viele Grüße,
    Wolfgang

Bearbeitet von prinz
Geschrieben

Moin @prinz,

Hut ab!
Das hätte ich so nie hinbekommen.

Habe die Anlage geladen, die beiden EV-Ereignisse nach Lua konvertiert und in einen externen Editor kopiert.
Dennoch war dem Brett vor meinem Kopf nicht beizukommen.

Die Autovervollständigung für Lua in 3DMBS habe ich gefunden, aber sowas brauchte ich dann doch extern und am besten elektronisch.
Das Lua-Tutorial von @Goetz ist zwar sehr hilfreich, allerdings fehlt mir da dann die Befehlsreferenz und auf lua.org
sind wiederum die spezifischen Befehle/Funktionen von 3DMBS nicht vorhanden.

Hatte dann nach entladen des ersten Behälters diesen wieder auf den Tragwagen gestellt und den Zug erneut auf den GLeiskontakt gefahren.
Allerdings wurden jetzt die Variablen der Ladung nicht erneut eingelesen.

Du hattest die Behälter auf dem Wagen umbenannt "...1-1" bis "...2-3" - ist das erforderlich?

Gruß
Paul

Geschrieben

Hallo @shpaul13 ,

Es ist manchmal komplex, ein Geschehen, das vom Augenschein trivial ist, in eine Steuerung zu transferieren. Man sieht, dass ein Container auf einer bestimmten Position auf einem Tragwagen steht und kann einen Auflieger vorfahren, per Animation die Rampe zur richtigen Seite ausfahren, den Container rüberfahren, und so weiter.

Um dies in eine EV umzusetzen, muss man einige Sachen wissen:

Ist die Lok erstes oder letztes Element ?
Wieviele Tragwagen sind im Zugverband enthalten?
Sind die Tragwagen in Vorwärts- oder Rückwärtsrichtung im Zugverband?
Wie kommt man vom Tragwagen zu den Ladeplätzen?
(Wieviele Ladeplätze gibt es auf dem Tragwagen) (in Klammern, da es immer 3 sind)
Ist ein Container auf dem Ladeplatz?

Ähnliche Fragen stellen sich dann zum Auflieger.

Zunächst zu Deinen Brett vorm Kopf (Sorry, Zitat ;)):

Voraussetzungen:
Die Tragwagen haben in den Variablen eine Liste mit den drei Ladeplätzen, in denen jeweils immer der an dieser Stelle geladene Container oder ein leeres Objekt steht. Ein leeres Objekt bedeutet dann, dass an dieser Stelle kein Container geladen ist.
Der Gleiskontakt hat in den Variablen eine Liste mit allen 6 Sperrsignalen (Liste "Straßenkontakte)
Die Auflieger haben das Schlagwort "AuflVHZH"

Was macht die EV, wenn der Zug den Gleiskontakt erreicht (Gleisverladepunkt wird erreicht) ?

- Zunächst wird der Zug angehalten
- Der Straßenindex (zur Ermittlung des zuständigen Sperrsignals) wird auf 9 gesetzt. Warum: Wird ein neuer Tragwagen bearbeitet, so wird dieser Index um 6 verringert, steht also auf 3. Bei der Wiederholung für die Ladeliste (Variable Ladung des Tragwagens) wird diese Variable jedesmal um 1 erhöht. Der erste Container wird somit dem Sperrsignal4 zugeordnet, der zweite Sperrsignal5 und der letzte Sperrsignal6. Der Straßenindex steht somit nach Abarbeiten aller Ladungseinträge auf 6. Wird der nächste Tragwagen bearbeitet (Straßenindex - 6) steht er zu Beginn also auf 0 und beim ersten Ladungseintrag auf 1. Hierbei ist nicht berücksichtigt, dass der Tragwagen in "falscher" Richtung im Zugverbund ist. Dann müsste die Ladungsliste "rückwärts" bearbeitet werden.
- In der Wiederholung "Für alle Fahrzeuge in einem Zug/Fahrzeugverband" werden die Fahrzeuge in Fahrrichtung (Fahrzeug vorne, Fahrzeug dahinter, ...) verarbeitet. Somit wird also zuerst der rechte Waggon geliefert.
- Sicherheitshalber wird geprüft, ob der Name des Tragwagens "Tragwagen BT10" ist. Falls nicht, wird dieser nicht bearbeitet.
- Neben der Modifikation des Straßenindex wird ein neuer Index Tragwagenindex auf 0 gesetzt. Dieser Index bestimmt den Ladeplatz 1-3 auf dem Tragwagen.
- Nun wird die Liste "Ladung" (Variable des Tragwagens) durchgegangen.
- Tragwagenindex und Straßenindex werden um 1 erhöht (also nächstes Sperrsignal und nächster Ladeplatz)
- In das Sperrsignal wird die Variable "Ladung" mit der aktuellen Ladung des Tragwagens an dieser Stelle gesetzt. Das Sperrsignal wird über die Liste "Straßenkontakte" an der Stelle des aktuellen Straßenindex ermittelt.
- Ist die Ladung ein leeres Objekt (also kein Container vorhanden), so wird das Sperrsignal auf Fahrt geschaltet. Ansonsten wird das Sperrsignal auf Halt gestellt, der aktuelle Tragwagen sowie der aktuelle Tragwagenindex wird in das Sperrsignal als Variable eingetragen. Damit "weiß" die EV, Welcher Ladeplatz auf welchem Tragwagen zu bearbeiten ist, wenn ein Aufliegerfahrzeug an dem Sperrsignal hält.

Was macht die EV, wenn ein Auflieger am Sperrsignal hält (hier ohne die Verzögerungen)?

- Wenn im Sperrsignal eine Variable "Ladung" existiert und ein Objekt (Container) enthält, so wird im Verbund der Auflieger (mit Schlagwort "AuflVHZH") herausgesucht und als Variable "aktuell" gespeichert.
- Die Rampe wird nach links gedreht
- Die Rampe wird ausgefahren
- Der Container wird in Bewegung gesetzt (Geschwindigkeit -2 relativ zur Fahrrichtung, also mit entgegengesetzter Richtung zum Beladen)
- Die Rampe wird eingefahren
- Die Rampe wird zurückgedreht
- Im Tragwagen wird in der Ladungsliste der Container auf leeres Objekt geändert
- Dem aktuellen Auflieger wird der Container unter der Variablen "Ladung" eingetragen und im Sperrsignal gelöscht. Damit ist später in den Variablen des Aufliegers ersichtlich, ob ein Container geladen ist.

 

Warum klappte ein zweiter Versuch nicht:

Zunächst: Mein Fehler :o: Ich hatte nicht bedacht, dass in einer Liste ein Eintrag gelöscht wird, wenn dort ein leeres Objekt eingetragen wird.
Dann: Wenn ein Container manuell auf einen Trägerwagen gesetzt wird, fehlt der entsprechende Eintrag in dessen Ladungsliste und wird daher nicht auf das Sperrsignal übertragen.

Ist das Umbenennen der Ladung notwendig?

Nein, aber zum Testen sehr hilfreich ;)

Was noch gemacht werden müsste:
Beladefunktion einbauen: Fährt ein Aufliegerverbund ein und besitzt der Auflieger einen Container, so muss der Verbund zum nächsten Sperrsignal weitergeleitet werden, dem keine Ladung (leeres Objekt) zugeordnet ist. Dort findet dann das Beladen statt. Die Animationen sind identisch mit dem Entladen, nur die Pflege der Variablen im Auflieger und Tragwagen muss dann angepasst werden.
Initialisierungsmöglichkeit für Tragwagen: Da Du schon sehr viele Tragwagen aufgestellt hast, wäre es ziemlich mühsam, dort überall die Ladungsliste in den Variablen einzutragen. Hier wäre ein Hilfs-Ereignis gut, mit dem dies für alle Tragwagen durchgeführt wird.

Wenn Du möchtest, gehe ich dieses Thema mal an.

Ich hoffe, ich konnte Dein "Brett" etwas zerbröseln.

Viele Grüße,
    Wolfgang


 

 

 

Geschrieben

Moin @prinz,

jaaa - jetzt wird es heller!

Zunächst mal Entwarnung - bei den restlichen Behälterwagen können diese nicht abgeladen werden (gehören zum Modell).

Für die Beladefunktion hatte ich mir einen "Kunden" gedacht zu dem alle Behälter gebracht werden:

pa_Behlter2.thumb.jpg.bf5f1e15d81640d711caf3be7fdd6f59.jpg

Zur Orientierung habe ich im Moment mal auf allen Behältern vorne (rechts oben) einen schwarzen Punkt mit dem Behälter verknüpft.

Ich hatte mir überlegt den Behältern entsprechend ihrem Typ Schlagwörter zu vergeben, um das "passende Abstellgleis" auf dem Lagerplatz anzusteuern:

pa_Behlter.thumb.jpg.17d1fc26c30330deba669095829928c4.jpg

Die würde ich gerade noch in Deine letzte Version einbauen und Dir diese dann zusenden.

 

Gruß
Paul

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