Sintbert Geschrieben 8. Februar 2021 Geschrieben 8. Februar 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
HaNNoveraNer Geschrieben 8. Februar 2021 Geschrieben 8. Februar 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>
Sintbert Geschrieben 10. Februar 2021 Autor Geschrieben 10. Februar 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen.
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden