Jump to content

RocStudio - X Gleiselemente als 1 Rückmelder


Empfohlene Beiträge

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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. :D

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...