Alles Zurücksetzten oder Idle als Aktion

Alles Zurücksetzten oder Idle als Aktion

Postby Kane » 19.02.2018, 20:06

Gibt es die Möglichkeit die Funktionalität "Alles zurücksetzten" das ich über das Rechtsklick Kontextmenü einer Lok anregen kann, via Aktion zu triggern? Alternative die Lok vom Automatikmodus in Idle zu setzen? Ich bin bis jetzt leider noch nicht fündig geworden.
Kane
 

Re: Alles Zurücksetzten oder Idle als Aktion

Postby peter&basti » 19.02.2018, 20:44

Hallo Kane,

die unterschiedlichen Reset's sind im Wrapper im lc-Node (loco) zwar drin, aber nicht ausführbar. Auch nicht in einem Script.

Wozu brauchst Du das?
Liebe Grüße / best regards
Peter


System: DCC 2-Leiter H0, Rocrail 64bit auf Win10 Pro 64
Traktion: OpenDCC GBM
Fahrweg: RocNetNode & GCA PI01/2/3, GCA41/Arduino RFID, GCA145 Drehscheibe, etc.
Decoder: 99% Zimo
Experimentell: MQTT & Node-Red
peter&basti
 

Re: Alles Zurücksetzten oder Idle als Aktion

Postby Kane » 19.02.2018, 22:49

Hey,

da du meinen anderen Beitrag ja kennst möchte ich es kurz machen. Ich habe jetzt mittels Aktionen in meinem Start Block die Lok auf die Reise geschickt. Sie arbeitet sich durch den Bahnhof durch und kommt schließlich im Endblock an. Da keine weiteren Fahrstraßen in Fahrtrichtung existieren bleibt die Lok dann im letzen Block stehen. Der Block wird mittels Aktion bei gehen des Rückmelders frei gemacht, sodass die nächste Lok folgen kann. In der Lokansicht steht die Lok natürlich noch auf Auto und hat auch noch den letzten Ausgangsblock als Standort eingetragen. Siehe Bild.

Ich bin mir nun nicht im klaren wie dann die Reaktion ist wenn ich BiDiB Melder angeschlossen habe. Die Lok würde ja dann in einem anderen Block ankommen. Wird die bisherige Blockinformation und Fahrtrichtung überschrieben? Wenn Sie dann dort ankommt wird Sie ja wieder über schedule_manual auf die Reise geschickt. Gibt es dann einen Konflikt mit dem noch bestehenden Automodus?

Deshalb wollte ich die Lock einfach am Endblock komplett zurücksetzten damit sie sozusagen jungfräulich ist. Ich habe den GBM16Master noch nicht hier und kann das verhalten daher nicht selbst ausprobieren. Ich hoffe du konntest meiner Beschreibung folgen. Ich danke Dir jedenfalls schon mal für den Feedback
You do not have the required permissions to view the files attached to this post.
Kane
 

Re: Alles Zurücksetzten oder Idle als Aktion

Postby peter&basti » 19.02.2018, 23:30

Hallo Kane,

Wenn Du dieses kleine Script per Aktion z.B. am IN Melder des Zielblocks einhängst, dann geht die Lok auf IDLE.

Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<xmlscript>
<trace text="Script Loco Reset"/>
<lc id="%lcid%" cmd="regularreset"/>
</xmlscript>


(ich habe es gerade getestet, es funzt)
Liebe Grüße / best regards
Peter


System: DCC 2-Leiter H0, Rocrail 64bit auf Win10 Pro 64
Traktion: OpenDCC GBM
Fahrweg: RocNetNode & GCA PI01/2/3, GCA41/Arduino RFID, GCA145 Drehscheibe, etc.
Decoder: 99% Zimo
Experimentell: MQTT & Node-Red
peter&basti
 

Re: Alles Zurücksetzten oder Idle als Aktion

Postby Kane » 20.02.2018, 21:15

Super funktioniert wie beschrieben. Nur setzt Idle leider auch V=0.

