Jump to content
Sign in to follow this  
Timba

Position von Zugteilen

Recommended Posts

Hallo,

mal eine Frage an die Experten: Gibt es eine Möglichkeit (vielleicht über LUA), die Position einzelner Zugteile abzufragen? Also nicht das Gleis oder so, sondern die XY-Koordinaten? Ich verzweifele gerade an dem Problem, dass Züge Waggons verlieren, einzelne oder auch mehrere. Solange ich beobachte, passiert natürlich nix, aber lasse ich die Anlage unbeaufsichtigt laufen, finde ich Schrott vor. Meist im Bahnhof, aber meine Vermutung ist eher, dass die auf der Strecke verloren gehen und vom nächsten Zug in den Bahnhof geschoben werden. Besonders merkwürdig finde ich, dass ein Zug seinen ersten Waggon verloren hat, die anderen aber noch angekoppelt sind. (Ich habe die Waggons zur Kontrolle durchnummeriert.) Also wie von Geisterhand wurde der Restzug ab Waggon 2 wieder angekoppelt. Mysteriös. Was mir vorschwebt wäre die Programmierung einer einfachen Kontrollfunktion, die regelmäßig abfragt, ob Lok und Waggon zu weit voneinander entfernt sind und dann ggf. die Anlage direkt stoppt. -grübel-

Share this post


Link to post
Share on other sites

Hi Timba

Spontan wuerde ich sagen das du vielleicht die wagen auf dem gleis durch copy&paste vermehrt hast. Dabei kann es vorkommen das mehrer wagen wie einer aussehen.....und manchmal flutschen sie auseinander.

Kupplungen gehen nicht mal auf und dann wieda zu. Die haeufigste moeglichkeit zuege zu zerreisssen ist wenn weichen umgestellt werden waehrend ein zug darueber rollt. Umstellen von weichen ist hier etwas anders als in real, es werden fahrspuren aktiviert und deaktiviert.  Auf einer aktiven fahrspur kann etwas rollen....

Cheers

Tom

Share this post


Link to post
Share on other sites
vor 1 Stunde schrieb Timba:

Gibt es eine Möglichkeit (vielleicht über LUA), die Position einzelner Zugteile abzufragen?

Ja, die gibt es (mit Hilfe von Lua).

Mit vehicle bekommst du das auslösende Fahrzeug.
Mit vehicles - also dem Plural - bekommst du eine Tabelle, die alle Elemente des auslösenden Zugverbands enthält.

Und da du in dieser Tabelle alle Objekte hast, kannst du auch nacheinander die Positionsdaten all dieser Objekte abfragen.

 

vor 1 Stunde schrieb Timba:

meine Vermutung ist eher, dass die auf der Strecke verloren gehen

Viel wahrscheinlicher ist, dass unbeabsichtigt eine Weiche unter dem Zug umgestellt wird und damit den Verband auseinanderreißt.

Tom sagte das auch schon (stelle ich gerade fest).

Edited by Goetz

Share this post


Link to post
Share on other sites

Vielen Dank erstmal. Das Problem habe ich kurz nach meinem Posting erkennen und ausmerzen können. Natürlich war es die Weichenschaltung, insofern hattet ihr recht. Ich baue den ganzen Kram so nach und nach auf die neuen Gleiskontakte um. In diesem Fall ging es darum, dass eine Weiche sich nach der Zugdurchfahrt wieder auf die Ausgangsstellung zurückstellt. In V4 also Zug verlässt Weiche - Wenn Weiche auf 1, dann Weiche auf 0. Fertig. Also Gleiskontakt an der Stelle eingebaut, erspart ja auch die Bedingung, weil der GK ist ja nur auf der Richtung 1, ABER !!! vergessen auf "Verlassen" umzustellen. Das standardmäßige "Betreten" führte natürlich dazu, dass die Waggons hinter der Lok abgekoppelt werden. So weit so lehrreich.

vor 24 Minuten schrieb Goetz:

Ja, die gibt es (mit Hilfe von Lua).

Mit vehicle bekommst du das auslösende Fahrzeug.
Mit vehicles - also dem Plural - bekommst du eine Tabelle, die alle Elemente des auslösenden Zugverbands enthält.

Und da du in dieser Tabelle alle Objekte hast, kannst du auch nacheinander die Positionsdaten all dieser Objekte abfragen.

