Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby ET1968 » 10.11.2017, 00:26

Hallo Rocrailfreunde,

ich habe mit Hilfe von Christian (freeclimber), mir ein Skript erstellen können, um meine Schattenbahnhöfe mit Eintaster- und Zweitastersteuerung bedienen zu können.
Nach dem die Weichensteuerung funktioniert hat, habe ich es auch noch geschafft, Befehle einzutragen, damit die Blocksignale der Abstellgleise und der Vorblöcke, auf Fahrt, HP1 geschaltet werden. Da dies etwas Zeitverzögert geschehen sollte, suchte ich nach einer Lösung, fand aber keine befriedigende und ich bekam dann einen Tip von einem Stammtischfreund, wie ich auch diese bewerkstelligen kann.
Meine beiden Schattenbahnhöfe sind Teil einer Modulanlage und ich habe alle dazu gehörigen Teile, einzeln angelegt.
Dies als Überblick, was schon funktioniert.
Nun habe ich mir die Aufgabe gestellt, das alle Ausfahrtsignale der Abstellgleise und Vorblocksignale im Schattenbahnhof von einem Rückmelder( Enter ), des nachfolgenden Blockes auf HP 0 zurück gestellt werden sollen.
Nun hatte ich gedacht, das ich auf dem richtigen Weg bin und der Spaß hat hervorragend funktioniert, bis ich das Programm herunter gefahren habe und neu startete.
Ich hatte mir gedacht, das ich den Rückmelder ja nur so behandeln muß, wie eine Anweisung für einen Ausgang und ich habe dahinter nur alle Signale mit der Anweisung eingetragen, das diese wieder auf Red; HP 0 zu stellen sind.
Rocrail lies sich aber nicht mehr starten, die Serverzeilen rasten durch das Fenster und auf der Oberfläche von Rocrail kam die Meldung ( keine Rückmeldung).
Ich stellte fest, das dies vom Skript verursacht wurde.
Diese Zeilen löschte ich wieder und ich mußte auch noch auf das Backup zurückgreifen, damit ich meinen Schattenbahnhof wieder angezeigt bekomme.
Ich habe im Forum gesucht, ob es ein Beispiel gibt für solch ein verwenden von Rückmeldern, aber ohne Erfolg.
Dann habe rum gefragt aber leider wußte niemand eine Lösung, welche Anweisungen ich in das Skript eintragen muß, damit ein Rückmelder die Ausfahrtsignale auf HP 0 stellt.
Hat einer der Mitglieder hier, vielleicht eine Lösung für mich oder kann mir einer mit seiner Erfahrung, sowie mit seinem Wissen helfen?
Ich hänge zwei Dateien mit an, Plan ok, das ist der Stand der momentan funktioniert und Skript nicht Ok, das ist die Anweisung, die zum Fehler geführt hat.
Vielen Dank schon einmal im Voraus.
You do not have the required permissions to view the files attached to this post.
Viele Grüße aus dem Nordschwarzwald, Torsten.

____________________________________________________________________________
Modellbahn Spur TT, Roco z21, fahren mit Smartphone und steuern mit PC der Modulanlage.
ET1968
 

Re: Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby Schorse » 10.11.2017, 01:39

Hallo Torsten,

das Script "Script nicht ok " ist kein Script sondern nur ein Teil davon. So fehlt vor allem die Auswertung einer nicht vorhanden "%callerid%" mittel "switch".
Die konkrete Lösung des Problems solltest Du an den Urheber des funktionierenden Script übergeben. Wer 270 Zeilen "switch - case" bzw. "if - then" in einem Script programmiert kriegt das bestimmt auch hin bzw. kann Dir die Lösung erklären. :wink:
Viele Grüße Gerd
Schorse
 

Re: Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby StefanF. » 10.11.2017, 07:49

Hallo Torsten,
da kann ich dir nicht helfen. Nur soviel: Dein Skript scheint ja zu funktionieren. Signale sind doch nur schmückendes Beiwerk. Dann kannst Du doch die Signale auch per hinterlegter Aktion im Rückmelder zurück stellen lassen.
Andere Idee: Du weist den Rückmelder dem Block zu, der als nächstes befahren wird, dann übernimmt Rocrail das zurück stellen der Signale oder Du machst es über die rocrail.ini.
Und noch eine Idee: Signale auf manuell betreiben einstellen, dann steuerst Du mit Klick auf die Signale die Abfahrten im Schattenbahnhof.