Mein Ziel war eigentlich mit Idle dass, der Automodus zurückgestzt wird ohne jedoch Einfluss auf die Fahrgeschwindigkeit zu nehmen. Ich missbrauche ja den Automatikmodus um eine Automatische Zugverteilung in meinen Bahnhof zu realisieren, was ja auch wunderbar klappt! Mit Aktionen wäre das ein erheblicher Aufwand. Jetzt würde das ja dazu führen das meine Lokführer ihre Züge aus dem Bahnhof fahren wollen und dann bleibt Ihnen der Zug in der Ausfahrt stehen. Da der Bahnhof über eine extra Zentrale und nicht über die Fahrzentrale geteuert wird könnte ich natürlich zwischen beiden einfach keine Verbindung herstellen, aber dann würde mir natürlich die Möglichkeit verloren gehen Züge Langsam vor Signalen anzuhalten.

Gibt es eine Möglichkeit die Lok aus dem Automodus in Idle zu schicken ohne in die Fahrstufe einzugreifen?

Ich möchte peter&basti nochmal für die bereits erhalte Hilfe danken.
Gruß Kane
Kane
 

Re: Alles Zurücksetzten oder Idle als Aktion

Postby peter&basti » 20.02.2018, 21:42

Hallo Kane,

Gibt es eine Möglichkeit die Lok aus dem Automodus in Idle zu schicken ohne in die Fahrstufe einzugreifen?


Idle ist Idle, da steht die Lok. Und reset ist reset.

Ein Versuch wäre noch die Lok in den manuellen Modus zu versetzen. Ob das ohne Nebenwirkungen auf die Fahrstufe funzt weiß ich nicht.

Code: Select all
setmanualmode   const string   Keep loco in half-automatic mode.   -   setmanualmode


Statt "regularreset" einfach mal "setmanualmode" versuchen.

Ich habe das virtuell kurz angetestet, es scheint zu funktionieren. Aber real kann ich das nicht sehen.

Übrigens kannst Du mich ruhig Peter nennen, Basti ist mittlerweile 17 Jahre alt und beschäftigt sich derzeit vorwiegend mit Mädels und Online-Games ... aber das mit der MoBa wird schon wieder kommen, war bei mir genauso (ohne Online-Games, damals war der PC noch gar nicht erfunden ... gottseidank gab es schon Mädels :wink: )
Liebe Grüße / best regards
Peter


System: DCC 2-Leiter H0, Rocrail 64bit auf Win10 Pro 64
Traktion: OpenDCC GBM
Fahrweg: RocNetNode & GCA PI01/2/3, GCA41/Arduino RFID, GCA145 Drehscheibe, etc.
Decoder: 99% Zimo
Experimentell: MQTT & Node-Red
peter&basti
 

Re: Alles Zurücksetzten oder Idle als Aktion

Postby StefanF. » 20.02.2018, 22:10

Hallo Kane,
schau doch mal nach velocity. Vielleicht kannst Du darüber nachsteuern, im idle-Modus.
Beste Grüße
Stefan
=========================
Zentrale: OpenDCC Z1 und 2 Booster: OpenDCC - Booster2
Loconet MGV85, 50, 93,76,77,136
Rechner: Kubuntu14.04 auf 2*Core i3 (3Monitore) 6GBRAM
=========================
StefanF.
 

Re: Alles Zurücksetzten oder Idle als Aktion

Postby Kane » 20.02.2018, 22:23

Also gerade ausprobiert mit "setmanualmode" wird die Lok auch von Rocrail übernommen und auf Fahrstufe null gesetzt
Kane
 

Re: Alles Zurücksetzten oder Idle als Aktion

Postby Kane » 20.02.2018, 22:28

Bevor ich aber och weiteren Problem nachjage die vlt keine sind muss ich lesbst mit BiDiB und Railcom rum experimentieren um raus zu finden was Rocrail macht. Am Ende ist es gar kein Problem wenn die Lok auf Halbautomatik bleibt?!? Wenn sie sich über BiDiB wieder in einem anderen Eingangsblock anmeldet und sich dann wieder wie gewollt eine Route sucht ist doch alles in Ordnung. Bis dahin kann das Thema hier jedenfalls pausieren.
Kane
 

Re: Alles Zurücksetzten oder Idle als Aktion

Postby peter&basti » 20.02.2018, 23:53

Hallo Kane,

Also gerade ausprobiert mit "setmanualmode" wird die Lok auch von Rocrail übernommen und auf Fahrstufe null gesetzt


