Jump to content

Ereignisse für Waggons (Fahrzeuge ohne Antrieb)


Recommended Posts

Hallo zusammen,

Ich beschäftige mich (mal wieder) mit Rangierbetrieb. Hierbei bin ich auf zwei Fragen gestoßen, für die ich bisher keine Lösung habe (Außer Mitschreiben von Ereignissen in Variablen). Es geht um Waggons, also Fahrzeuge ohne Antrieb:
1. Kann man die Fahrtrichtung von Waggons ermitteln (vorwärts = Richtung vordere Kupplung) ?
2. Kann man ermitteln, welcher Waggon ein Gleis / Gleiskontakt betritt (statt des Triebfahrzeugs) ?

Dies wäre hilfreich um zu ermitteln, ob die vordere oder hintere Kupplung eines Waggons deaktiviert werden soll.

Wenn jemand eine Idee hat, bitte melden.

Viele Grüße,

Wolfgang

 

Link to comment
Share on other sites

Hallo Wolfgang,

vor 28 Minuten schrieb prinz:

um zu ermitteln, ob die vordere oder hintere Kupplung eines Waggons deaktiviert werden soll

kannst du (per Lua) prüfen, an welcher Kupplung etwas hängt.
Die Kupplungen ohne Anhang sind die äußeren Kupplungen des Zugverbands.

connectedCoupler.thumb.jpg.44a2e2ad4ab6e1a631161620742d7233.jpg

Hilft dir das?

Götz

Edited by Goetz
Bild hinzugefügt
Link to comment
Share on other sites

Nochmal Hallo,

Ja, das hilft mir weiter.

Falls jemand hier auch eine Lösung sucht, ein paar Details: Mit diesem Skript werden die Kupplungsbelegungen eines Zuges ausgelesen und einerseits in das Protokoll geschrieben. Zusätzlich wird bei jedem Waggon eine Variable eingetragen, ob sich die Lok Richtung vordere Kupplung (=0) oder Richung hintere Kupplung (=1) befindet:

1521846615_SkripKupplungauslesen.JPG.645cd0830eed5f54826abd8e1856cfd3.JPG

Hier das Protokoll dazu (mit meinem Beispielzug):

470709587_ProtokollKupplung.JPG.9ae7d2a97f307e254eca9b803b3dfea9.JPG

Bisher sieht es so aus, dass die Waggons immer beginnend beim Triebfahrzeug ausgelesen werden, so dass man sich eine Reihenfolgeermittlung sparen kann.

Also: Danke nochmal. Problem gelöst.

Viele Grüße,

Wolfgang

 

 

 

Link to comment
Share on other sites

Hallo @EASY,

ich glaube, da hat sich was geändert.

Mein "Testzug":

VersuchBasis.thumb.JPG.f747b23b57c7c6b33a2819349c17f8cd.JPG

(von links nach rechts): 2xGetreidewagen, 2xDWV I10.1, 2xDWV G10.1, Lok BR 218, Gbs 254 lang, Kbs443, Rlmms
(Die Pfeile auf den Waggons sind für meine Tests. Sie zeigen auf die vordere Kupplung)

Versuch1: Lok in der Mitte, Rückwärtsfahrt, Einfahrt von links:

Versuch1.JPG.88c9fa8fa7a6c99f3a9fda58bcd32d81.JPG

Versuch2: Lok in der Mitte, Vorwärtsfahrt (Lok gedreht), Einfahrt von links:

Versuch2.JPG.6f8f29f48f0b542dffbd42b9790f13d8.JPG

Versuch3: Lok in der Mitte, Rückwärtsfahrt, Einfahrt von rechts:

Versuch3.JPG.108e254aae79916d0ab9a9a1e83050ed.JPG

Auch bei Einfahrt von rechts mit erneut gedrehter Lok dasselbe Ergebnis.

Grüße, Wolfgang

 

 

Link to comment
Share on other sites

  • 5 weeks later...

Hallo @prinz,

