Jump to content

Reihenfolge der Fahrzeuge im Zug auf Gleis?


Hawkeye

Empfohlene Beiträge

Hallo @Neo , hallo @Goetz,

ich habe ein Verständnisproblem, wie bei Zügen, die Reihenfolge der Fahrzeuge in Lua eingelesen wird. Egal ob Sie das Gleis betreten, oder schon auf dem Gleis stehen.

Hier meine allgemeine EV für das "Schließen von Fahrzeugtüren" auf einem Gleis im Kopfbahnhof bzw. allgemein an Bahnsteiggleisen.

683663171_Screenshot2021-09-24172139.thumb.jpg.77fd0dde85b8f3420636b659df72d7d3.jpg

Für einen Zug-Wechselbetrieb im Kopfbahnhof auf Gleis 1 wird die Lok für die Ausfahrt gegen eine zweite Lok, die auf einem Abstellgleis steht, ausgetauscht. Nachdem der Zug eingefahren ist und gestoppt hat, werden die Kupplungen und der Antrieb der eingefahrenen Lok deaktiviert. Dann fährt die wartende Lok vom Abstellgleis mit aktivierten Kupplungen in das Gleis 1 und koppelt am letzten Wagen des Zuges an. Wird die Fahrstraße für die Ausfahrt freigegeben, fährt die "neue" Lok auch mit dem Wagen wie geplant aus dem Kopfbahnhof. 

Es gibt für den Zug-Wechselbetrieb also 4 Möglichkeiten für die Ausfahrt von Gleis 1 mit der "neuen" Lok:

Lok 1 fährt bei der Ausfahrt "vorwärts"

Lok 2 fährt bei der Ausfahrt "vorwärts"

Lok 1 fährt bei der Ausfahrt "rückwärts"

Lok 2 fährt bei der Ausfahrt "rückwärts"

 838183210_Screenshot2021-09-24164351.thumb.jpg.3939ad1d6a8bdcf0ca09f4eb230769fb.jpg

Bei Lok 1 = Siemens-Vectron-1 mit Fahrtrichtung "vorwärts" ist die Lok auch die Nr. 1 beim Einlesen vom Gleis.

1338925198_Screenshot2021-09-24164323.jpg.4c412da20b736a777f2cbeeb57b122d0.jpg

Ebenso für Lok 1 Richtung "rückwärts" und Lok 2 Richtung "vorwärts".

1782289038_Screenshot2021-09-24165109.jpg.71a938c2e0f5b782c79c7261de589b5e.jpg

Lok 2 Richtung "vorwärts"

1670983272_Screenshot2021-09-24164826.jpg.c4875493a3e8dc36c1f0d754ee336c04.jpg 

Aber bei Lok 2 Richtung "rückwärts" ist der Wagen "-vorne" an Nr.1 und die Lok-2 an Stelle Nr. 5 !!!

1133386524_Screenshot2021-09-24165653.jpg.25c66a9537f3030336a97036ab075231.jpg

1032127928_Screenshot2021-09-24171453.thumb.jpg.e8c4e6c7535b6b24a76472ebb373b020.jpg

Gibt es dafür eine Erklärung? Die selbe EV als Schleife wird 4x ausgeführt, davon werden die Fahrzeuge im Zug 3x richtig und 1x in falscher Reihenfolge eingelesen.

Das hat bei mir Auswirkungen auf die gesamte folgende Steuerung!  

Ich dachte der Zug auf einem Gleis wird immer vom "aktiven" Fahrzeug aus eingelesen. Ist das nicht so?

Der Antrieb und die Kupplungen der Lok am Prellbock ist/ sind dabei immer "deaktiviert". Sie wird bei layout:getVehicleGroup() auch nicht mit eingelesen.

Habe alles mehrfach durchlaufen lassen, aber der Fehler des Einlesen in falscher Reihenfolge tritt immer bei Lok 2 mit Fahrtrichtung "rückwärts" auf.

Viele Grüße

Hawkeye

Screenshot 2021-09-24 162635.jpg

Screenshot 2021-09-24 163125.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Hawkeye,

vor einer Stunde schrieb Hawkeye:

Gibt es dafür eine Erklärung?

Die erste Erklärung ist die Arbeitsweise der Lua Funktion "in pairs".
Die Reihenfolge, in der alle Elemente einer Tabelle mit dieser Funktion durchlaufen werden, ist nicht sequentiell. Dafür kriegt man mit "in pairs" alle Elemente einer Tabelle zu fassen. Egal, ob die Zellen (fortlaufend) nummeriert sind oder Bezeichner haben.

Die Alternative ist "in ipairs", Beachte bitte das i (für iterable) vor dem "pairs".
Diese Variante erfasst nur den lückenlos durchnummerierten Teil einer Tabelle. Dieser wird wie eine Liste oder ein Array durchlaufen.

