Jump to content

Signalsteuerung mittels Variable


BahnLand

Empfohlene Beiträge

Hallo Neo,

soweit ich das momentan überblicke, lassen sich die einzelnen Zustände eines Signals nur über die Zustands-Auswahlliste zuweisen. Die Möglichkeit, in einer Anweisung der Ereignisverwaltung den gewünschten Signalzustand auch über eine Variable zuweisen zu können, konnte ich bisher nicht entdecken. Konkret geht es bei mir um folgendes Nutzungsszenario:

An einer Bahnstrecke sind zwei Hauptsignale aufgestellt, wobei das Vorsignal zum hinteren Hauptsignal am Mast des vorderen Hauptsignals angebracht ist (Kombination aus Hauptsignal und Vorsignal). Wenn das vordere Hauptsignal nicht Halt zeigt, soll das Vorsignal die Stellung des hinteren Hauptsignals wiedergeben. Zeigt das vordere Hauptsignal Halt, soll das Vorsignal am selben Mast unabhängig von der Stellung des zugehörigen hinteren Hauptsignals ausgeschaltet (dunkel) sein.

Wird das vordere Hauptsignal umgeschaltet, soll das Vorsignal bei Umschaltung auf "Halt" (wird über die Zusatzbedingung erkannt) dunkel geschaltet werden und andernfalls den Zustand des hinteren Hauptsignals zugewiesen bekommen. Wird das hintere Hauptsignal umgeschaltet soll das zugehörige Vorsignal nur in dem Fall, dass das vordere Hauptsignal nicht Halt zeigt, entsprechend umgeschaltet werden (sonst ist es bereits dunkel geschaltet).  

Diese Verhaltensweise lässt sich mit der Verknüpfung des Vorsignals mit dem hinteren Hauptsignal nicht realisieren, weil hier das Vorsignal immer (unabhängig von der Stellung des vorderen Hauptsignals) den aktuellen Zustand des hinteren Hauptsignals anzeigt. Ich würde mir wünschen, dass hier in der Ereignisverwaltung bei der Aktion "Signal einstellen" - genauso wie bei der Aktion "Lokgeschwindigkeit setzen" für die Auswahl der Lok - eine benutzerdefinierte Eingabe z.B. in der Form "$Signalname._State" möglich wäre. Dann müsste man nämlich bei mehrwertigen Signalen nicht jeden Wert in einer separaten EV-Anweisung einzeln abfragen und zuordnen, sondern könnte das ganz elegant mit einer einzigen EV-Anweisung lösen.

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo BahnLand,

folgende Idee: Zwei Vorsignale, an derselben Stelle, das eine mit dem zugehörigen Hauptsignal verknüpft und von dem Signal, an dem es angebracht ist bei Halt unsichtbar geschaltet. Das andere wird dann sichtbar geschaltet und zeigt den dunklen Bildschirm.

 

Gruß ~ Lutz

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb BahnLand:

Die Möglichkeit, in einer Anweisung der Ereignisverwaltung den gewünschten Signalzustand auch über eine Variable zuweisen zu können, konnte ich bisher nicht entdecken.

Aber du kannst die Änderung einer Variablen als Auslöser für ein Ereignis nutzen.

Setz eine Variable auf den Status des hinteren Signals, wenn dieses schaltet.

Erstele zwei weitere Ereignisse:

  1. Variable "hinteres Signal" wird gesetzt - Wert 0
  2. Variable "hinteres Signal" wird gesetzt - Wert 1

Bei beiden ist die Bedingung: "Vorderes Signal offen"

Wenn die Bedingung erfüllt ist, dann schaltest du das Vorsignal. Im ersten Ereignis auf 0, im zweiten auf 1

Wenn die Bedingung nicht erfüllt ist, dann schaltest du in beiden Ereignissen das Vorsignal dunkel.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Götz,

natürlich kann ich den Status des hinteren Signals in einer Variable festhalten. Das bringt keinen zusätzlichen Vorteil, da ich den Zustand des Signals jederzeit auch direkt abfragen kann bzw. auch dessen Änderung direkt mitbekomme (Ereignis "Signal schaltet auf Zustand x"). Deshalb würde es auch zumindest qualitativ keinen Unterschied machen, ob ich den Status des Signals zuerst in einer Variable abspeichere, und diese dann für die Schaltung des Vorsignals heranziehe, oder ob ich hierfür den vordefinierten Objekt-Variablen-Inhalt "$Signalbezeichnung._State" direkt auswerte.

