[erledigt] Komplexe Verknüpfung Vorsignal-Hauptsignal

Re: XML Skript Variablen nicht statisch

Postby rjversluis » 08.09.2017, 09:02

Moin Peter,

die Variablen sind hier aufgelistet.
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: XML Skript Variablen nicht statisch

Postby peter&basti » 08.09.2017, 09:41

Hi Rob, Andy,

Eventuell ist %fromblkid% die Lösung in einem Script
Habe aber die nächsten 2 Tage leider keine Zeit zu testen....
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: XML Skript Variablen nicht statisch

Postby Schorse » 08.09.2017, 11:24

Hallo Peter,

Wenn nun eine zweigleisige Strecke und Parallelausfahrt möglich ist, muss FS von BlockA nach BlockB und die FS auf dem Parallelgleis (ich nenne es mal BlockA2 und Block B2) wissen, was die vorherige FS war um das richtige VS zu finden.


Da kann ich Dir jetzt nicht folgen. Parallelausfahrt - rückwärtige Vorsignale?
Viele Grüße Gerd
Schorse
 

Re: XML Skript Variablen nicht statisch

Postby peter&basti » 08.09.2017, 13:24

Hallo Gerd,

ich habe die Situation mal schnell dazugekritzelt:

3zu2.PNG


1. Zwei Züge fahren gleichzeitig aus, zu BlockA bzw. zum parallel eingezeichneten Block
2. Das jeweils erste Streckensignal, also A_Block bzw. das parallel dazugekritzelte haben 3 Vorsignale, die stehen noch im Bahnhof auf Gleis 1-3
3. Geschaltet wird dieses erste Streckensignal mit der Fahrstraße von BlockA nach BlockB bzw. eben auch die parallele FS.
4. Dies bedeutet, dass ich (bzw. Andy) zu diesem Zeitpunkt wissen muss über welche FS der Zug gekommen ist um das passende Vorsignal mit dem Streckensignal mitzustellen.
You do not have the required permissions to view the files attached to this post.
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: XML Skript Variablen nicht statisch

Postby minou65 » 08.09.2017, 14:02

Hallo Peter

Danke für deine Unterstützung! Werde es morgen mit der Variable versuchen und testen. Werde dann das Skript auch teilen.

Hat jemand noch einen gescheiten Namen für diese Thema? Dann werde ich ihn umbenennen und Rob kann ihn eventuell verschieben.

Gruss
Andy
Märklin K-Gleis, OpenDCC Z1, DCC++, rocrail Server auf Raspi, 4x Rocnetnode, div. GCA Bausätze, Win10 Client, iPad Client
minou65
 

Re: XML Skript Variablen nicht statisch

Postby Schorse » 08.09.2017, 17:31

Hallo Peter,

Dies bedeutet, dass ich (bzw. Andy) zu diesem Zeitpunkt wissen muss über welche FS der Zug gekommen ist um das passende Vorsignal mit dem Streckensignal mitzustellen.

Welches ist "dieser Zeitpunkt"? Der der Railjet z. B. in Block A angekommen ist wird das Hauptsignal der Fs im Bahnhof rot und das Vorsignal geht aus. Oder welchen Zeitpunkt meinst Du?
Ich gehe davon aus das der zweite Zielblock reserviert ist.
Viele Grüße Gerd
Schorse
 

Re: XML Skript Variablen nicht statisch

Postby peter&basti » 08.09.2017, 20:49

Hallo Gerd,

zum Zeitpunkt des Schalten/reservieren der Fahrstrasse von BlockA nach BlockB (bzw. in der parallelen, skizzierten Fahrstraße)

Genaugenommen sind es daher im Beispiel mit der Parallelausfahrt zwei unabhängige Ereignisse.

Der Railjet fährt zB aus Gleis3 aus über BlockA und BlockB
Also muss bei Schalten der FS BlockA - BlockB das Signal A_Block grün gehen und das Vorsignal in Gleis 3 ebenfalls.

Jetzt fährt angenommen gleichzeitig der ICE TEST aus Gleis2 aus über das skizzierte zweite Streckengleis los.
Hier muss dann das skizzierte Streckensignal (auf der Höhe von Signal A_Block) auf grün geschaltet werden und das Vorsignal in Gleis 2

Da diese Vorsignale in Gleis 1-3 erst in den nächstfolgenden Fahrstrassen gemeinsam mit den Streckensignalen gestellt werden,
braucht es zu diesem Zeitpunkt eine Information über welche Fahrstrasse der Zug gekommen ist sonst kann man nicht das richtige Vorsignal stellen.
Weil es kann ja jedes der drei Bahnhofsgleise der Ausgangspunkt mit dem zugehörigen Vorsignal sein.

Andy hat soweit ich verstanden habe einen Lösungsansatz erstellt mit Variablen, die bei der Zugausfahrt gesetzt werden und dann zum oben erwähnten Zeitpunkt
die Information gibt, welches der drei Vorsignal zum jetzt angefahrenen Streckensignal passt.
3 Vorsignale x 2 Hauptsignale ergibt dann die von Andy erwähnten 6 Variablen.

In meiner eingleisigen Strecke ist das simpel zu lösen. Ich stelle ganz einfach alle 3 Vorsignale auf grün in der FS von BlockA nach BlockB und "bei Freiwerden" wieder auf rot. Durch das Dunkeltasten des VS sind hier Fehlanzeigen ausgeschlossen.

Bei Andy's zweigleisiger Ausfahrt muss man dann schon genau wissen welches Vorsignal gestellt werden muss, das geht mit der Gießkanne nicht mehr.
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: XML Skript Variablen nicht statisch

Postby peter&basti » 08.09.2017, 22:09

Hallo Andy,

Danke für deine Unterstützung! Werde es morgen mit der Variable versuchen und testen


Ich bin mir nicht sicher ob die Information zu diesem Zeitpunkt noch in der Variable zur Verfügung steht. Bitte testen und berichten.

Werde dann das Skript auch teilen


Danke!

Hat jemand noch einen gescheiten Namen für diese Thema?


Vielleicht: Komplexe Verknüpfung Vorsignal-Hauptsignal

Ist ja auch komplex und ein Thema bei der modernen Bahn mit den engen Blockabständen.
Wo dann die Vorsignale schon im Bahnhof stehen...

Mit einer simplen elektrischen Kopplung Vorsignal - Hauptsignal ist dies nicht mehr möglich, das geht nur über eine (Script) Logik in Rocrail.
:rr_for_ever:

PS: ich habe mich bei meinem geplanten Layout für eine zweigleisige Hauptstrecke ohne Gleiswechselbetrieb entschieden, also fixer Richtungsverkehr am jeweils rechten Gleis in Fahrtrichtung. Damit kann ich mit meiner derzeitigen Logik leben, weil de facto eingleisige Ausfahrt. Aber wer weiß.... :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: XML Skript Variablen nicht statisch

Postby peter&basti » 08.09.2017, 23:00

Hallo Andy,

ich konnte es mir nicht verkneifen und habe an dem Thema weiter geforscht.

Wie befürchtet steht die Variable %frombkid% in meinem Beispiel in der Fahrstrasse von BlockA nach BlockB nicht zur Verfügung.

Sehr wohl aber im BlockA.

Ich schlage daher folgenden Lösungsansatz vor:

Mit diesem Script kannst Du eine Variable setzen, um die Information des Startblocks bei Enter von BlockA zu speichern:

Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<xmlscript>
<trace text="%frombkid%"/>
<vr id="frominfo_%callerid%" text="%frombkid%"/>
</xmlscript>


Eine Aktion im BlockA ruft dieses Script auf mit Bedingung ENTER

In der Variable frominfo (Name des Blocks vor der zu stellenden Fahrstraße) steht dann in meinem Beispiel der Ausgangspunkt, zB "Gleis3"
(Ich mache das gerne mit der callerid, weil dann nur ein identisches Script und Aktion für alle Blöcke und der Variablenname muss nicht extra definiert werden.....)

Mit einer IF Abfrage im Script in der Fahrstraße kannst Du dann in der FS das zugehörige Vorsignal steuern.
Also wenn "Gleis3" dann "V_Gleis3" grün ...

Oder gleich ein zusammengesetzter Befehl, wenn wie bei meinem Plan "Gleis3" im Namen des Vorsignals enthalten ist.

Nicht vergessen, die Rückstellung des VS muss dann auch in einem Script erfolgen bei Freigabe der Fahrstraße.

Sind somit nur noch 2 generische Variable statt 6 erforderlich ....
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: XML Skript Variablen nicht statisch

Postby peter&basti » 09.09.2017, 08:44

Hallo Andy,

Nach 1x drüber schlafen:

mein letzter Ansatz ist wahrscheinlich nicht brauchbar,
VS wird viel zu spät gestellt.
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: XML Skript Variablen nicht statisch

Postby Schorse » 09.09.2017, 09:09

Hallo Peter,

Da diese Vorsignale in Gleis 1-3 erst in den nächstfolgenden Fahrstrassen gemeinsam mit den Streckensignalen gestellt werden,
braucht es zu diesem Zeitpunkt eine Information über welche Fahrstrasse der Zug gekommen ist sonst kann man nicht das richtige Vorsignal stellen.

Mir ist nicht klar warum die zurückliegende Fs für Dich so wichtig ist?
- Der Railjet fährt aus Gleis3 über Block A nach Block B.
- "Zweiten Zielblock reservieren" ist aktiv.
- Das Ausfahrsignal wird gestellt, das A-Block Signal und das A-Block Vorsignal.
- Wird in Block A ein "enter" Ereignis ausgelöst wird das Ausfahrsignal in Gleis3 auf rot gestellt und das Vorsignal dunkelgetastet.
- bei "enter" in Block b wird das Signal A_Block auch zurückgesetzt.
- Ist "Zweiten Zielblock reservieren" inaktiv geht das Vorsignal auf "Halt erwarten" da Signal A-Block "Halt" zeigt.
Bei meinen Betrachtungen gehe ich davon das die eigentliche Signalsteuerung durch die Rocrail Automatik vorgenommen wird.
In Deutschland ist es so das ein Vorsignal am gleichen Mast wie das Hauptsignal (so erkenne ich es in Deinem Beispiel) bei "Halt" zeigendem Hauptsignal dunkelgetastet sei muss. Vielleicht ist es ja in "A" oder "CH" anders?
Dadurch ergibt sich das eine Aktion für ein auf "Halt" gehendes Hauptsignal das Vorsignal dunkel tastet.
Hierdurch wird bei Ankunft (enter) des Railjet in Block A keine Information über die zurückliegende Fahrstrasse gebraucht.
Viele Grüße Gerd
Schorse
 

Re: XML Skript Variablen nicht statisch

Postby minou65 » 09.09.2017, 09:21

Hallo Peter

peter&basti wrote:Hallo Andy,

Nach 1x drüber schlafen:

mein letzter Ansatz ist wahrscheinlich nicht brauchbar,
VS wird viel zu spät gestellt.


doch so schlecht ist er nicht. Wie du schon geschrieben hast habe ich %bkid% und %frombkid% nur im Block zur Verfügung. Die Aktion und damit das Skript muss dementsprechend an den Block gehängt werden. Aber nicht wie du geschrieben hast beim Ereignis Enter, sondern beim Ereignis Reserved. Es funktioniert bei mir nun wie gewünscht.

Wie Peter schon geschrieben und aufskizziert hat geht es um dieses Komplexe Thema
plan1.PNG


Jedes Vorsignal muss den je nach Fahrstrasse den Begriff des richtigen Hauptsignal anzeigen. Das lässt sich nicht mit der einfachen block Zuordnung machen und auch nicht mit den Fahrstrassensteuerung. Denn das Vorsignal steht ja in der vorhergehenden Fahrstrasse/Block resp. ich muss wissen von wo kommt die Lok um das richtige Vorsignal zu steuern.

Das Skript sieht nun wie folgt aus, es erzeugt immer noch 3 Variablen pro Fahrstrasse, was im Beispiel total 75 Variablen entspricht, aber es ist schon besser als vorher. Eine könnte man sich noch sparen wenn man das if, then, els Konstrukt von Peter verwendet oder das ganze statischer macht. ich liebe aber die if , then, els Konstrukte nicht so sehr und liebe wieder verwendbarer Code. Das Skript unten sollte eigentlich auf jeder Anlage ohne Änderung verwendet werden können.

Ich stelle das Beispiel noch fertig und erstelle dann eine Userpage mit allen Daten und einer detaillierten Anleitung.

Gruss
Andy

Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<xmlscript>
<!--
   Dieses Script setzt ein gemeinsames Vorsignal auf den richtigen Begriff
   Dieses Script ist per Aktion in allen Blöcken welche zum entsprechenden Hauptsignal führen bei "reservd" aufzurufen.
   Im Feld Beschreibung der jeder Fahrstrasse ist die Kennung des Hauptsignales und des betroffenen Vorsignales (durch Komma getrennt) einzutragen => s121+,v120-
   Das Vorsignal kann durch einen Eintrag in der Befehlsliste beim Freiwerden normal auf Rot gestellt werden
   
   Version 1.0
   
   History:   
   09.09.2017 andy      Inital Version

-->
   
   


<!--
   <trace text="From Block     = %frombkid%"/>
   <trace text="To Block       = %bkid%"/>