Ich denke, Du bewegst Dich mit Deinem Ansinnen abseits kontrollierter und sicherer Abläufe.

Einer Lok per Script oder Aktion einen Status wegzunehmen und dann zu erwarten dass diese quasi nach künstlichem Abkoppeln der Kontrolle von Rocrail mit der aktuellen Geschwindigkeit weiterfährt, widerspricht eigentlich allen Regeln und Vorkehrungen zu einem stabilen und abgesicherten Betrieb.

Vielleicht hat Rob auch noch eine Meinung dazu.

Ansonsten würde ich noch versuchen, bei dem Reset zu bleiben und ggf. im Script nach einer Pause (sleep time) einen go befehl abzusetzen.

Was ich noch zu bedenken gebe:

Irgendwie muss ja die Lok von der Fernsteuerung auf einen manuellen Bediener übergeben werden, idealerweise auch mit einer Quittung. Sonst schickt die Automatik Loks auf die Reise wenn gar kein Bediener im Raum ist und dann .... Crash?
Liebe Grüße / best regards
Peter


System: DCC 2-Leiter H0, Rocrail 64bit auf Win10 Pro 64
Traktion: OpenDCC GBM
Fahrweg: RocNetNode & GCA PI01/2/3, GCA41/Arduino RFID, GCA145 Drehscheibe, etc.
Decoder: 99% Zimo
Experimentell: MQTT & Node-Red
peter&basti
 

Re: Alles Zurücksetzten oder Idle als Aktion

Postby rjversluis » 21.02.2018, 07:26

Moin,

direkte manipulation von der Automat mittels Aktionen wird nicht unterstützt.
Es gibt da Benutzer Beispiel von Kopplungswalzer usw. Welche man da eventuell verwerten kann.
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBus - CAN-GCA ] - [ 0: RocNetNode - GCA-Pi ]
rjversluis
Site Admin
 

Re: Alles Zurücksetzten oder Idle als Aktion

Postby Kane » 21.02.2018, 20:00

Hallo Peter, Hallo Rob,