Bei der von Dir vorgeschlagenen "klassischen" Vorgehensweise (wenn vorderes Hauptsignal geschlossen, dann Vorsignal aus, sonst: wenn hinterer Hauptsignal-Wert = 0, dann Vorsignal-Wert = 0, wenn hinterer Hauptsignal-Wert = 1, dann Vorsignal-Wert = 1, wenn hinterer Hauptsignal-Wert = 2, ....) benötige ich für jeden möglichen Hauptsignal-Zustand eine separate Abfrage (eine separate Ereignis-Definition). Und bei den möglichen 6 Fahrbegriffen, die mir bei den schweizerischen Signalen für meine Gotthard-Anlage zur Verfügung stehen (zugegebenermaßen werden ich nicht immer alle benötigen), kommt da dann schon eine Menge von Ereignis-Definitionen zusammen.

Da ist dann das "Austauschen zweier Vorsignal-Ausprägungen" (eines "aus", das andere mit dem hinteren Hauptsignal gekoppelt) in Abhängigkeit vom "Halt"-Zustand des vorderen Hauptsignals wesentlich einfacher zu handhaben.

Trotzdem vielen Dank für Deinen Hinweis.

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 19 Minuten schrieb BahnLand:

Das bringt keinen zusätzlichen Vorteil, da ich den Zustand des Signals jederzeit auch direkt abfragen kann ...

Da hast du recht. Ich war gedanklich so auf die Variable fixiert, dass ich diesen (direkteren) Weg komplett übersehen habe.

Es fehlt generell und für so manchen Zweck eine Art "case" Verzweigung in der EV. Also eine mehrfache Verzweigung für Fall 1, Fall 2, Fall 3 etc.

Aber Neo hatte mir mal recht schlüssig erläutert, warum es diese Art der Verzweigung nicht gibt. Und letztlich bleibt der Aufwand ja auch fast der gleiche. Ob ich nun anhand eines Wertes vielfach verzweige oder für jeden denkbaren Wert einer Variablen ein eigenes Ereignis erstelle, macht keinen nennenswerten Unterschied. Eine Art "case" Verzweigung würde es nur etwas kompakter machen, weil man alle Varianten in einem Ereignis zusammenfassen könnte. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

auch wenn Ihr mich hiernach Steinigen wollt, ich finde das die von Bahnland angedachte Idee den Wert einer Schaltung via Variable an ein andere Schaltung weiterzugeben durchaus eine Überlegung wert ist. Man könnte so auch Blockschaltungen erstellen bei denen nicht für jeden Block abgtefragt werden müsste ob sich gerade ein Zug im Block befindet oder nicht. Da bei diesen immer nur jedes zweite Signal auf Fahrt steht, womit ein Auffahren der Züge von vorne herrein schon Ausgeschlossen ist. Wobei dieses jetzt nur meine Persönliche Meinung ist, da ich mal versucht habe eine solche Schaltung zu realisieren und daran kläglich Gescheitert bin. Es kann durchaus sein das so eine Schaltung mit den vorhandenen Mitteln realisierbar ist, ich aber den falchen Weg genommen habe.

HG

Wüstenfuchs

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen,

 Lutz war gedanklich schon fast auf dem Weg, den Brummi mit seinen mehrbegriffigen Signalen eingeschlagen hatte.

Sein 1969 Hauptsignal+Vorsignal wurde mit unbeschaltetem Vorsignal ausgestattet = Vorsignal ist dunkel. Dieses dient nur als Träger fur die separat zu plazierende Signalausleuchtung, die durch Verbinden mit dem folgenden Signal geschaltet wird. Durch die Verbindung ist sichergestellt, daß die Vorsignal-Anzeige am Signalmast immer mit dem Folgesignal übereinstimmt. In der EV bleibt nur noch aufzulisten, wann das Signalausleuchtungs-Objekt sichtbar sein soll. Dies ist nötig, weil die unterschiedlchsten Signalkombinationen mit deren Schaltzuständen möglich sind.

Die gekreuzten Signale zeigen den Urzustand vor dem Umbau der EV und werden ggf. ersetzt. Hier die Beispiele zum Grübeln:

B5 Vorsignal dunkel

Signal schaltet:

  • Signal: B5 1969 Hauptsignal+Vorsignal
  • Position: Jede Position

Bedingungen - Eine Bedingung muss erfüllt sein (ODER)

Signal steht auf Position:

  • Signal: B5 1969 Hauptsignal+Vorsignal
  • Position: 0 - Hp0
  • Negieren: 0

Signal steht auf Position:

  • Signal: B5 1969 Hauptsignal+Vorsignal
  • Position: 3 - Zs1
  • Negieren: 0