Ob darüber hinaus die Elemente eines Zuges überhaupt sequentiell in der Tabelle stehen, habe ich noch nie untersucht. Aber wenn sie es tun, dann ist "in pairs" nicht geeignet, dir diese Reihenfolge richtig zu liefern. Das mag oft zufällig stimmen, aber du hast keine Garantie.

Viele Grüße
Götz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Götz,

vor 6 Minuten schrieb Goetz:

Die Alternative ist "in ipairs", Beachte bitte das i (für iterable) vor dem "pairs".
Diese Variante erfasst nur den lückenlos durchnummerierten Teil einer Tabelle.

Ja das habe ich auch schon probiert, aber wieder verworfen. Mit „ipairs“ komme ich zum gleichen Ergebnis.

Die Steuerung habe ich in V6 entworfen und immer war das 1. Fahrzeug die Lok unabhängig der Fahrtrichtung, auch wenn ein Wagen das Gleis bei Rückwärtsfahrt zuerst betreten hat.

Werde das in V6 wohl nochmal überprüfen müssen.

Danke erstmal.

Viele Grüße

Hawkeye

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @HaNNoveraNer,

vor 6 Minuten schrieb HaNNoveraNer:

Vielleicht ist es besser, den Zug in eine eigene Tabelle einzulesen und für die Lok(s) das Vorhandensein eines Antriebs abzufragen? 

Das ist nicht notwendig, Fahrzeuge mit und ohne Antrieb werden in meiner Steuerung eh unterschieden.

Meine Steuerung für alle Fahrzeug-Animationen basiert aber darauf, das das erste Fahrzeug immer genau das Fahrzeug ist, das das Gleis betritt, bzw. vor dem Signal mit Antrieb existiert. Die Fahrzeuge eines Zuges, die gelesen werden sollen beziehen sich immer auf die Lok, die den Zug zieht. Daher basiert der Zug der aufgelistet werden soll, immer auf der Lok. Deshalb sollte an Nr. 1 immer die Lok stehen. War bisher auch immer so. (V6)

Dieser Effekt das plötzlich ein Personenwagen an Nr. 1 gelistet wird und die Lok an letzter Stelle im Zug auftaucht ist neu. Die Reihenfolge war immer ausgehend von der Lok = Zug

VG

Hawkeye

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Hawkeye,

die Funktion getVehicleGroup baut die Liste der Fahrzeuge ausgehend von der Blickrichtung des übergebenen Fahrzeugs auf. Die Liste unterscheidet sich somit, je nachdem ob das Referenzfahrzeug in die eine oder in die andere Richtung blickt.

Viele Grüße,

Neo

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 30 Minuten schrieb Neo:

Die Liste unterscheidet sich somit, je nachdem ob das Referenzfahrzeug in die eine oder in die andere Richtung blickt.

Hallo Neo, 

Danke für die Info. Erklärt aber nicht warum es nur einmal andersherum gelistet wird. Bei Lok 1 spielt die Richtung keine Rolle. Nur bei Lok 2 wird je nach Richtung unterschiedlich gelistet. Dabei ist Lok 2 ein Dublikat von Lok 1.
Werde das morgen mal austesten müssen. 

Viele Grüße

Hawkeye

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hello zusammen, soweit ich das verstehe, würde das meine Güterwaggons beim abrollen eventuell auch betreffen, da meine Züge im Schattenbahnhof mittels Kehrschleife ja quasi umdrehen und dann in der Einfahrgruppe vom Rangierbahnhof verkehrt ankommen. Also der Erste Waggon ist dann der Letzte und demnach müssen dann die Fahr "Wege" kontra gestellt werden, weil ja aus fünf Zügen fünf andere gebildet werden sollen, die anschließend wieder in die ursprünglichen zurück rangiert werden. Und das geht dann immer so weiter. Also jeder Waggon hätte zwei verschiedene Zielgleise, je nachdem aus welcher Richtung er in den Bahnhof einfährt. Ich hoffe das war jetzt nicht zu konfus, möchte aber keinen Roman darüber schreiben. Die möglichen Ziele würde ich allerdings schon im Waggon speichern (Schlagwort) und je nach Zustand einer Variable usw. mittels Gleiskontakt beim abrollen abrufen. Also jeder Waggon bringt seine Informationen schon mit. Dies könnte man jetzt wahrscheinlich in Listen genau hinterlegen, sodass bei jeder Abfolge immer das Gleiche passiert (Wiederholung). Blöd wäre es nur, wenn da in der Reihenfolge  etwas durcheinander käme... darum weiß ich nicht, in wie weit dies mit oben genannten Problemen zu tun haben könnte? Am Besten gar nicht, sorry für meine unpräzisen Aussagen, kann es aber gerade nicht genauer definieren!

LG  Atrus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Atrus,