da mich auch das Thema interessiert, habe ich dein Skript etwas modifiziert, um damit eine fahrtrichtungsabhängige Türsteuerung umzusetzen. Auch von meiner Seiten aus. Vielen Dank für das Skript! Das konnte ich echt gut gebrauchen. ;)
2040839110_Vorschaubild-fahrtrichtungsabhngigeTrsteuerung.thumb.jpg.f3396bd6973ce9d1f60e0ac968aff562.jpg

Am 20.3.2022 um 17:42 schrieb prinz:

Zusätzlich wird bei jedem Waggon eine Variable eingetragen, ob sich die Lok Richtung vordere Kupplung (=0) oder Richung hintere Kupplung (=1) befindet:

Diese Variable "zur Lok" erfüllt bei mir einen etwas anderen Zweck, und zwar gibt die Variable die relative Position der Wagen ohne Antrieb zum Auslöser (Lok) wieder. Wenn die vordere Kupplung in dieselbe Richtung wie die vordere Kupplung des Auslösers zeigt, dann besitzt sie denn Wert 0. Andernfalls besitzt sie den Wert 1. Dann zeigen Kupplungen gleichen Typs genau in die entgegengesetzte Richtung. Mithilfe dieses Positionswertes ermittle ich dann im zweiten Schritt eine fiktive Fahrtrichtung. Wenn "zur Lok = 0" gilt, dann entspricht die fiktive Fahrrichtung genau der Fahrrichtung des Auslösers (vorwärts ==> vorwärts). Andernfalls genau umgekehrt (vorwärts ==> rückwärts). Das Skript selbst habe ich mit Funktionen ausgelagert, damit es übersichtlicher ist. Die Funktionen finden sich in der Skript-Datei (<> Skript). 
 

Am 20.3.2022 um 15:47 schrieb prinz:

1. Kann man die Fahrtrichtung von Waggons ermitteln (vorwärts = Richtung vordere Kupplung) ?

Mit dem modifizierten Skript kann man nun dies ermitteln. Oder hat sich das erübrigt? 9_9 Ich habe die Demoanlage "Kupplungsbelegungen auslesen" mit dem modifizierten Skript unter folgender ID als Entwurf veröffentlicht: 83C32D12-056A-49B1-B20E-D9AE1E6D56DE

In meiner Anlage Türsteuerung verwende ich nun die relative Fahrrichtung, um die Türen abhängig von der Ausrichtung und Fahrtrichtung immer an der richtigen Stelle öffnen zu lassen. 
fahrtrichtungsabhängige Türsteuerung:
fahrtrichtungsabhängige Türsteuerung.mbp

Viele Grüße
Tim

Link to comment
Share on other sites

Hallo nochmal,

ich füge hier zwei Konzepte für eine fahrtrichtungsabhängige Spitzen- und Zugschlussbeleuchtung für alle Interessierten ein, die das Auslesen der Kupplungsbelegungen nutzen. Im Grunde genommen führen beide Konzepte zum selben Ergebnis. Es leuchten immer die weißen Spitzenlichter an der vorderen Stirnseite in Fahrrichtung. Am Zugschluss leuchten dann die roten Zugschlusslichter auf. Zwischen den einzelnen Wagons erlischt die Beleuchtung. (genauere Beschreibung als Link: TF-Ausbildung.de - Zg-Signale)

Im Konzept A wende ich eine Methode an, bei der alle Wagen der Fahrrichtung nach aufgeschlüsselt werden. Das heißt, dass der erste Wagon in Fahrrichtung auch wirklich an erster Stelle einer Liste und der letzte Wagon in Fahrtrichtung an letzter Stelle in der Liste steht. Dazu musste ich in manchen Sonderfällen die ursprüngliche Wagenreihung umkehren. Anschließend kann ich auf die Reihenfolge der Wagenreihung in dieser Liste zurückgreifen und im Auslöser den ersten und letzten Wagen schreiben und somit dann die Animationen schalten. Das Konzept B nutzt dieselbe Methode wie in der fahrtrichtungsabhängigen Türsteuerung. Beide Konzepte haben ihre Vor- und Nachteile, wobei mir persönlich das Konzept B ein wenig besser gefällt, da der Programmieraufwand geringer ist. Dies kann man beispielsweise daran erkennen, dass in Konzept A erst mühselig unterschieden werden muss, ob der Zugverband aus nur einem oder mehreren Wagen besteht.