@Peter da selbstverständlich mein Ansinnen mit den ganzen Fragen für dich nicht klar sein kann habe ich jetzt mal einen doch recht ausführlichen [url=http://forum.rocrail.net/viewtopic.php?f=76&t=15479]Post[/url] über mein Projekt geschrieben. Die Loks werden nur über die Halbautomatik durch den Bahnhof geführt, es sollte also keine Lok unkontrolliert losfahren. Nichts desto trotz war mein Ansinnen, bei Erfassung des Zustandes "Lok hat das Modul wieder verlassen" die Lok wieder aus dem Halbautomatikmodus raus zu nehmen um Konflikte zu vermeiden.

Aber bevor Ihr mit mir weiter Lösungen sucht macht es von meiner Seite wirklich Sinn mit der Realen BiDiB-Hardware rum zu experimentieren. Vlt ist das eine oder andere Problem gar keins. Ich werde aber meine Erkenntnisse natürlich hier einfließen lassen um diese allen zugänglich zu machen. Ich denke gerade für Modulanlagen die im Handbetrieb gefahren werden gibt Rocrial gute Möglichkeiten der Blocksteuerung bzw. wenn gewünscht einen automatischen Fahrdienstleiter. Wer mit einer Modellbahn schon mal auf einer Messe war weis wie anstrengen 8h spielen sein kann :D
Kane
 

Re: Alles Zurücksetzten oder Idle als Aktion

Postby Kane » 14.03.2018, 18:38

Hallo Leute,

Meine BiDiB Hardware ist eingetroffen und ich habe mir einen kleinen Testkreis gebaut um das Zusammenspielt von GBM16T und Rocrail unter scharfen Bedingungen zu testen.

Testkreis.jpg


Zur Abbildung der späteren Anlagensituation habe ich meinen Kreis an einer Seite aufgetrennt und als Gerade dargestellt. Aber wie auf unserer Modulanlage kommt jede Lok letztendlich wieder wie bei einem Kreis zurück zum Anfang, nur dass der Größte Teil des Kreises (die anderen Module der Kollegen) nicht überwacht wird.
Testkreis2.JPG

Testkreis.xml


Durch den BiDiB-Sensor wird jede, auch eine zuvor unbekannte Lok im Einfahblock erkannt und die Blockbelegung korrekt gesetzt. Durch eine Aktion wird im Einfahrblock die Lok in den Halbautomatischen Modus versetzt, sodass sich Rocrail um die Planung der Fahrstraße und Signale kümmert. (In Meinem Testbeispiel gibt es natürlich nur einen Weg). Mein Problem ist nun nach wie vor der Ausfahrblock. Erreicht die Lok diesen Block gibt es keine Möglichen Fahrstraßen mehr (Die Fahrtrichtung geht immer nur nach rechts; Die Fahrstraße zum Zusatzblock kann vernachlässigt werden!). Rocrail reagiert wie sonst für den Automatik/Halbautomatikmodus auch völlig richtig damit, die Lok anzuhalten und zu Plotten das keine Fahrstraße vorhanden ist. Seit dem letzten Update kann ich denn Ausfahrblock auch nicht mehr einfach freimelden, da die Lok im Ausfahrblock ja noch darauf steht ("tried to unlock block Ausfahrt but BR101 ROT owns it!"). Zuvor konnte ich die Lok id aus dem Block noch löschen was aber dann dazu führte, dass bei der Wiedereinfahrt in den Einfahrblock die Lok nur als Ghost Lok bzw Acceptet erkannt wird.
Accepting.JPG


Die Blockinformation der Lok darf ich solange nicht überschreiben (<lc blockid="" cmd="block" id=""/>) wie die Lok im Automodus ist.

Mein Dilemma ist nach wie vor, dass ich bis jetzt keine Möglichkeit gefunden habe, die Lok ohne dass sie im Ausfahrblock hält auf die restliche Anlage zu entlassen und den Ausfahrblock frei zu melden sodass die nächste Lok ausfahren kann. Ich weiß dass meine Frage nicht die klassische Anforderung von Rocrail trifft, ABER ich möchte gern die Funktionen nutzen die Rocrail bietet Zuglänge, Zugart <-> Bahnsteig, Signalsteuerung..... Es muss doch eine Möglichkeit geben wie ich über ein Script die Lok bei Verlassen des Ausfahrblocks aus den Fängen von Rocrail befreien kann und gleichzeitig gewährleiste dass Rocrail bei der Wiedereinfahrt in den Einfahrblock die Lok wie bei der Ersteinfahr korrekt Erkennt/Akzeptiert.

Ich hoffe meine Ausführungen waren verständlich und ich danke euch schon für eure Hilfe.
Gruß Kane
You do not have the required permissions to view the files attached to this post.
Kane
 

Re: Alles Zurücksetzten oder Idle als Aktion

Postby Besra » 14.03.2018, 19:24

Hallo Kane,

gesetzt den Fall ich habe einigermaßen verstanden, worum es Dir geht (BiDiB verwende ich nicht)...

Die Blockinformation der Lok darf ich solange nicht überschreiben (<lc blockid="" cmd="block" id=""/>) wie die Lok im Automodus ist.

Mein Dilemma ist nach wie vor, dass ich bis jetzt keine Möglichkeit gefunden habe, die Lok ohne dass sie im Ausfahrblock hält auf die restliche Anlage zu entlassen und den Ausfahrblock frei zu melden sodass die nächste Lok ausfahren kann.

Ich denke mal, dass sich das nicht ändern lässt. Aber: Es müsste doch möglich sein, der Lok ein Stopp-Kommando ("Entlassen aus der Automatik") zu geben und nach dem IN sofort eine neue Geschwindigkeit zu setzten. Im Idealfall sieht man das nicht oder kaum oder man muss das irgendwie kaschieren (Baustelle mit Langsamfahrstelle einrichten etc, etc.). Sobald die Lok dann aus dem Block ist (Melder nicht mehr aktiv) müsste man auch den Block freimachen können (Timer oder separater Rückmelder vielleicht).
Wie gesagt, nur mal so in Blaue. Nach dem IN eine Geschwindigkeit setzen und die Lok damit weiterfahren zu lassen ist jedenfalls ohne Weiteres möglich.

Grüße
Bernd
Maerklin H0, DCC and MM, Intellibox (I) via ULNI, Booster Tams B4, Throttle Digitrax UT4, LocoNet.
Loco decoders: Zimo, Uhlenbrock, Maerklin & ESU.
Rocweb, Win10 32bit & 64bit
Besra
 

Re: Alles Zurücksetzten oder Idle als Aktion

Postby Kane » 18.03.2018, 14:39

Danke für den Tipp!

Ich konnte mein Problem damit nun lösen nur haben sich damit Andere Probleme gezeigt. Ich möchte meine Lösung hier dennoch gern aufzeigen.

*Zusatz*
wenn Block im Zustand "occupied" mit Aktion
Block-> "schedule_manual" //damit wird die Lok in den halbautomatischen Modus versetzt und sucht sich Ihren Weg. Warum ein Block vor dem Einfahrblock? Wenn die Lok erst im Einfahrblock auf "schedule_manual" gesetzt wird hält sie nicht wenn der Bahnsteig besetzt ist.

*Ausfahrt*
wenn Block im Zustand "in" mit Aktion -> Ext. Progamm starten
<?xml version="1.0" encoding="UTF-8"?>
<xmlscript desc="UnSetLok-Script">
<vr id="speed" value="0" generated="true"/> // Variable "speed" erschaffen und auf null setzten
<query vr="speed" table="lclist" id="%lcid%" get="V"/> // in Variable "speed" die Geschwindigkeit der Lok die das in-Ereignis ausgelöst hat schreiben
<lc id="%lcid%" cmd="regularreset"/> // Lok die das in-Ereignis ausgelöst hat zurücksetzten; Wird nun nicht mehr vom Automatikmodus beeinflusst; Lok wird beim Rücksetzten angehalten.
<lc id="%lcid%" V="#speed"/> // Geschwindigkeit der Lok die das in-Ereignis ausgelöst hat wird wieder auf ihre Einfahrgeschwindigkeit gesetzt
<lc id="%lcid%" cmd="block" blockid=""/> // Blockinformation der Lok die das in-Ereignis ausgelöst hat wird gelöscht; geht nur wenn Lok nicht mehr auf Auto/Halbautomatisch
</xmlscript>

*in-Melder Block Ausfahrt
wenn Zustand off -> Ext. Progamm starten

<?xml version="1.0" encoding="UTF-8"?>
<xmlscript>
<bk id="Ausfahrt" state="free"/>
</xmlscript>

Gleisplan.JPG


Der Ablauf sorgt dafür das eine beliebige auch unbekannte Lok in den halbautomatischen Modus versetzt wird und alle Züge des Automatikmodus von Rocrail genießt. Die Lok wird bei Ausfahrt aus dem letzten Block wieder aus dem Automatikmodus entlassen ohne angehalten zu werden, die Blockinformation wird ebenfalls gelöscht. Der letzte Block wird frei gemacht wenn der Ausgangsbelegtmelder auf off geht.

Das Scrip funktioniert im Prinzip gut, nur hält die Lok ab und zu doch an, ich gehe davon aus dass dies an der "beschränkten" Rechenleistung des Raspi liegt.
Für meinen Fall kann ich dieses Verfahren aber dennoch nicht nutzen. Durch meine verwendeten Rückmelder BiDiB-GBM16T werden von den Rückmeldern auch mehr als zwei Lok´s erkannt. Ein Block kann in Rocrail aber immer nur eine Lok beinhalten, es sei denn sie werden über Rocrail selbst oder die korrekte Einstellung von CV´s zu einer Mehrfachtraktion zusammengefasst. Dies kann ich aber leider nicht gewährleisten, da es auch vorkommen kann das hinder einer KÖF direkt ein anderer Zug folgt. Das versetzten in den halbautomatischen Modus kann also hier evt ausbleiben und das ganze System hängt fest. Ist eine Lok im halbautomatischen Modus so funktioniert die Funktion "Akzeptiere BiDiB-Lok" eines Blocks nicht mehr wirklich aktiv, dazu werde ich aber einen gesonderten Thread aufmachen.

Gruß Kane
You do not have the required permissions to view the files attached to this post.
Kane
 


Return to Basisfunktionalität (DE)