Verstehe das bitte nur als Ideen, ich kann auch völlig daneben liegen. Meine Antwort löst nicht Dein Skriptproblem, das weiß ich. Von skripten habe ich keine Ahnung.
Beste Grüße
Stefan
=========================
Booster: ORD-1 + Delta6604
Loconet MGV85, 50, 93,76,77,136
Server: DDX, Kubuntu14.04 auf PIII (2GB-RAM)
Client: Kubuntu14.04 auf 2*Core i3 (3Monitore)
=========================
StefanF.
 

Re: Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby Schorse » 10.11.2017, 11:25

Hallo Torsten,

Stefan hat ja schon einige Vorschläge gemacht. Eigentlich stellt Rocrail ja die Signale automatisch über den nächsten Block nach dem Abstellgleis zurück, aber den gibt es wohl noch nicht.
Da ja der Rm "R_01-1_BfKü" immer nur eines von 13 Signalen zurücksetzten soll muss Rocrail sich nur merken welches. Mein Lösungsvorschlag dazu ist eine Variable zu erstellen in der die Kennung des jeweiligen Signals gespeichert wird welches auf grün geschaltet wird. Das kann z. B. über ein Script passieren das beim schalten des Signal auf grün ausgeführt wird. Der Rückmelder löst beim befahren eine weitere Script-Aktion aus die das Signal mit der Kennung in der Variablen wieder auf rot schaltet.
Der Code für die beiden Scripte könnte so aussehen:

Signal merken:
Code: Select all
<vr id="Signal_merken" text="%callerid%"/>

Signal auf rot stellen:
Code: Select all
<sg id="@Signal_merken" cmd="red"/>
Viele Grüße Gerd
Schorse
 

Re: Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby ET1968 » 10.11.2017, 12:10

Danke erst einmal, für die Antworten.
Stimmt Skript, was nicht ok ist, ist nicht das vollständige, sondern nur der gelöschte Teil, der mir den Fehler verursacht hat. Den habe ich mir nur aufgehoben, damit ich ihn zeigen kann, um eine bessere Fehleranalyse erhalten zu können. Ich habe wohl vergessen, dies mit hinein zu schreiben.
Die Vorlage habe ich von Christian, diese habe ich mir dann genommen und habe meinen Daten eingesetzt, sowie durch kopieren der Anweisungen mir das gesamte Skript erstellt, bis alle Blöcke und Weichen, sowie Signale, darin erfaßt waren und geschaltet werden können.
Wenn ich nun den Teil kopiere, der nicht ok ist und ihn wieder in den Skript einfüge, dann habe ich wieder das Problem, das Rocrail nicht mehr Startet, was natürlich Unsinn, da es so nicht geht.
Ich hatte gedacht, das ich selber eine Lösung finde und es schaffe, dies mit einem Skript zu schalten.
Die Signale im SBH sind nur, sagen wir mal Visuell, denn auf der Anlage wird sich ein Decoder dahinter verbergen, der ein Relais am Ausgang hat.
Da der SBH1 und SBH2, Teile einer Modulanlage sind und die anderen der Gruppe sich nach kurzer Einweisung in das System, schnell zurecht finden sollen, habe ich die Skriptsteuerung favorisiert.
Rocrail wird nicht eine einzige Lok kennen, da die Mitglieder immer wieder verschieden Fahrzeuge mit dabei haben werden und ich mir den Aufwand nicht jedes Mal gebe, diese neu ins System einzupflegen.
Ich werde sicher auch mal allein, nur mit meinen Modulen unterwegs sein und dann werde ich Rocrail im Automatikmodus benutzen, denn meine Lokomotiven sind dann Rocrail bekannt.
Rocrail wird nur als Stellpultersatz benutzt, es wird nur ein Halbautomatik Betrieb auf der Anlage stattfinden und die Modellbahner fungieren als Fahrdienstleiter.
Ich stehe immer noch am Anfang im Umgang mit Rocrail und ich tue mich immer noch mit den vielen Optionen schwer, die überall ein zutragen sind, damit die Steuerung funktioniert.
Das rücksetzen der Signal durch zuweisen zu einem Block habe ich schon versucht, hat aber beim testen die Signale nicht auf HP0 gesetzt. Vielleicht geht es nicht, weil der nächste Block schon auf dem nächsten Modul drauf ist, der dem Schattenbahnhof momentan ja nicht bekannt, aber Rückmelder habe eingetragen.
Dann habe ich gesehen, das es einen Möglichkeit gibt die Einfahrt mit virtuellen Rm zu betreiben und nur einen realen Rm auf dem Zufahrtgleis vom Warteblock zum SBH1 zu installieren und dies mit einem Skript zu steuern, nur bin ich da noch nicht durch gestiegen. Das versuche ich auch noch zu testen, denn da würde ich mir bei 13 Abstellgleisen, irre viel Rückmelder ersparen.
Ich versuche mal den nicht vorhandenen Block im SBH1 einzufügen und probiere es nochmal dies zu testen.
Es ist immer schwierig schriftlich zu erklären, was man sich vorgestellt hat und wie man es gern umsetzen möchte.
Viele Grüße aus dem Nordschwarzwald, Torsten.

