Mitglieder einer Mehrfachtraktion ermitteln Topic is solved

Post Reply
hdpano
Posts: 695
Joined: 16.10.2015, 10:48
Location: bei Stuttgart
Contact:

Mitglieder einer Mehrfachtraktion ermitteln

Post by hdpano » 27.06.2019, 16:09

Hallo,
ist es möglich die Mitglieder einer Mehrfachtraktion (consist oder linktrain) per XML-Script zu ermitteln, wenn man nur die Lok-ID der Hauptlok kennt?

Hintergrund:
Als ich einigen Vereinskollegen die Möglichkeiten gezeigt habe, waren sie gleich Feuer und Flamme.
Sie würden gerne einige Triebwagen über die Anlage schicken. An einem kleinen Bahnhof wartet der erste Triebwagen auf einen anderen (der evtl. eine andere Strecke gefahren ist). Dort werden die TW gekuppelt und fahren als Mehrfachtraktion (consist oder linktrain) gemeinsam weiter, bis sie wieder irgendwo getrennt werden und einzeln weiter fahren.
So könnte es mehrere TW geben, so dass unterschiedliche Pärchen gebildet werden können.
An einer anderen Ausstellung evtl auch ganz andere Typen.
In meiner Begeisterung meinte ich das müsste machbar sein.
Das zusammenfügen der Pärchen funktioniert auch (dank der hervorragenden Dokumentation von Herrman)
Aber mein Problem ist jetzt wie bekomme ich sie wieder auseinander.
Wenn ich mit consist zusammenfüge, kann ich sie recht einfach wieder trennen, aber ich bekomme keinerlei Info wer der zweite TW war.
Wenn ich mit linktrain zusammenfüge, brauche ich schon beim "unlink" wieder die train ID des abzuhängenden Zuges, aber ich habe sie ja nicht

Deshalb die Frage kann ich die irgendwie bekommen?

rjversluis
Site Admin
Posts: 42343
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Mitglieder einer Mehrfachtraktion ermitteln

Post by rjversluis » 27.06.2019, 16:21

Hi Hans-Dieter,

anscheinend muss die ganze anlage mit XMLScript gesteuert werden... -o

Der ID vom gekoppelte Zug wird temporär in dieses Liste mit auf genommen:
https://wiki.rocrail.net/doku.php?id=loc-consist-de
Mit ein Query kommt man an diese consist Attribute dran. Das ist ein CSV wo eventuell auch Slave Loks drin stehen können.

rjversluis
Site Admin
Posts: 42343
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Mitglieder einer Mehrfachtraktion ermitteln

Post by rjversluis » 27.06.2019, 16:24

beim koppeln könnte man sich diese ID speichern in eine Variable...

rjversluis
Site Admin
Posts: 42343
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Mitglieder einer Mehrfachtraktion ermitteln

Post by rjversluis » 27.06.2019, 16:36

Hi Hans-Dieter,

bei ein unlinktrain, ohne ID Angabe, könnte ich diese consist Liste iterieren, und der erste Zug abkoppeln.

hdpano
Posts: 695
Joined: 16.10.2015, 10:48
Location: bei Stuttgart
Contact:

Re: Mitglieder einer Mehrfachtraktion ermitteln

Post by hdpano » 27.06.2019, 16:42

Hallo Rob,
rjversluis wrote:
27.06.2019, 16:21
Hi Hans-Dieter,

anscheinend muss die ganze anlage mit XMLScript gesteuert werden... -o
Nein, manches wird auch noch mit Aktionen gesteuert. :wink:

Aber ganz so schlimm ist es auch nicht.
Ich möchte mich etwas in XML-Script einarbeiten, und womit geht das am besten: indem man sich konkrete Anwendungsaufgeben stellt, die auch für die Vereinsanlage einen Sinn machen.
Ein Script, das eine bestimmte Lok von einem Block in einen anderen bewegt, macht da halt nicht immer viel Sinn.

Und da bei uns halt nicht wie bei einer stationären Anlage ist (festes Layout mit immer den gleichen Zügen/Loks) versuche ich halt hier das ganze ein wenig auszureizen und zu verallgemeinern.
Nebenher versuche ich die Standardaufgeben unserer Fahrdienstleiter möglichst zu vereinfachen um die Hemmschwelle herabzusetzen.

Ich werde mir die Liste mal ansehen.

Das mit den Variablen habe ich auch schon gedacht, aber, da wir ja unter Umständen mehrere solcher Pärchen haben können müssen es auch wieder mehrere Variablen sein, die dann wieder ausgewählt werden müssen.
So weit ich weiß gibt es XML-Script ja keine Arrays :wink:
Das wäre für mich eigentlich nur die allerletzte Rückfallebene.

hdpano
Posts: 695
Joined: 16.10.2015, 10:48
Location: bei Stuttgart
Contact:

Re: Mitglieder einer Mehrfachtraktion ermitteln

Post by hdpano » 27.06.2019, 16:46

Hallo Rob,
rjversluis wrote:
27.06.2019, 16:36
Hi Hans-Dieter,

bei ein unlinktrain, ohne ID Angabe, könnte ich diese consist Liste iterieren, und der erste Zug abkoppeln.
wenn der abgekoppelte Zug hinterher schön allein in seinem Block steht um dann mit Fahrplan oder so weggeschickt werden kann und der Rest im anderen Block, dann wäre das genau das was ich suche.
Ich bin nicht scharf darauf das mit XML-Script zu machen.

rjversluis
Site Admin
Posts: 42343
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Mitglieder einer Mehrfachtraktion ermitteln

Post by rjversluis » 27.06.2019, 17:09

Hi Hans-Dieter,

ist keine große Aufwand, und es muss nicht der erste Zug-, sonder der letzte Zugkennung in diese Liste sein.

rjversluis
Site Admin
Posts: 42343
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Mitglieder einer Mehrfachtraktion ermitteln

Post by rjversluis » 27.06.2019, 18:10

Hallo Hans-Dieter,

ab 15594 kannst du unlinktrain mal ohne ID(train) testen.

Achtung: Wenn es gleiche Kennungen bei Loks und Züge gibt dann ist diese Lösung nichts für dich.

hermannk
Moderator
Posts: 1145
Joined: 06.07.2014, 12:32
Location: Kiel Germany

Re: Mitglieder einer Mehrfachtraktion ermitteln

Post by hermannk » 27.06.2019, 18:22

Moin Rob,
ich bin überzeugt, für Hans-Dieter muss nichts neu programmiert werden.
(Mist, meine Antwort kommt zu spät).

Moin Hans-Dieter,
du bist ja total euphorisch. Dadurch verlierst du die Aufgabenstellung und den Schwierigkeitsgrad total aus den Augen. Für alles, was du möchtest, hälst du eine Lösung in Händen. Wie das?
a) deine beiden Triebwagen nennen wir mal "Loks". Die willst du Koppel; also "consist".
b) im Wiki wird gezeigt: drei Blöcke sind nötig; je ein Block für je eine Lok; ein virtueller Block für das Ergebnis.
c) wenn es auf der Modulanlage ein Modul gibt, das solche drei Blöcke enthält und zwei Loks wurden in die beiden normalen Blöcke gefahren, dann kannst du einen Ausgang zu den drei Blöcken in den Plan eintragen, welches die beiden Loks koppelt und anschließend in den virtuellen Block platziert (so steht es im Wiki);
d) mit einem zusätzlichen Ausgang kannst du die Loks wieder trennen und aus dem virtuellen Block entfernen (das hatte ich dir in Form von "linklocosandtrains20190627.zip" geschickt; das hast du aber nicht runtergeladen; ???). Welche Loks da mitspielen, kann ein XML-Script berechnen. Fertig.
Also:
- stelle ein Modul zur Verfügung mit zwei normalen und einem virtuellen Block;
- stelle zwei Ausgänge (mit Beschriftung) zur Verfügung;
- hänge je eine Aktion an die Ausgänge, die je ein XML-Script aufrufen.
Deine Fahrdienstleiter sind happy.
Den Plan machst du - die Scripts auch - wenn du magst, helfe ich dir.
So, jetzt im Wiki nur das lesen, was für deine Aufgabenstellung interessant ist; den Plan aus dem Wiki laden (oder besser "linklocosandtrains20190627.zip") und das für dich interessante manuell durchspielen. Dann kommen die Antworten alleine und so manche Frage wird überflüssig. ... und das Forum ist auch noch da.
Gruß
Hermann

hdpano
Posts: 695
Joined: 16.10.2015, 10:48
Location: bei Stuttgart
Contact:

Re: Mitglieder einer Mehrfachtraktion ermitteln

Post by hdpano » 28.06.2019, 10:51

Hallo Herrmann,