Konzept A:
Spitzen - und Zugschlussbeleuchtung Konzept A.mbp

Konzept B:
Spitzen - und Zugschlussbeleuchtung Konzept B.mbp


Viel Spaß beim Ausprobieren
Liebe Grüße
Tim

Link to comment
Share on other sites

Am 20.3.2022 um 15:47 schrieb prinz:

2. Kann man ermitteln, welcher Waggon ein Gleis / Gleiskontakt betritt (statt des Triebfahrzeugs) ?

Hallo @prinz,

deine Frage ist zwar schon eine Weile her, wurde aber bisher nicht beantwortet.  Als "Nebenprodukt" meiner aktuellen Experimente kann ein Fahrzeug , ob Lok oder Wagen auch auf einem Gleiskontakt ermittelt werden, ob beim Betreten oder Stoppen. Ich habe mein Skript deshalb dahingehend erweitert.

Falls es dich noch interessiert, hier eine Testanlage mit dem Skript dazu. 

Viele Grüße,

Hawkeye

Ermittlung Fahrzeug auf GK.mbp

Link to comment
Share on other sites

Hallo @Hawkeye,

Tolle Lösung. Ich habe es zwischendurch auch nochmal (vergeblich :() versucht. Wenn man Deine Lösung sieht, fragt man sich: "Warum bin ich da nicht drauf gekommen".

Ich denke, dass ich jetzt die Werkzeuge (Methoden) zusammen habe, mit dem ich dann mein Ziel weiterverfolgen kann, die Steuerung für den Güterbahnhof in der Anlage "Viel_Rangierbetrieb" ( EE634A9D-C177-41A8-966A-F0483E0C5444 ) per GBS zu realisieren. Hierin wird z.B. für das Szenario Ablaufberg die Aktiviereung/Deaktivierung der Kupplungen benötigt. @tim-fischertechnik hat ja hier schon eine Lösung zur Ermittlung der Ausrichtung der Waggons (wegen Kupplung vorne/hinten). Mit Deiner Lösung kann man das Entkupplen an einer vorgegebenen Stelle per GBS durchführen. Sicher gibt es hier noch derzeit verborgene Aufgaben zu lösen, aber die Grundfragen sind geklärt.

Danke Euch für Eure Unterstützung.

Viele Grüße,

Wolfgang

 

 

Link to comment
Share on other sites

vor 20 Minuten schrieb prinz:

Wenn man Deine Lösung sieht, fragt man sich: "Warum bin ich da nicht drauf gekommen".

 

Hallo Wolfgang,

das Kompliment kann ich gleich zurückgeben. Den die Idee, die Wagen an vorderer/hinterer Kupplung abzufragen, hatte ich bisher auch nicht auf dem Schirm. Habe das bisher gar nicht so registriert, aber die Idee hat wirklich Potential. Eröffnet eine neue Vorgehensweise, um einzelne oder eine Auswahl von Wagen von einem Zug beim Rangieren abzukuppeln. Zum Abkuppeln braucht ja eigentlich nur eine Kupplung an einem Wagen dann aber auf der richtigen Seite deaktiviert werden. Das werde ich jetzt auch angreifen, die Vorarbeit hast du ja schon geleistet.😂👍

Rangieren am Ablaufberg habe ich schon realisiert. Ich gebe den Wagen die Variable „Zielort“ und trage z.B. Städtenamen ein. Die Fahrstraßen fragen diese Variable ab und verteilen die Wagen automatisch auf die verschiedenen Gleise des Gleisfächers.

Am Rangieren per GBS bin ich auch dran, aber ohne Ablaufberg, eher für kleine Rangierbahnhöfe, wie z.B. eine Containerentladung, o.ä. 
Hier der Link zu dem (noch nicht aktualisierten) letzten Stand bevor ich die „Schlagwort“-Lösung gesucht habe. Ist also noch nicht darin enthalten, hatte noch keine Zeit dazu.
 

Werde mir deine o.g. Anlage mal anschauen, vielleicht können wir uns ja gegenseitig beim „Probleme lösen“ unterstützen, auch wenn wir andere Ansätze verfolgen.

Viele Grüße,

Hawkeye

 

Link to comment
Share on other sites

Hallo @Hawkeye,

schaue ich mir unbedingt an. Bin nur derzeit zeitlich arg eingeschränkt. Es gibt noch ein Leben außerhalb MBS :/

Aber ich versuche, auf dem Aktuellen zu bleiben.

Viele Grüße,

Wolfgang

 

Link to comment
Share on other sites

vor 14 Stunden schrieb prinz:

Anlage "Viel_Rangierbetrieb"

Hallo Wolfgang, 

ich weiß gar nicht was dein Problem mit der Anlage ist. Sie ist doch klasse und läuft perfekt. (y)

Wo sieht du den Schachstellen oder Verbesserungspotential?

VG,

Hawkeye

Edited by Hawkeye
Link to comment
Share on other sites

Hallo @Hawkeye,

Ja, es läuft alles gut. Ich hatte aber mal geschrieben, dass ich noch ein GBS oder sonstige Tools einbauen wollte, damit auch unsere "Spielkinder" :D mal die Steuerung übernehmen können. Vielen ist eine automatisch laufende Anlage wohl zu langweilig.

Ansonsten: Danke für Deinen Kommentar.

Viele Grüße,

Wolfgang

Link to comment
Share on other sites

 

Hallo @prinz

ich habe mit deiner Idee der Kupplungserkennung auch mal ein wenig experimentiert und sie in einer kleinen Rangieranlage umgesetzt. 

Mit dem Hinweis von Götz lässt sich schon eine Menge anfangen.9_9  

connectedCoupler.thumb.jpg.44a2e2ad4ab6e1a631161620742d7233.jpg

Die folgenden Dinge habe ich mal umgesetzt. 

Am 20.3.2022 um 15:47 schrieb prinz:

ob die vordere oder hintere Kupplung eines Waggons deaktiviert werden soll.

Am 28.4.2022 um 19:21 schrieb Hawkeye:

Zum Abkuppeln braucht ja eigentlich nur eine Kupplung an einem Wagen dann aber auf der richtigen Seite deaktiviert werden. Das werde ich jetzt auch angreifen, die Vorarbeit hast du ja schon geleistet.😂👍

Damit man auch im laufenden Betrieb sehen kann, was passiert, habe ich die vordere und hintere Kupplung durch Andy's Leuchtwürfel mal sichtbar gemacht und die Fahrziele auf den Wagen platziert. (Dadurch kann man die Ausrichtung im Zug sehr gut erkennen.)  

536532846_Screenshot2022-05-02155519.thumb.jpg.64ba12e6a3e43eabe83ab5e7f3f33447.jpg

Es sind 3 Züge vorhanden. Die erste (BR 218-2) rangiert ohne Anzeige (zur Verifizierung der Steuerung). Die beiden anderen Loks mit den Wagen sind mit Anzeige. Die Ausrichtung der Wagen und der Loks kann beliebig verändert werden, sie hat keinen Einfluss auf den Rangierbetrieb.  Sind mehrere Wagen mit dem gleichen Zielort hintereinander im Zug, werden alle Wagen mit dem gleichen Zielort zusammen abgekuppelt.

Viele Grüße,

Hawkeye 

Demo-Rangieren mit automatische Kupplungserkennung.mbp

Link to comment
Share on other sites

Hallo, 

ich habe in der obigen Anlage gerade festgestellt, das eine kleine Anweisung fehlt, um die Waggons nach dem Sortieren auch wieder herausfahren zu können!o.O

625760221_Screenshot2022-05-03092134.thumb.jpg.1a3ef8b804cee69e3e15cf4c066071db.jpg

Hier zur Korrektur und zum Einfügen der erforderliche kleine Eintrag: 

926091060_Screenshot2022-05-03092332.thumb.jpg.4214a86ef60ea29a3f4538447b40933b.jpg

Dann klappt es mit der Einstellung "An Wagen ankuppeln" = True auch mit dem rausfahren.;)