-->   
   
   <!--
      Source Fahrstrasse suchen.
      Diese muss gelocked sein und bkb und bkbside müssen
      bka und bkaside der Zielblocks entsprechen
   -->
   <foreach table="stlist" state="st %oid% = locked">
      <!-- <trace text="Fahrstrasse %oid% ist locked"/> -->
      
      <if condition="%bkb% = %frombkid%|%bka% = %bkid%" alltrue="true"><then>

         <!-- Beschreibung der Fahrstrasse lesen -->
         <query vr="xml_%oid%" table="stlist" id="%oid%" get="desc"/>
         
         <!-- Beschreibung spliten in hsig und vsig -->
         <vr id="xml_%oid%_hsig" text="@@0xml_%oid%"/>
         <vr id="xml_%oid%_vsig" text="@@1xml_%oid%"/>
         
         <!-- FB Hauptsignal abfragen -->
         <query vr="xml_%oid%" table="sglist" id="@xml_%oid%_hsig" get="state"/>
         
         <!--
         <trace text="Source Fahrstrasse ist %oid%"/>
         <trace text="Hsignal ist @xml_%oid%_hsig : Fahrbegriff @xml_%oid%"/>
         <trace text="Vsignal ist @xml_%oid%_vsig"/>
         -->

         <!-- Fahrbegriff am Vorsignal einstellen -->
         <sg id="@xml_%oid%_vsig" cmd="@xml_%oid%"/>

      
      </then></if>
         
   </foreach>
   
</xmlscript>
You do not have the required permissions to view the files attached to this post.
Märklin K-Gleis, OpenDCC Z1, DCC++, rocrail Server auf Raspi, 4x Rocnetnode, div. GCA Bausätze, Win10 Client, iPad Client
minou65
 

Re: XML Skript Variablen nicht statisch

Postby minou65 » 09.09.2017, 09:38

Gerd, es geht darum das ein Zug in meinem Beispiel von b1 nach bC und Gleichzeitig ein Zug von b3 nach bD ausfahren soll. Das Signal bC- und bD- werden aber erst auf den entsprechenden Fahrbegriff mit der nächsten Fahrstrasse gestellt, weil erst da weiss ich ja ob ich eine Weiche befahre oder nicht. In meinem Beispiel bC-bA und bD-bB.

Nun weiss aber die Fahrstrasse bC-bA nicht viel von diesem Vorsignal und vor allem soll das Vorsignal b1- oder b2- gestellt werden. Deshalb muss ich in der Fahrstrasse bC-BA wissen von wo mein Zug kommt. Dadurch kann ich in meinem Beispiel dann am richtigen Vorsignal den Fahrbegriff anzeigen der Signal bC- anzeigt. In meinem Fall wird das jetzt immer grün sein.

In meinem Beispiel sind die Vorsignale absichtlich nicht dunkelgeschaltet. In der CH können im Bahnhof die Vorsingale dunkel sein wenn dies der Übersichtlichkeit dient. Sonst sind sie eingeschaltet.

Gruss
Andy
Märklin K-Gleis, OpenDCC Z1, DCC++, rocrail Server auf Raspi, 4x Rocnetnode, div. GCA Bausätze, Win10 Client, iPad Client
minou65
 

Re: XML Skript Variablen nicht statisch

Postby Schorse » 09.09.2017, 10:12

Hallo Andy,

ich kenne Deine Signalsteuerung nicht. Aber was ich in meinem letzten Post geschrieben habe trifft hier meine Erachtens auch zu auch.
Statt dunkeltasten kann eine Aktion das Vorsignal auch auf rot stellen.
Bei einer Zugfahrt von b1 nach bc bleibt v1 rot.Bei einer Fahrt von bC nach bA ist es nicht mehr wirksam.
Beim schalten der Fahrstrasse bC -> bA zeigt vC den Staus des Hauptsignals in bA.
Code: Select all
Das Signal bC- und bD- werden aber erst auf den entsprechenden Fahrbegriff mit der nächsten Fahrstrasse gestellt, weil erst da weiss ich ja ob ich eine Weiche befahre oder nicht.
Welche Weiche?
Viele Grüße Gerd
Schorse
 

Re: XML Skript Variablen nicht statisch

Postby minou65 » 09.09.2017, 11:29

Hallo Gerd
Schorse wrote:
ich kenne Deine Signalsteuerung nicht.


Das könnte das entscheidende sein. Ich und Peter verwenden die GCA Module und da gibt es keinen Signalbus.

Gruss
Andy
Märklin K-Gleis, OpenDCC Z1, DCC++, rocrail Server auf Raspi, 4x Rocnetnode, div. GCA Bausätze, Win10 Client, iPad Client
minou65
 

PreviousNext

Return to Erweiterungsvorschläge (DE)