einzelne Fahrzeuge oder Wagen betrifft das nicht. Es geht nur darum in welcher Reihenfolge Fahrzeuge in einem Zug mit Wagen oder z.B bei gekoppelten Triebzügen in Lua eingelesen werden. Triebzügen haben immer mindestens 2 Fahrzeuge je nach Länge manchmal auch 4 Fahrzeuge mit Antrieb im Zug. Da hat Neo dann schon recht, das die Triebzüge, die am Anfang und am Ende sind immer in Fahrtrichtung stehen. Man sieht von jedem Triebwagen aus die zu befahrende Strecke. (Cockpit-Ansicht). Auch wenn nur eine Lok mit mehreren Wagen vorhanden ist, stellt man die Lok doch so auf, das man in der Cockpit-Ansicht die Strecke auch sieht! Da klingt auch soweit logisch und ist nachvollziehbar.


Beim Lokwechsel auf einem Stumpfgleis bei nur einer Lok im (Personen-)Zug kommt es dann aber vor, das die Lok mit Blickrichtung zu den Wagen steht und die ganze Strecke bis zum nächsten Wechsel eben „Rückwärts“ fährt und man in der Cockpit-Ansicht nur auf den ersten Wagen schaut. Fahrtechnisch ist das auch kein Problem. Es wird nur zu einem, wenn man Informationen der an erster Stelle stehenden Lok einlesen und verwenden möchte. Dann ist die „Leserichtung“ also die „Blickrichtung“ von Bedeutung. Das kann man auch alles programmiertechnisch berücksichtigen, sofern alle Zuge dementsprechend gleich gelesen werden. Ein Zufallsprinzip beim Einlesen ist dabei kontraproduktiv.

Es gilt also herauszufinden, warum 2 gleiche Loks , die mit Blickrichtung „rückwärts“ fahren nicht die gleiche Leserichtung haben.

Viele Grüße

Hawkeye

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

I would agree that there should be no question of random behaviour in these systems. That being said, I have used a different approach (through ignorance, really...) when shunting forward or backwards. I set flags for when the shunter is 'solo', and when it is pushing or pulling. In the layout attached, the shunter takes wagons from West to East from three 'dead-end' tracks, then takes them all back, but to a different 'dead-end'. The cycle repeats, and takes a long time to get the wagons back to their original places..! It's all programmed by hand, with no routes, in a very basic manner (I knew no better at the time...), but has no issues with 'knowing' which way the train is moving. Just a thought; there is, as the expression goes in English, 'more than one way to skin a cat'. B|

Ich würde zustimmen, dass von zufälligem Verhalten in diesen Systemen keine Rede sein sollte. Davon abgesehen habe ich einen anderen Ansatz gewählt (aus Unwissenheit, wirklich...), wenn ich vorwärts oder rückwärts rangiert habe. Ich setze Flags, wenn der Rangierer „solo“ ist und wenn er drückt oder zieht. In der beigefügten Anlage nimmt der Rangierer Wagen von West nach Ost von drei „Sackgassen“-Gleis und bringt sie dann alle zurück, aber in eine andere „Sackgasse“. Der Zyklus wiederholt sich und es dauert lange, bis die Waggons wieder an ihren ursprünglichen Platz zurückgebracht werden..! Es ist alles von Hand programmiert, ohne Routen, auf sehr einfache Weise (ich wusste es damals nicht besser ...), aber es gibt keine Probleme damit, zu wissen, in welche Richtung sich der Zug bewegt. Nur ein Gedanke; es gibt, wie der englische Ausdruck sagt, „mehr als eine Möglichkeit, eine Katze zu häuten“. B|

1048533157_2021-09-2512_34_01-__Layout_29-3DTrainStudioV7.thumb.jpg.2a7e66ad30d14dbb7c63ceb0b02aca91.jpg

(System saved in v7, but uses no v7 features...)

(System in v7 gespeichert, verwendet aber keine v7-Funktionen...)

Layout_29.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb Dad3353:

I would agree that there should be no question of random behaviour in these systems.

Hallo @Dad3353

ist es auch nicht! Ich hab es herausgefunden. Es liegt an Blickrichtung der Personenwagen! Wenn der erste Wagen nicht zur Lok zeigt, dann wird auch mit der Lua-Anweisung

getVehicleGroup(Zug) wieder bei Lok 2 "rückwärts" die Reihenfolge richtig eingelesen. 

65848924_Screenshot2021-09-25134738.thumb.jpg.1a1f6a7ed7e64812840f913c50cb102a.jpg

1461353062_Screenshot2021-09-25140527.jpg.c1a2a9fc1e9d082305c594c244f681fe.jpg

Wie Neo schon bemerkt hat, es ist alles eine Frage der "Blickrichtung" ;) Aber auch von allen Fahrzeugen in einem Zug!

Da muss man auch erstmal drauf kommen. 

Viele Grüße

Hawkeye

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