____________________________________________________________________________
Modellbahn Spur TT, Roco z21, fahren mit Smartphone und steuern mit PC der Modulanlage.
ET1968
 

Re: Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby ET1968 » 10.11.2017, 12:19

Gerd ich habe deine zweite Antwort erst jetzt gesehen.
Dein Vorschlag hört sich prima an und ich freue mich wie verrückt, das es doch einen Lösungen geben könnte.
Muß ich einen gesonderten Skript dafür anlegen oder kann ich diese Anweisung in das bestehende einfügen.
Wie geschrieben, blutiger Anfänger und über jede Hilfe dankbar.
So nun muß ich auf Arbeit und kann erst heute Abend spät wieder hier rein schauen. Wenn mein Surfstick funktioniert, versuche ich mal zwischen drin hier rein zu schauen.
Viele Grüße aus dem Nordschwarzwald, Torsten.

____________________________________________________________________________
Modellbahn Spur TT, Roco z21, fahren mit Smartphone und steuern mit PC der Modulanlage.
ET1968
 

Re: Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby Schorse » 10.11.2017, 23:05

Hallo Torsten,

So nun muß ich auf Arbeit und kann erst heute Abend spät wieder hier rein schauen.
Ja - Spätschicht vorbei und Wochenende :thumb_up:
Wenn ich nun den Teil kopiere, der nicht ok ist und ihn wieder in den Skript einfüge, dann habe ich wieder das Problem, das Rocrail nicht mehr Startet, was natürlich Unsinn, da es so nicht geht.
Nicht ganz unsinnig, denn das Script startet beim einschalten des Automatikmodus. Ursache dafür ist die Aktion des Signals SigAbst1.10 bei Status "rot"; dieser Status wird durch die interne Initialisierung aller Signale beim einschalten des Automodus hervorgerufen.
Muß ich einen gesonderten Skript dafür anlegen oder kann ich diese Anweisung in das bestehende einfügen.
Dafür benutzt Du zwei separate Scripte; die über zwei Aktionen aufgerufen werden. Der Inhalte der Scripte steht ja schon weiter ob. Die Aktion für das Script "Signal merken" wid dann durch das jeweilige Signal aufgerufen (muss also bei jedem Signal eingefügt werden), die Aktion "Signal rot" muss der Rückmelder auslösen. Die Variable "Signal_merken" sollte automatisch beim Aufruf des Scripts angelegt werden.
Die Scripte schalten nur die Signale im Layout; d. h. unabhängig von der Hardware.
Und wenn's nicht klappt wieder melden.
Viele Grüße Gerd
Schorse
 

Re: Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby ET1968 » 10.11.2017, 23:48

Hallo Gerd,
vielen Dank für deine weitere Antwort und für das Angebot, dich weiter belästigen zu dürfen, falls ich nicht klar komme. :beer:
Na mal sehen, was ich am Wochenende bewerkstelligen kann. :coding:

Wünsche dir und allen anderen ein schönes Modellbahnwochenende. :mrgreen:
Viele Grüße aus dem Nordschwarzwald, Torsten.