Aktionen

Sichtbarkeit setzen:

  • Objekt: B5 1969 Vorsignal Ausleuchtung
  • Zustand: Unsichtbar

VSc.jpg.be3dcd04e5e491a40bf0280ed9406da7VSd.jpg.9f8bde51f4355f595c0d7d38ff3b6508

Vorsignal leuchtet nicht: Hp0 und Zs1

B5 Vorsignal leuchtet

Signal schaltet:

  • Signal: B5 1969 Hauptsignal+Vorsignal
  • Position: Jede Position

Bedingungen - Eine Bedingung muss erfüllt sein (ODER)

Signal steht auf Position:

  • Signal: B5 1969 Hauptsignal+Vorsignal
  • Position: 1 - Hp1
  • Negieren: 0

Signal steht auf Position:

  • Signal: B5 1969 Hauptsignal+Vorsignal
  • Position: 2 - Hp2
  • Negieren: 0

Aktionen

Sichtbarkeit setzen:

  • Objekt: B5 1969 Vorsignal Ausleuchtung
  • Zustand: Sichtbar

VSa.jpg.7670d9111235e9261d9116ac20945065VSb.jpg.9a7ff868f1e1629b2426476d3a37bc00

Vorsignal leuchtet bei Hp1 und Hp2

soweit fürs Erste, grüßt ohne Variablen,

Henry

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

ich konnte die EV noch auf ein Ereignis komprimieren:

-----------------------------------------------------

B5 Vorsignal schalten

Signal schaltet:

  • Signal: B5 1969 Hauptsignal+Vorsignal
  • Position: Jede Position

Bedingungen - Eine Bedingung muss erfüllt sein (ODER)

Signal steht auf Position:

  • Signal: B5 1969 Hauptsignal+Vorsignal
  • Position: 0 - Hp0
  • Negieren: 0

Signal steht auf Position:

  • Signal: B5 1969 Hauptsignal+Vorsignal
  • Position: 3 - Zs1
  • Negieren: 0

Aktionen (wenn eine Bedingung zutrifft)

Sichtbarkeit setzen:

  • Objekt: B5 1969 Vorsignal Ausleuchtung
  • Zustand: Unsichtbar

Alternative Aktionen (wenn keine Bedingung zutrifft)

Sichtbarkeit setzen:

  • Objekt: B5 1969 Vorsignal Ausleuchtung
  • Zustand: Sichtbar

-----------------------------------------------------

auch das funktioniert ohne Variablen - man muß nur genau wissen, welche Signale kombiniert werden sollen.

So long grüßt

Henry

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Monat später...

Hallo Neo,

nochmals zu meinem Ausgangsbeitrag:

Beispiel-Kombinationen.jpg

Im obigen Bild wird an 3 Beispielen nochmals die Problematik dargestellt: Vorne steht ein Hauptsignal mit kombiniertem Vorsignal. Das Vorsignal soll die Stellung des hinteren Hauptsignals nur dann anzeigen, wenn das vordere Vorsignal nicht "Halt" zeigt. Sonst soll das Vorsignal dunkel geschaltet sein.

Auch wenn die von Lutz vorgeschlagene Lösung verblüffend einfach ist, benötigt sie doch pro Signalkombination, die so realisiert wird, ein zusätzliches Objekt für das dunkel geschaltete Vorsignal (außer bei Brummi's Hauptsignal, bei dem das dunkel geschaltete Vorsignal bereits integriert ist). Deshalb möchte ich hier nochmals mit einem möglichen Realisierungsvorschlag nachhaken:

Kannst Du Dir vorstellen, dass eine wie im folgenden "manipulierten" Bild angedeutete Realisierung mit überschaubarem Aufwand möglich wäre?

Signal-Verbindung.png

Zusätzlich zum "Umschalten" und den "dezidierten Signal-Einstellungen" wird ein weiterer Auswahlpunkt "Verbinden mit..." angeboten. Bei dessen Auswahl erscheint ein zusätzliches Auswahlfeld für das (hintere) Hauptsignal, mit dem das aktuelle Vorsignal verbunden werden soll. Wenn man nun als Bedingung "vorderes Hauptsignal zeigt Halt" verwendet und dann als Aktion unter "Bedingung erfüllt" den dezidierten "Aus-Zustand" des Vorsignals einstellt und als Aktion unter "Bedingung nicht erfüllt" die Einstellung aus dem obigen Bild verwendet, wäre die im Hauptbeitrag dieses Threads geschilderte Problematik gelöst.

Viele Grüße
BahnLand

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