Sintbert Posted February 8, 2021 Share Posted February 8, 2021 Hallo zusammen Ich nutze Gleiskontakte als Punktrückmelder zur Steuerung und Gleise selbst als Streckenrückmelder zur Ausleuchtung in Rocrail. Das funktioniert soweit sehr gut, bis ich eine längere Strecke bestehend aus mehreren Gleisabschnitten als 1 Rückmelder nehme in dem ich allen Abschnitten den gleichen Namen eintrage. Wenn nun ein kurzer Zug darüber fährt, dann generiert jeder neu befahrene abschnitt ein belegt Ereignis, sowie jeder freiwerdende Abschnitt ein frei Ereignis. Deswegen blinkt nun die anzeige in Rocrail. Ich wünschte nun das Rocrail diese als 1 Abschnitt behandelt. Sprich, beim ersten belegen gibt es das entsprechende Ereignis, sowie beim letzten frei werdenden Abschnitt. Alle weiteren Ereignisse müssten unterdrückt werden. Ein Zweites Problem das ich habe: Beim Start von Rocrail funktioniert die Ausleuchtung nicht, da der Zustand der Rückmelder nicht entsprechend gesetzt wird. "Rocrail -> Steuerung -> Betriebsbeginn -> Rückmelder einlesen" ergibt <exception text="Start of Day" level="16384" id="9999"/> und bei RocStudio -> Synchronize liest es den ganzen Plan ein, jedoch werden die Rückmelder nicht entsprechend gesetzt. Das ergibt dann einige Fehler im Betrieb. Z.b. bei einem überlangen Zug, der den vorherigen Block noch Elektrisch belegt, wird dieser nicht gesperrt. Dies funktioniert erst nach dem sich dieser Zug um eine länge bewegt hat. Dies aber auch nur wenn das erste Problem da nicht dazwischenfunkt. Gruss Sintbert Link to comment Share on other sites More sharing options...
HaNNoveraNer Posted February 8, 2021 Share Posted February 8, 2021 Hi Den Status der fb kann man mit einem Script speichern und laden. Ich weiß aber nicht mehr genau, wie ich das gemacht habe :-( Irgendwie so: -<foreach table="fblist"> -<if state="fb %oid% = on"> -<then> vr group="save_fb" text="true" value="10000" id="%oid%"/> <trace text="%oid% true"/> </then> -<else> <vr group="save_fb" text="false" value="10000" id="%oid%"/> <trace text="%oid% false"/> </else> </if> </foreach> Link to comment Share on other sites More sharing options...
Sintbert Posted February 10, 2021 Author Share Posted February 10, 2021 Hallo HaNNoveraNer Vielen Dank für das Script. Nach einigem herumprobieren habe ich es zum laufen gebracht. fb_store.xml bei system-event shutdown: <?xml version="1.0" encoding="UTF-8"?> <xmlscript desc="fb_store.xml"> <sleep time="10"/> <trace text="fb_store started"/> <foreach table="fblist"> <if state="fb %oid% = on"> <then> <vr text="true" value="10000" id="fb_store_%oid%"/> <trace text="%oid% true"/> </then> <else> <vr text="false" value="10000" id="fb_store_%oid%"/> <trace text="%oid% false"/> </else> </if> </foreach> <trace text="fb_store ended"/> </xmlscript> fb_load.xml bei system-event init: <?xml version="1.0" encoding="UTF-8"?> <xmlscript desc="fb_load.xml"> <sleep time="10"/> <trace text="fb_load started"/> <foreach table="fblist"> <query vr="fb_load_temp" table="vrlist" id="fb_store_%oid%" get="text"/> <trace text="load %oid% value = @fb_load_temp"/> <if condition="@fb_load_temp = true"> <then> <fb id="%oid%" cmd="on"/> </then> <else> <fb id="%oid%" cmd="off"/> </else> </if> </foreach> <trace text="fb_load ended"/> </xmlscript> Damit währe das 2. Problem gelöst. Für das erste habe ich auch einen Umweg gefunden.. ich kombiniere die Gleise zu einem Gleis bestehend aus mehreren Abschnitten. Funktioniert aber auch nur im flachen, in einem Wendel kann ich die Gleise nicht kombinieren, da ich die einzelnen Elemente nicht neigen kann. Gruss Sintbert Link to comment Share on other sites More sharing options...
HaNNoveraNer Posted February 10, 2021 Share Posted February 10, 2021 Super Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now