____________________________________________________________________________
Modellbahn Spur TT, Roco z21, fahren mit Smartphone und steuern mit PC der Modulanlage.
ET1968
 

Re: Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby ET1968 » 25.11.2017, 12:21

Servus in die Runde.

Ich will mich nun mal wieder melden und berichten, was ich so alles getrieben habe.
Nach nochmaligen überlegen, habe ich mein anfängliches Konzept über den Haufen geworfen und bin von einem Modulanlagenplan wieder abgekommen.
Das ganze ist mir einfach doch zu aufwendig, bei einer Änderung des Planes alles händisch eingeben zu müssen.
Ich habe nun alle Teilpläne zu einem ganz normalen Anlagenplan zusammengefaßt, was den Vorteil hat, das ich alle Fahrstraßen generiert bekomme und Rocrail so nun alle Blöcke, Rückmelder und Signale kennt.
Da nehme ich es lieber in kauf und zerlege den Plan nochmal, schiebe Teile zur Seite und füge neue Module ein, setze alle wieder zusammen und lasse Rocrail hinter alles wieder generieren.
Da auf längere Sicht keine Anlagenteile mit Blöcken, Rückmeldern und Signalen einzufügen sind, ist der Plan so ziemlich vollständig und ich kann bald wieder an der Anlage selbst weiter arbeiten.
Zum rücksetzen der Signale durch ein Skript, denn dies konnte somit verworfen werden, da Rocrail das jetzt selbst erledigen kann.
Nachdem nun alles zusammengeführt war, nahm ich mir die Rückmelder vor, meldete sie in den Fahrstraßen an und vergab ihnen jetzt ersteinmal fiktive Adressen, so das ich nun in der Lage war, einen virtuellen Testlauf mit Lokomotiven zu machen, die ich nun auch mal eingetragen habe.
Der Testlauf ist vielversprechend gut verlaufen, wobei mir noch einige Fehler aufgefallen sind, die es dann noch zu bereinigen gilt.
Die zwei Tastenskripts für die beiden SBH laufen auch gut, so das ich nun noch eines für den Bahnhof anfertigen kann und ich möchte noch eines anlegen, damit ich Rückmelder in den SBH sparen kann, wobei ich vielleicht nochmal eure Hilfe bräuchte.

Wünsche euch ein schönes Moba Wochenende, das Wetter ist ja ideal dafür .
Viele Grüße aus dem Nordschwarzwald, Torsten.

____________________________________________________________________________
Modellbahn Spur TT, Roco z21, fahren mit Smartphone und steuern mit PC der Modulanlage.
ET1968
 

Re: Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby RainerK » 25.11.2017, 13:20

Hallo Torsten,

wo steht denn geschrieben, dass man Modulanlagen nur manuell erstellen kann :?:

Wenn die Module im Modulplan zusammengeschoben sind und sich die Symbole
an den Modulübergängen berühren, ist der gesamte Modulplan für den Analyser
auch nur noch ein normaler Gleisplan :!:
Best Regards, es grüßt RainerK

DCC++ with Arduino Uno / Motor shield and LocoNet GCA85, 50, 93 and 136. Special interests: DIY electronic assemblies. http://www.rainermoba.blogspot.com
RainerK
 

Re: Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby ET1968 » 27.11.2017, 16:37

Hallo Rainer,

ich bin davon ausgegangen, da die einzelnen Module beim eintragen in den gesamten Modulplan, ja die Fahrstraßen nicht mit nehmen.
Na ja, ist jetzt egal, nun bleibe ich bei dem wie es jetzt angelegt ist.
Danke aber dennoch für den Hinweis.

Wenn ich aber nun schon einmal hier was schreibe, habe ich gleich einen andere Frage, die aber zum Thema paßt.
Wenn man Halbautomatisch oder nur im manuellen Betrieb ( PC als Stellpultersatz) die Anlage betreibt, also mit der Tastensteuerung der Skripte die Blöcke bedient, werden dann die Signal auch dann auf Hp0 gesetzt oder nur im Automatik Modus?
Viele Grüße aus dem Nordschwarzwald, Torsten.

____________________________________________________________________________
Modellbahn Spur TT, Roco z21, fahren mit Smartphone und steuern mit PC der Modulanlage.
ET1968
 

Re: Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby ET1968 » 27.11.2017, 21:25