Das hört sich richtig interessant an. Ich glaube, damit sollte ich mich mal beschäftigen. Allerdings, du schreibst von "Zugverband" ... wenn sich die Waggons abkoppeln, wie in meinem Fall, ist es dann noch ein Zugverband? Woher weiß das Programm, dass die stehengebliebenen Waggons zu der wegfahrenden Lok gehören?? Fragen über Fragen ...

Share this post


Link to post
Share on other sites
vor 2 Stunden schrieb Timba:

wenn sich die Waggons abkoppeln, wie in meinem Fall, ist es dann noch ein Zugverband?

Nein. Bzw. bilden sie jetzt einen neuen Zugverband. Im Extremfall einen, der nur aus einem Element besteht.

Aber dein ursprünglicher Zugverband hat nun weniger Elemente, weil Waggons fehlen. Vielleicht kannst du damit etwas anfangen?

Share this post


Link to post
Share on other sites
vor 9 Minuten schrieb Goetz:

Aber dein ursprünglicher Zugverband hat nun weniger Elemente, weil Waggons fehlen. Vielleicht kannst du damit etwas anfangen?

Jepp! Damit kann ich ne Menge anfangen. Ich muss ja nur den Zeitpunkt wissen, wo der Zug auseinandergerissen wird. Wenn ich das abfragen kann und direkt die ganze Anlage stoppe, dann sehe ich ja, an welcher Stelle das passiert ist und kann weitere Rückschlüsse zur Fehlereingrenzung ziehen. Wenn's mal wieder passiert. :D Im Moment läuft's ja.

Jetzt muss ich nur noch lernen, wie man mit LUA das abfragt. Aber der Rentnertag hat 24 h und da sollte Zeit zum Lernen zu finden sein. Außerdem, meine Ärztin hat gesagt, Kopp anstrengen wirkt Demenz entgegen. (y)

Da kommt mir ne Idee: Vielleicht sollte ich die Kosten für MBS bei der Krankenkasse einreichen. Ist ja irgendwie ne medizinische Aufwendung, sozusagen, etwa nicht? :D

Share this post


Link to post
Share on other sites
vor 1 Minute schrieb Timba:

Jetzt muss ich nur noch lernen, wie man mit LUA das abfragt.

Erstens heißt es bitte Lua - also nicht in Versalien. (Das mögen die Erfinder dieser Sprache nicht und es sieht auch unschön aus.)

Und zweitens bekommst du die Anzahl der Elemente einer durchnummerierten Tabelle "Test", indem du ein # davor schreibst.

Also 

Test = {"Eins", "Zwei", "Drei"}

Anzahl = #Test

 

Share this post


Link to post
Share on other sites

Danke dir. Probiere ich gleich mal aus. Und die Erfinder von Lua mögen mir die Verunstaltung ihrer Sprache nachsehen. Ich versuche das künftig zu vermeiden. ;)

Share this post


Link to post
Share on other sites

Wie bzw. wo finde ich denn den Namen des Zugverbunds? Im MBS spreche ich den Zug ja über den Namen der Lok an, aber das funktioniert im Lua-Script irgendwie nicht.

Share this post


Link to post
Share on other sites

Ich hatte das leider nur aus dem Gedächtnis geschrieben (was ich lieber nicht tun sollte).

Bei meinen Versuchen stelle ich jetzt fest, dass es den Auslöser "vehicles" so wohl nicht gibt. Gäbe es ihn, dann bräuchtest du keinen Namen.

Ich finde im Augenblick nur "layout:enumVehicles" als Funktion, die alle Fahrzeuge auf deiner Anlage auflistet. Das hilft dir aber nicht.

 

Share this post


Link to post
Share on other sites

lua01.jpg

also:
layout:getVehicleGroupLength(Fahrzeug) für die Länge. Oder die beiden anderen mal ausprobieren.
EASY hat mit den Befehlen gearbeitet. Notfalls da mal nachschauen (in Modul "Auswertung" nutzt er es)

Du kannst mit error("Da ist der Fehler!") einen Lua-Befehl reinbringen, der das Ereignisprotokoll an der Stelle direkt stoppt, z.B. wenn
ein erster gespeicherter Wert sich verändert hat.

Gruß
  Andy

Edited by Andy

Share this post


Link to post
Share on other sites

Hab's versucht, bekomme ich aber nicht hin. Aus Easys script werde ich auch nicht richtig schlau, da wenig kommentiert. Ist was für Experten, und Experte bin ich (noch) nicht. Mal lieber mit was Einfaches anfangen.

Share this post


Link to post
Share on other sites

