userpages:hermannk:shunting_freight-de
Differences
This shows you the differences between two versions of the page.
Next revision | |||
— | userpages:hermannk:shunting_freight-de [2022/05/08 16:55] – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Rangieren mit Güterwagen ====== | ||
+ | [[: | ||
+ | | hier geht es direkt zum [[: | ||
+ | |||
+ | **Vorwort 1:** \\ | ||
+ | Damit wurde diese Dokumentation erstellt: Stand 03.03.2022 \\ | ||
+ | ^ Bereich | ||
+ | | Steuerung | ||
+ | | Computer | ||
+ | |||
+ | |||
+ | **Vorwort 2:** \\ | ||
+ | - die Nutzung dieser Lösung erfolgt auf eigenes Risiko; \\ | ||
+ | - regelmäßige Datensicherungen des Rocrail-Arbeitsbereichs werden empfohlen; \\ | ||
+ | |||
+ | ===== Aufgabenstellung ===== | ||
+ | Ein Rocrail-Zug soll neu zusammenstellt werden. \\ | ||
+ | {{: | ||
+ | |||
+ | ===== Lösung-Details ===== | ||
+ | Eine Strecken-Lok " | ||
+ | ==== Übersicht ==== | ||
+ | a) In diesem Beispiel besteht der Rocrail-Zug aus vier Wagons und es sind vier Abstellgleise zum Rangieren vorhanden. Diese Beispiel kann auf neun Abstellgleise erweitert werden. Mehr geht (normal) nicht. \\ | ||
+ | b) In dieser ersten Version der Lösung ist keine Modellbahn-Hardware vorhanden; alles wird simuliert. \\ | ||
+ | c) der Ablauf: \\ | ||
+ | c0) Ein Rocrail-Zug mit vier Wagons wurde bereits von der Strecke in dem Rangier-Bereich bereitgestellt. \\ | ||
+ | c1) Die Rangier-Lok schiebt den Rocrail-Zug in ein Abstellgleis, | ||
+ | - das wiederholt sich, bis alle Wagons auf die Abstellgleise verteilt sind; \\ | ||
+ | c2) dann sammelt die Rangier-Lok die Wagons in der neuen gewünschten Reihenfolge wieder ein; die Wagons werden durch die je Abstellgleis vorhandenen Ausgänge manuell an die Rangier-Lok mit dem immer länger werden Rocrail-Zug angekoppelt. \\ | ||
+ | c3) die Rangier-Lok lässt die Wagons stehen und zieht sich auf ihr Park-Gleis zurück; der Rocrail-Zug kann nun abgeholt werden. \\ | ||
+ | c4) Eine Strecken-Lok holt den Rocrail-Zug ab und fährt auf die Strecke. \\ | ||
+ | ==== die Objekte ==== | ||
+ | a) die Lokomotive (Objekt " | ||
+ | Die Lok hat die Kennung " | ||
+ | b) die Wagons (Objekt " | ||
+ | Die Wagons haben die Kennungen " | ||
+ | c) der Rocrail-Zug (Objekt " | ||
+ | Der zu zerlegende Rocrail-Zug hat die Kennung " | ||
+ | Die Liste der dazu gehörenden Wagons findet man unter dem Attribut " | ||
+ | Die Liste ist zu lesen von links nach rechts; das erste Element ist hinter der Lok angeordnet und das letzte Element stellt den letzten Wagon im Rocrail-Zug dar. \\ | ||
+ | In dem Rocrail-Plan ist der erste Wagon rechts im Rocrail-Zug und der Letzte Wagon links im Rocrail-Zug. \\ | ||
+ | Jedem Abstellgleis ist je ein Rocrail-Zug zugeordnet: “opr_bkr01”, | ||
+ | |||
+ | ==== die Operationen ==== | ||
+ | Diese Beschreibung setzt voraus, dass der Rocrail-Zug in dem Block " | ||
+ | a) einen Rocrail-Zug an die Rangier-Lok kuppeln \\ | ||
+ | " | ||
+ | - siehe dazu "Loks und Züge koppeln" | ||
+ | b) einen Wagon vom Rocrail-Zug abkuppeln \\ | ||
+ | Der Befehl " | ||
+ | Wir benötigen hier den Fall, dass jedes Mal genau der eine letzte Wagon entfernt werden soll. \\ | ||
+ | <code xml> | ||
+ | < | ||
+ | </ | ||
+ | c) einen Wagon an den Rocrail-Zug ankuppeln \\ | ||
+ | Der Befehl “**addcar**” fügt Wagons an den Rocrail-Zug hinzu; die anzufügenden Wagons werden im Parameter “carids” festgelegt. \\ | ||
+ | <code xml> | ||
+ | < | ||
+ | </ | ||
+ | d) einen Rocrail-Zug von der Rangier-Lok abkuppeln \\ | ||
+ | " | ||
+ | - siehe dazu "Loks und Züge koppeln" | ||
+ | |||
+ | ==== einen Wagon abstellen ==== | ||
+ | | {{: | ||
+ | <code xml> | ||
+ | " | ||
+ | " | ||
+ | </ | ||
+ | Die Gleisnummer " | ||
+ | <code xml> | ||
+ | <!-- %callerid% = cor_abkuppeln_X --> | ||
+ | <vr id=" | ||
+ | </ | ||
+ | Der Rocrail-Zug für ein Abstellgleis hat die Kennung " | ||
+ | <code xml> | ||
+ | <vr id=" | ||
+ | <vr id=" | ||
+ | </ | ||
+ | ==== den letzten Wagon ermitteln ==== | ||
+ | Um den letzten (hier den vierten) Wagon in dem Rocrail-Zug zu ermitteln, kann die " | ||
+ | <code xml> | ||
+ | <query vr=" | ||
+ | ... | ||
+ | <vr id=" | ||
+ | </ | ||
+ | Die Suche nach dem letzten Wagon beginnt mit dem höchsten Index und endet, sobald ein Wagon gefunden wurde: \\ | ||
+ | <code xml> | ||
+ | <vr id=" | ||
+ | <vr id=" | ||
+ | <while condition=" | ||
+ | <switch var="# | ||
+ | <case val=" | ||
+ | < | ||
+ | </ | ||
+ | ... | ||
+ | <case val=" | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | <vr id=" | ||
+ | </ | ||
+ | </ | ||
+ | ==== den letzten Wagon abkuppel ==== | ||
+ | Falls ein Wagon gefunden wurde, wird er vom zu zerlegenden Rocrail-Zug abgekoppelt und an den Rocrail-Zug im Abstellgleis angekoppelt: | ||
+ | <code xml> | ||
+ | <if condition=" | ||
+ | < | ||
+ | <!-- es gibt einen Wagon; dann von " | ||
+ | < | ||
+ | <!-- an " | ||
+ | < | ||
+ | </ | ||
+ | </if> | ||
+ | </ | ||
+ | **Achtung: | ||
+ | ==== die abgestellten Wagons einsammeln ==== | ||
+ | | {{: | ||
+ | <code xml> | ||
+ | <while condition="# | ||
+ | <switch var="# | ||
+ | ... | ||
+ | </ | ||
+ | <if condition=" | ||
+ | < | ||
+ | <!-- es gibt einen Wagon; dann vom " | ||
+ | < | ||
+ | <!-- an " | ||
+ | < | ||
+ | </ | ||
+ | </if> | ||
+ | <vr id=" | ||
+ | </ | ||
+ | </ | ||
+ | ==== fertig ==== | ||
+ | Der neu zusammengestellte Rocrail-Zug " | ||
+ | Die Rangierlok kann abkuppeln und der Rocrail-Zug kann abgeholt werden. Beides bleibt in diesem Beispiel offen. | ||
+ | \\ | ||
+ | ==== Wagons anzeigen ==== | ||
+ | Für die Anzeige der Wagons werden je Block vier Wagons berücksichtigt. \\ | ||
+ | | {{: | ||
+ | |||
+ | | {{: | ||
+ | |||
+ | Das XML-Script zum Anzeigen der Wagons ist als Unterprogramm (" | ||
+ | <code xml> | ||
+ | <vr id=" | ||
+ | <vr id=" | ||
+ | <sub file=" | ||
+ | </ | ||
+ | Das Unterprogramm " | ||
+ | - " | ||
+ | - " | ||
+ | <code xml> | ||
+ | < | ||
+ | <!-- parameter: vr_RANGIEREN_txbasis, | ||
+ | ... | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | In einer Programm-Schleife (" | ||
+ | |||
+ | <code xml> | ||
+ | <vr id=" | ||
+ | <vr id=" | ||
+ | <vr id=" | ||
+ | <while condition="# | ||
+ | <switch var="# | ||
+ | <case val=" | ||
+ | < | ||
+ | </ | ||
+ | ... | ||
+ | <case val=" | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | <vr id=" | ||
+ | |||
+ | <if condition=" | ||
+ | < | ||
+ | <!-- es gibt einen Wagon; dann anzeigen --> | ||
+ | <query vr=" | ||
+ | <tx id=" | ||
+ | </ | ||
+ | < | ||
+ | <tx id=" | ||
+ | </ | ||
+ | </if> | ||
+ | <vr id=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Dieses Unterprogramm wird nach jedem Abkuppeln und nach jedem Ankuppeln für jeden Rangier-Block aufgerufen: \\ | ||
+ | <code xml> | ||
+ | <vr id=" | ||
+ | <vr id=" | ||
+ | <sub file=" | ||
+ | |||
+ | <vr id=" | ||
+ | <vr id=" | ||
+ | <sub file=" | ||
+ | |||
+ | <vr id=" | ||
+ | <vr id=" | ||
+ | <sub file=" | ||
+ | |||
+ | <vr id=" | ||
+ | <vr id=" | ||
+ | <sub file=" | ||
+ | |||
+ | <vr id=" | ||
+ | <vr id=" | ||
+ | <sub file=" | ||
+ | </ | ||
+ | |||
+ | ===== Rocrail-Arbeitsbereich ===== | ||
+ | Alle Kennungen wurden so gewählt, dass sie entweder keine Kollision mit Kennungen im eigenen Plan verursachen oder so umbenannt werden können, dass sie anschließend keine Kollision mit Kennungen im eigenen Plan verursachen. \\ | ||
+ | Im Präfix der Kennungen ist ein zusätzliches " | ||
+ | ^ Präfix ^ Beispiel ^ für ^ | ||
+ | | acr_ | acr_wagonabkuppeln | Aktions-Definitionen | | ||
+ | | acr_ | acr_wagonabkuppeln.xml | XML-Scripte | | ||
+ | | bkr | bkr01 | Blöcke | | ||
+ | | fbr | fbr01+ | Rückmelder passend zur Blocknummer und +/- als Block-Seite | | ||
+ | | swr | swr01 | Weichen | | ||
+ | | cor_ | cor_abkuppeln_1 | Ausgänge | | ||
+ | | txr_ | txr_bkr11_1 | Textfelder | | ||
+ | | tkr | tkr01 | Gleise | | ||
+ | | lcr | lcr01 | Lokomotiven | | ||
+ | | carr | carr01 | Wagons | | ||
+ | | opr_ | opr_bkr01 | Rocrail-Züge | | ||
+ | | vr_RANGIEREN_ | vr_RANGIEREN_idx | Variablen | | ||
+ | |||
+ | In dem Download-Arbeitsbereich "{{ : | ||
+ | ^ Datei ^ Bedeutung ^ | ||
+ | | plan.xml | die Rocrail-Plan-Datei | | ||
+ | | acr_wagonabkuppeln.xml | XML-Script zum Abkuppeln von einzelnen Wagons von einem Rocrail-Zug | | ||
+ | | acr_wagonsankuppeln.xml | XML-Script zum Ankuppeln von allen Wagons aus einem Block an einen Rocrail-Zug | | ||
+ | | acr_zuganzeigen.xml | XML-Script zum Anzeigen der Wagon-Bilder von einem Rocrail-Zug | | ||
+ | | acr_zuganzeigelöschen.xml | XML-Script zum Löschen der Wagon-Bilder von einem Rocrail-Zug | | ||
+ | | acr_bkr11.xml | XML-Script zur Handhabung von einem Rocrail-Zug und einer Lok in dem Block " | ||
+ | | acr_init.xml | XML-Script zur Initialisierung | | ||
+ | | für_images | ein Ordner mit Wagon-Bildern für dieses Beispiel | | ||
+ | Das ist jetzt die Version vom 10.03.2022, in der bei fast allen XML-Scripts die Schreibweise von " | ||
+ | ... und auf dieser Seite habe ich es jetzt auch korrigiert (Danke an Stephan (stefo)). \\ | ||
+ | |||
+ | zurück zu den [[: | ||
+ | |||
+ | ===== Links zum Thema Rangieren ===== | ||
+ | Im Rocrail-Wiki und im Rocrail-Forum gibt es bereits viele Beispiele für die Realisierung von Rangier-Aufgaben mit Rocrail; hier ist eine kleine Auswahl: \\ | ||
+ | - XmlScript Rangierbeispiel \\ | ||
+ | -- https:// | ||
+ | - Erweitertes Rangierbeispiel \\ | ||
+ | -- https:// | ||
+ | - Manuell Rangieren im Automatik-Betrieb \\ | ||
+ | -- https:// | ||
+ | - Loks und Züge koppeln \\ | ||
+ | -- https:// | ||
+ | - Frachtschein: | ||
+ | -- https:// | ||
+ | \\ | ||
+ | zurück zu den [[: | ||
userpages/hermannk/shunting_freight-de.txt · Last modified: 2025/04/01 21:19 by hermannk