Hallo ich bin es nochmal.

Ich habe mir gerade meine Frage selbst beantwortet geht nicht.
Somit muß ich doch einen Skript anlegen, der mir beim überfahren der Rückmelder, die Signale wieder zurück auf Hp0 stellt und das für jeden Block.
Puh das habe ich mir jetzt was vorgenommen.
Ich denke da brauche ich doch mehr Hilfe dabei, wie ich mir gedacht hätte.
Gerd ich würde dann mal per PN bei dir melden, wenn ich so weit bin, denn momentan bin ich daran die Automatik zu testen und einzustellen, damit dies dann erst einmal zufriedenstellend läuft.
Ich entdecke jeden Tag was neues, was mich ein Stück weiter bringt, aber auf der anderen Seite ist es erschreckend, was ich alles schon gelesen und wieder vergessen habe, weil ich es zu diesem Zeitpunkt noch nicht gebraucht habe.
Viele Grüße aus dem Nordschwarzwald, Torsten.

____________________________________________________________________________
Modellbahn Spur TT, Roco z21, fahren mit Smartphone und steuern mit PC der Modulanlage.
ET1968
 

Re: Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby peter&basti » 27.11.2017, 21:35

Hallo Torsten,

für das Rückstellen von Signalen gibt es mehrere Möglichkeiten:

1. Bei Freigabe der Fahrstrasse durch den IN-Melder des Folgeblocks, wenn die Signale in den Fahrstrassen eingetragen sind... HP0 bei free.
2. Mit der globalen Einstellung Signal zurücksetzen in den Rocrail Automatik Eigenschaften
http://wiki.rocrail.net/doku.php?id=roc ... uecksetzen
3. individuelle Lösungen per Script, Aktionen etc.

Beim realen Vorbild werden meines Wissens die Signale zurückgesetzt, sobald die Lok am Signal vorbei ist und den "Rückmelder" überfährt.
Dies lässt sich mit der Lösung gemäß Punkt 2 relativ gut nachbilden.

Für Deine gewünschte Rücksetzung bei ENTER des Folgeblocks reicht in der Regel EIN Script und EINE Aktion, wenn richtig gemacht :wink:
Mein Beispiel siehe hier: http://wiki.rocrail.net/doku.php?id=sig ... albegriffs

Funktioniert auch mit ENTER Melder statt EXIT Melder....
Liebe Grüße / best regards
Peter


System: DCC 2-Leiter H0, Rocrail Win10 Pro 64
Traktion: GBMBoost & GBM16T, RailCom
Fahrweg: RocNetNode & GCA PI01/2/3, GCA41/Arduino RFID, GCA145 Drehscheibe, etc.
Lokdecoder: 99% Zimo
peter&basti
 

Re: Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby Schorse » 27.11.2017, 23:14

Hallo Torsten,

Gerd ich würde dann mal per PN bei dir melden, wenn ich so weit bin, denn momentan bin ich daran die Automatik zu testen und einzustellen, damit dies dann erst einmal zufriedenstellend läuft.
Ok.
Viele Grüße Gerd
Schorse
 

Re: Signale mit Skript auf HP 0 setzen, durch Rückmelder.

Postby ET1968 » 28.11.2017, 20:46

Danke euch für eure Antworten und die Hilfe.
Leider ist mir seit dem letzten Update ein Fehler aufgetreten, der mir Kopfzerbrechen bereite, so das ich da ersteinmal einen Problemfall erzeugen muß.
Betroffen sind dummerweise die Belegtmelder, die nun schon mehrfach aus den Blockeinträgen verschwunden sind und ich sie immer wieder neu eintragen muß, bzw ich mir ein Backup zurückholen muß.
Ich melde mich wieder, wenn es mit der Steuerung weiter geht und inzwischen sehe ich mir mal an, was Peter mir in den Links mitgeschickt hat.

Grüße nach Österreich und vielleicht sieh man sich ja auf einem Stammtisch in Speyer mal wieder.

Gerd danke für die Bestätigung.
Viele Grüße aus dem Nordschwarzwald, Torsten.

____________________________________________________________________________
Modellbahn Spur TT, Roco z21, fahren mit Smartphone und steuern mit PC der Modulanlage.
ET1968
 


Return to XMLScripting (DE)