619113401_Screenshot2022-05-03093832.thumb.jpg.973c436110115a3f4b9808e1680e5f7a.jpg

Viele Grüße, 

Hawkeye 

Link to comment
Share on other sites

Hallo Wolfgang,

danke. :)

vor 14 Minuten schrieb prinz:

Das sieht nach einer guten, weiternutzbaren Lösung aus.

Das hoffe ich doch. Ich habe selbst dabei wieder viel gelernt. :D 

Am 20.3.2022 um 17:42 schrieb prinz:

Bisher sieht es so aus, dass die Waggons immer beginnend beim Triebfahrzeug ausgelesen werden, so dass man sich eine Reihenfolgeermittlung sparen kann.

Wie ich dabei festgestellt habe, ist das nicht der Fall.  Es gibt 4 verschiedene Möglichkeiten der Kombination der Ausrichtung vom ersten und letzten Fahrzeug.

33274703_Screenshot2022-05-03172057.thumb.jpg.a50de6cc1238fe60c03a45af32663dfa.jpg

Bei 1. - 3. stimmt die Zählreihenfolge bei ipairs() beginnend mit der Lok = 1.  Nur bei 4. beginnt die Reihenfolge jedoch mit dem letzten Wagen bei = 1 

Deshalb muss bei 4. die Reihenfolge der Fahrzeuge in der Tabelle beim Einlesen umgekehrt werden. 1824112725_Screenshot2022-05-03172758.thumb.jpg.1892dd247e681f757c5ede42f7537c2f.jpg