vielen dank für deine ausführliche Stellungnahme.
hermannk wrote:
27.06.2019, 18:22
Moin Hans-Dieter,
du bist ja total euphorisch. Dadurch verlierst du die Aufgabenstellung und den Schwierigkeitsgrad total aus den Augen. Für alles, was du möchtest, hälst du eine Lösung in Händen. Wie das?
a) deine beiden Triebwagen nennen wir mal "Loks". Die willst du Koppel; also "consist".
b) im Wiki wird gezeigt: drei Blöcke sind nötig; je ein Block für je eine Lok; ein virtueller Block für das Ergebnis.
c) wenn es auf der Modulanlage ein Modul gibt, das solche drei Blöcke enthält und zwei Loks wurden in die beiden normalen Blöcke gefahren, dann kannst du einen Ausgang zu den drei Blöcken in den Plan eintragen, welches die beiden Loks koppelt und anschließend in den virtuellen Block platziert (so steht es im Wiki);
d) mit einem zusätzlichen Ausgang kannst du die Loks wieder trennen und aus dem virtuellen Block entfernen (das hatte ich dir in Form von "linklocosandtrains20190627.zip" geschickt; das hast du aber nicht runtergeladen; ???). Welche Loks da mitspielen, kann ein XML-Script berechnen. Fertig.
Dein Beispiel im Wiki habe ich heruntergeladen und ausführlich ausprobiert.
Ich habe daraus sehr viel gelernt. Sowohl in diesem Thema als auch über XML-Scripte im alltemeinen.
Dadurch ist mir bei dieser Thematik viele klarer geworden, so dass ich jetzt auch einigermassen den Unterschied zwischen "consist" und "linktrain" erkannt habe.

Ich bin dann darangegangen in einem bestehenden Bahnhofsmodul das Kuppeln von Fahrzeugen (mit beiden Methoden) einzubauen und an unsere Verhältnisse anzupassen.
Der Teil mit dem Kuppeln hat dann auch sehr schnell (auch dank deiner sehr guten Anleitung) funktioniert, zumindest mal virtuell. Also Punkt a) bis c) gelöst.

Dann kan der Teil des Entkuppelns.
Hier waren mir deine Beispiele leider nicht allgemein genug:
Biem Thema "consist" setzt du einfach den abgekoppelten Zug in den Block, weil du ja beim Erstellen des Scrips diesen kennst. Bei uns auf der Modulanlage kenne ich beim Erstellen von Scrips leider nicht welche und wie viele Fahrzeuge meine Kollegen hierfür mitbringen werden. Deshalb suchte ich nach einer
Beim Thema "linktrain" ist es noch problematischer. Hier muss ich dem System eine Info als "Parameter" geben, die ich im allgemeinen Fall hier nicht kannte aber das System sie eigentlich ja schon weiß.
Auch erschliesst mir bisher nicht warum hier der Parameter überhaupt notwendig ist. Den voreren Teil einer n-fach-Traktion kann ich so nicht abhängen, ich kann ja keinen Zug von sich selbst abhängen. Also ist eigentlich nur der hinterste Teil sinnvoll, denn einen Teil aus der Mitte herauspicken macht in meinen Augen wenig Sinn.

Ja ich habe "linklocosandtrains20190627.zip" nicht heruntergeladen. Da ich zu diesem Zeitpunkt schon die Kopplung der beiden Loks/Züge (sowohl mit "consist" als auch mit "linktrain") in einem Bahnhof virtuell funktionierend drin hatte und es mir ja nur noch darum ging wo bekomme ich die ID der zweiten Lok her. Und ich aus den im Post geschriebenen Details erkennen konnte, dass du die Loks direkt (aus dem Gedächtnis) in den Block setzt, was für mich keine optimale Lösung war.
hermannk wrote:
27.06.2019, 18:22
ich bin überzeugt, für Hans-Dieter muss nichts neu programmiert werden.
Ob hier eine Programmierarbeit von Rob nötig war muss er entscheiden. Ich denke mit dem Hinweis auf die consist-Liste hätte ich es auch mit XML-Script herausgebracht. Die Liste enthält so wie ich in einem kurzen Test gesehen habe die notwendigen Informationen. Ich habe nur nicht gewusst wo suchen.
Ich werde mich jetzt mal dransetzen das ganze einmal weiter zu machen

hdpano
Posts: 695
Joined: 16.10.2015, 10:48
Location: bei Stuttgart
Contact:

Re: Mitglieder einer Mehrfachtraktion ermitteln

Post by hdpano » 28.06.2019, 11:05

Hallo Rob,
rjversluis wrote:
27.06.2019, 18:10
Hallo Hans-Dieter,

ab 15594 kannst du unlinktrain mal ohne ID(train) testen.

Achtung: Wenn es gleiche Kennungen bei Loks und Züge gibt dann ist diese Lösung nichts für dich.
vielen Dank ein erster Test sieht super aus. :beer:

:rr_for_ever:

hermannk
Moderator
Posts: 1145
Joined: 06.07.2014, 12:32
Location: Kiel Germany

Re: Mitglieder einer Mehrfachtraktion ermitteln

Post by hermannk » 28.06.2019, 14:47

Moin Hans-Dieter,
für mich habe ich die Aufgabe schon mal gelöst, zwei Loks in zwei Blöcken zu koppeln.
Will man allerdings alle Möglichkeiten und insbesondere alle Un-Möglichkeiten abfangen, wird das Script ganz schön lang.
Gruß
Hermann

Post Reply

Return to “XMLScripting & Aktionen (DE)”