Yeah ... hab's doch noch hinbekommen. getVehicleGroupLength gibt mir die Länge in m und passt sogar :D, wie ich nach Umrechnung mit Maßstab feststellen konnte. Supi! Danke!!

Share this post


Link to post
Share on other sites

Bisschen zu viel Euphorie gehabt, nachdem ich nun alle Züge habe anzeigen lassen und nachgerechnet habe, ist die Software reichlich daneben. Einem Zug hat sie mal eben 10 Meter dazugeschenkt. Ist aber egal, solange das Ding immer genau gleich "falsch" rechnet (und das tut es) ist es für meine Zwecke absolut ausreichend.

Share this post


Link to post
Share on other sites

Kann das was mit dem Anlagenmaßstab zu tun haben? Was hast Du da 1:1 in m?

Share this post


Link to post
Share on other sites

Nee, kann es nicht. Denn für die meisten Züge passt es ja komischerweise. Gemerkt habe ich es an diesen beiden Zügen:

2019-09-08_212206.thumb.jpg.fcf46b3f57f0c95c224c52ce158f502c.jpg

Der obere ist ganz klar länger. Gemäß dem Script habe ich für den oberen einen Wert von 148,11983 m erhalten und für den unteren 150,43650 m.

In der Anlage ist der obere Zug aber 1.692,61 mm und der untere 1.611,46 mm. Das ergibt im Maßstab 1:87 umgerechnet 147,257 m für den oberen und 140,197 für den unteren. Da wurden beim unteren also ca. 10 m zuaddiert, warum auch immer. Ist aber wie gesagt nicht tragisch, weil ja immer exakt derselbe "falsche" Wert kommt und so könnte ich z.B. bei dem unteren Zug als Kriterium "<150" eingeben um zu testen, ob nach alles dran ist. Ich will ja in dem Fall nicht rechnen ob der Zug irgendwo reinpasst, wie Easy das gemacht hat. Also alles gut. Aber trotzdem komisch, der falsche Wert.

Share this post


Link to post
Share on other sites

Ich gehe mal davon aus, dass das dann was mit den Bounding Boxes zu tun hat. Wenn Du Lust hast, zähle mal die Längen zusammen, die im Informationsfeld bei den Eigenschaften der Loks/Wagen steht. Wenn Du keine Lust hast, mache ich's irgendwann mal. Aber momentan quält mich der Blender etwas. Ich tue mich da noch enorm schwer.
Und es ist wirklich so, sowie ich den gestartet habe, werde ich schlagartig müde.

Share this post


Link to post
Share on other sites
vor 10 Minuten schrieb Andy:

Und es ist wirklich so, sowie ich den gestartet habe, werde ich schlagartig müde.

Blender als schlafmittel? Na besser als irgend was einzuwerfen.9_9

Wenn du mal eine nacht durch schlafen moechtest, lass den laptop an und blender laufen.....:D

Cheers

Tom

Edited by metallix

Share this post


Link to post
Share on other sites
vor 1 Stunde schrieb Andy:

Wenn Du Lust hast, zähle mal die Längen zusammen, die im Informationsfeld bei den Eigenschaften der Loks/Wagen steht.

Habe ich gemacht. Jeden Wagen einzeln angeklickt, Länge in Excel-Tabelle, und zum Schluss addieren lassen. Brachte 1.602,18 mm statt den vorher insgesamt ausgelesenen 1.611,46 mm. Das machte mich schon wieder stutzig. Als nächstes wollte ich dann die einzelnen Wagen durch das Lua-Script auslesen lassen, dazu musste ich den Zug zerpflücken, und ... kaum zu glauben ... zu den ersten beiden Waggons (die mit den Rohren) gesellte sich plötzlich ein weiterer, der vorher nicht da war. Zumindest nicht zu sehen war. Ich schwöre, meine Pfote war NICHT auf der Alt-Taste, ich habe NICHT kopiert, außerdem wären da sonst ja auch Rohre drauf gewesen. Stattdessen war es der Waggon in der Standardvariante, also leer. Hammer! Nachdem ich den überflüssigen Waggon an die vatikanische Reichsbahn verkauft habe, habe ich den gesamten Zug nochmal durch das Lua-Script auslesen lassen und nu passt es. 1602,18 mm entspr. (x87/1000) 139,39 m und das Lua-Script wirft ebenfalls 139,39 m aus. Supi! Aber wie kann das bloß sein, dass sich ein Waggon unter einem anderen "versteckt" und das Ganze den Zug bei der Fahrt nicht mal beeinträchtigt? Naja, egal, Hauptsache es funzt.