Es gibt vielleicht noch eine elegantere Lösung dafür, mir ist bisher nur nichts Besseres eingefallen.9_9 

Viele Grüße,

Hawkeye

Link to comment
Share on other sites

Hallo @Hawkeye,

gut zu wissen. Dumm, wenn ich hier nicht alle Möglichkeiten getesetet habe.

Ich hoffe, die Lösung für meine Aufgabenstellungen zu nutzen.

Grüße, Wolfgang

Link to comment
Share on other sites

vor 2 Stunden schrieb Hawkeye:

die Reihenfolge der Fahrzeuge in der Tabelle ...

kannst du wie folgt umkehren:

Beatles = {"John", "Paul", "George", "Ringo"}

function Umkehren(l)
  local neueListe = {}
  for k, v in ipairs(l) do
    table.insert(neueListe, 1, v)
  end
  return neueListe
end


print(table.concat(Beatles, " - "))

Beatles = Umkehren(Beatles)

print(table.concat(Beatles, " - "))

Die Funktion table.insert schiebt (bei Angabe einer Position) alle nachfolgenden Einträge nach hinten.
Wenn du alle Elemente der ursprünglichen Liste nacheinander an erster Stelle einfügst, steht zum Schluss das letzte Element an vorderster Stelle. 

Viele Grüße
Götz

Link to comment
Share on other sites

vor 6 Minuten schrieb Goetz:

Die Funktion table.insert schiebt (bei Angabe einer Position) alle nachfolgenden Einträge nach hinten.
Wenn du alle Elemente der ursprünglichen Liste nacheinander an erster Stelle einfügst, steht zum Schluss das letzte Element an vorderster Stelle. 

Danke, Götz 👍

Viele Grüße,

Hawkeye

Link to comment
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
 Share

×
×
  • Create New...