BahnLand Geschrieben 28. Februar 2016 Teilen Geschrieben 28. Februar 2016 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 More sharing options...
FriLu Geschrieben 28. Februar 2016 Teilen Geschrieben 28. Februar 2016 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 More sharing options...
BahnLand Geschrieben 28. Februar 2016 Autor Teilen Geschrieben 28. Februar 2016 Hallo Lutz, gute Idee, auch wenn dann die Anzahl der Unterobjekte der betroffenen Vorsignale verdoppelt wird. Dafür erübrigt sich aber die sonst notwendige Schaltung am hinteren Hauptsignal. Danke für den Tipp. Viele Grüße BahnLand Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Goetz Geschrieben 28. Februar 2016 Teilen Geschrieben 28. Februar 2016 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: Variable "hinteres Signal" wird gesetzt - Wert 0 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 More sharing options...
BahnLand Geschrieben 28. Februar 2016 Autor Teilen Geschrieben 28. Februar 2016 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 More sharing options...
EASY Geschrieben 28. Februar 2016 Teilen Geschrieben 28. Februar 2016 (bearbeitet) Hallo BahnLand, sorry... habe meine Überlegung gerade wieder gelöscht... weil es das eigentliche Problen nicht lösen sondern verkomplizieren würde... Gruß EASY Bearbeitet 28. Februar 2016 von EASY Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Goetz Geschrieben 28. Februar 2016 Teilen Geschrieben 28. Februar 2016 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 More sharing options...
Wüstenfuchs Geschrieben 29. Februar 2016 Teilen Geschrieben 29. Februar 2016 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 More sharing options...
Henry Geschrieben 29. Februar 2016 Teilen Geschrieben 29. Februar 2016 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 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 Vorsignal leuchtet bei Hp1 und Hp2 soweit fürs Erste, grüßt ohne Variablen, Henry Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Henry Geschrieben 1. März 2016 Teilen Geschrieben 1. März 2016 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 More sharing options...
BahnLand Geschrieben 4. April 2016 Autor Teilen Geschrieben 4. April 2016 Hallo Neo, nochmals zu meinem Ausgangsbeitrag: 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? 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 More sharing options...
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