Share this post


Link to post
Share on other sites

Wagen verstecken... jo, geht schneller als man denkt ... manchmal. Nur bestimmt nicht, wenn man's will... Ist so'n Murphy-Effekt. Immerhin, es passt jetzt :)

Share this post


Link to post
Share on other sites
vor 6 Stunden schrieb Goetz:

Ich hatte das leider nur aus dem Gedächtnis geschrieben (was ich lieber nicht tun sollte).

Bei meinen Versuchen stelle ich jetzt fest, dass es den Auslöser "vehicles" so wohl nicht gibt. Gäbe es ihn, dann bräuchtest du keinen Namen.

Ich finde im Augenblick nur "layout:enumVehicles" als Funktion, die alle Fahrzeuge auf deiner Anlage auflistet. Das hilft dir aber nicht.

 

Es geht doch, Goetz. Hab's mit Fummeln und Ausprobieren selbst rausgefunden.

Erg=layout:getVehicleGroup($("LOK8"))
zahl=#Erg

zahl gibt die Anzahl Objekte im Zugverbund zurück.

 

Fängt an Spaß zu machen mit Lua. ;)

Share this post


Link to post
Share on other sites
vor 21 Stunden schrieb Timba:

Ich verzweifele gerade an dem Problem, dass Züge Waggons verlieren, einzelne oder auch mehrere

Hallo,

das ist nicht nur bei Dir so, die Beobachtung mache ich auch. Vor allem im Bereich der Weichen, wobei die Weichen korrekt geschaltet sind.

Allerdings ist das ein Phänomen, daß erst in V5 aufgetaucht ist.

 

Gruß,

Michael

 

Share this post


Link to post
Share on other sites
vor 2 Minuten schrieb m.weber:

Vor allem im Bereich der Weichen, wobei die Weichen korrekt geschaltet sind.

Genau der Überzeugung war ich ja auch. :D Bis zu dem Zeitpunkt als ich feststellte, dass es doch nicht so war. Damit will ich dir nix unterstellen, aber oft sieht man den Wald vor lauter Bäumen nicht. Der Schaltfehler kann auch mal in einem ganz anderen Ereignis liegen, hatte ich auch schon. Fehlersuche ist ein ganz mühseliges Geschäft.

Share this post


Link to post
Share on other sites

Hallo @m.weber Michael,

vorhin habe ich wieder ein Chaos durch zerrissene Züge vorgefunden, aber immerhin hat das Ding einige Stunden gelaufen vorher. Deswegen habe ich mir jetzt doch noch die Routine zur Abfrage geschrieben und prompt damit die erste Fehlerquelle gefunden, die ich gleich morgen ausmerzen werde.

Wenn du das für deine Anlage auch machen willst, hier ist das Script.

Erg = layout:getVehicleGroup($("LOK1"))
zahl = #Erg
if zahl < 6 then
  layout:enumVehicles(
    function (vehicle)
      vehicle.currentSpeed = 0
    end
  )
end

Diesen Abschnitt wiederholst du für jeden deiner Züge auf der Anlage. Dabei musst du mein LOK1 durch die jeweiligen Namen deiner Züge austauschen. Die < 6 hinter Zahl musst du entsprechend deines jeweiligen Zugverbunds ändern. Zahl steht für Anzahl Elemente des Zugs inkl. Lok. (Dampflok und Tender sind zwei(!!) Elemente.) Damit das Ganze regelmäßig abgefragt wird kannst du z.B. einen wiederholenden Timer von 1 sec einbauen, dessen Ablauf der Auslöser sein kann. Dann wird jede Sekunde geprüft, ob noch alle Waggons dran sind und falls nicht, wird sofort alles gestoppt. Dann kannst du in Ruhe gucken auf welcher Weiche der Zug getrennt wurde und den Fehler weitestgehend eingrenzen. Gutes Gelingen!

 

Share this post


Link to post
Share on other sites

@Timba

Hallo Timba,

 

Danke Dir für das Script. Ich es anwenden und hoffen, das Warum des Zerreissens zu finden. ich hatte meine Anlage mal übers Wochenende durchlaufen lassen incl. Rundenzähler bei 4-fache Geschwindigkeit. Bei knapp 9000 Durchläufen hat's dann gescheppert.

 

Gruß,

Michael

Share this post


Link to post
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
Sign in to follow this  

×