Jump to content

Ereingissteuerung, erweitern.


ernesto

Empfohlene Beiträge

Hallo Leute,

ich verfolge Eure Beiträge von Anfang an. Es wäre schön, wenn Ihr mal einige Experimentelle Anlagen veröffentlichen könntet damit man sich mal die von Euch geschriebenen Ereignisverwaltungen ansehen kann. Ich glaube das viele Mitglieder in diesem Bereich nicht so fit sind und  damit wesentlich mehr anfangen können als nur das geschrieben nach zu vollziehen.

Das Betrifft natürlich nur die schon vielseitigen, machbaren Dinge.

Gruß

FeuerFighter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

es sind jetzt sehr viele Vorschläge für Erweiterungen genannt worden. Ich denke freie wählbare Variablen für beliebige Objekte, die anschließend in der Ereignisverwaltung angesprochen werden können, ist mit relativ wenig Aufwand möglich. Über ein zweites Aktionsfeld für negative Bedingungen muss ich mir zunächst Gedanken machen wie das aussehen könnte und ob es nicht eine einfachere Lösung gibt.

Generell sehe ich im Moment aber das Problem, dass die Ereignisverwaltung mit jeder neuen Erweiterung irgendwann zu komplex und überladen für den Einsteiger wird. Mir ist klar, dass nicht jeder gleich die Steuerschnittstelle über ein eigenes Programm ansprechen will, aber ich glaube, dass komplexe Ereignisverwaltungen nie über eine einfache GUI abgebildet werden können. Für mich klingt das nach einer Zwischenlösung, und zwar nach einer Scriptsprache, mit der man eigenen Code direkt im Studio ausführen kann, um z.B. eine Bedingung zu prüfen oder eine Aktion auszuführen.

Soll heißen, je mehr Funktionen gewünscht sind, desto mehr muss darüber nachgedacht werden, die Ereignisse zu "programmieren" statt nur zu konfigurieren.

Viele Grüße,

Neo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Neo,

ich stimme Dir zu, das die Verwaltung schnell unübersichtlich und für Neueinsteiger schwer durchschaubar wird. Mit den angesprochenen frei wählbaren Variablen kann man bestimmt viele Ereignisse einsparen ( siehe Anlage Komfort-Blocksteuerung, wo ich jede Lok vor jedem Signal abfragen musste), vlt. erübrigt sich dann das 2te Aktionsfeld ;).

Mal was anderes:

Bei Ereignissen wird ja der gesamte Zug berücksichtigt ( meint, bei Zug betritt ein Gleis wird bei Zugspitze geschaltet ), bei zus. Bedingungen werden Lok und Wagen getrennt behandelt. Einerseits gut ( Fahrtrichtungserkennung, Wagenzähler, Besetztanzeige, Rangiermöglichkeiten usw. ) andererseits wird eine Auswertung erschwert ( wenn ein Zug auf dem abgefragten Gleis steht, die Lok aber auf einem benachbarten ).

Kann man da eine "umschaltmöglichkeit" einbauen, also zwischen LOK/WAGEN und  ZUGVERBAND ( der den Namen der Lok hat ) unterscheiden?

MfG Lutz

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen,

ich möchte noch einmal auf einen Punkt eingehen, den Lutz bereits in diesem Kommentar angesprochen hat:

Verknüpfung von Variable und Lok-/Zug-Geschwindigkeit.

Wenn man verschiedenen Zügen unterschiedliche "Reisegeschwindigkeiten" zuordnen möchte (auf meiner 18-Zug-Anlage sind heute alle Züge -, egal ob Schienenbus oder ICE - gleich schnell), kommt man meiner Ansicht nach nicht umhin, vor dem Abbremsen oder Anhalten eines Zuges dessen Reisegeschwindigkeit festzustellen, um diese beim erneuten Starten oder Beschleunigen des Zuges wieder zuweisen zu können. Da die Anhalte- und Start-Vorgänge hierbei Orts-bezogen, aber im Allgemeinen nicht auf konkrete Züge bezogen sind, hilft es meiner Ansicht nach wenig, jedem Zug vorab eine feste Variable mit vorgegebener Reisegeschwindigkeit zuzuweisen (wie in diesem Kommentar skizziert). Denn wenn man die Ereignisabfrage nicht speziell für jeden einzelnen Zug durchführt (Mengenproblem), sondern nur das Gleis für "[Alle Loks]" auswertet, sind weder der das Ereignis (z.B. "Zug betritt Gleis") auslösende Zug (die Lok) noch die ihm (ihr) zugeordnete Geschwindigkeits-Variable bekannt.

Wenn man dagegen die aktuelle Geschwindigkeit des Zuges (der Lok), welche(r) das Gleis-Ereignis auslöst, direkt in eine Variable übertragen könnte, die nicht dem Zug oder der Lok, sondern (logisch) dem Gleisabschnitt zugeordnet ist, und wenn man umgekehrt für die Geschwindigkeits-Zuweisung für eine Lok ("Lokgeschwindigkeit setzen") einen Variablen-Wert verwenden könnte, hätte man ein allgemeines Mittel an der Hand, mit dem man individuelle Zuggeschwindigkeiten über einen Halt oder eine Langsamfahrstelle "hinüber-retten" könnte. Außerdem wäre es so auch möglich, durch einen Vorzeichenwechsel die Fahrtrichtung der Lokomotive ändern zu können, ohne vorher wissen zu müssen, ob die Lok ursprünglich "vorwärts" (positive Geschwindigkeit) oder "rückwärts" (negative Geschwindigkeit) gefahren ist.

Ich schlage daher für die Ereignisverwaltung folgende neue Aktionen vor:

1.  Lokgeschwindigkeit in Variable speichern

Variable_setzen.png

2.  Lokgeschwindigkeit aus Variable übernehmen

Variable_verwenden.png

Hiermit könnte man beispielsweise folgendes Szenario realisieren, bei dem ein Zug auf einem "Haltegleis" gestoppt wird, dem ein "Bremsgleis" vorgelagert ist, um den Zug vorher auf "Annäherungs-Geschwindigkeit" abzubremsen. Beim erneuten Starten des Zuges wird der Lok wieder die ursprüngliche Reisegeschwindigkeit zugewiesen.

  • Zug nähert sich mit Reisegeschwindigkeit einem Halteabschnitt.
  • Zug löst beim Einfahren in ein "Bremsgleis" das Ereignis "Zug betritt Gleis" aus.
  • Über die Aktion "Lokgeschwindigkeit in Variable speichern" wird die aktuelle Reisegeschwindigkeit in einer dem Halteabschnitt zugeordneten "Geschwindigkeits-Variablen" hinterlegt.
  • Einer zweiten Variable wird der halbe Wert der soeben versorgten Geschwindigkeits-Variable zugewiesen, die anschließend über die Aktion "Lokgeschwindigkeit aus Variable übernehmen" der einfahrenden Lok über die Zuordnung zum Bremsgleis zugewiesen wird. Stattdessen könnte man der Lok auch eine feste "Annäherungs-Geschwindigkeit" an das in kurzem Abstand folgende Haltegleis zuweisen.
  • Sobald der Zug das "Haltegleis" erreicht, wird über dessen Ereignis "Zug betritt Gleis" die Aktion "Lokgeschwindigkeit setzen" mit Geschwindigkeit "0" ausgeführt (Zug wird angehalten).
  • Beim Starten des Zuges (z.B. über das Ereignis "Signal schaltet" (wird geöffnet)), wird die Aktion "Lokgeschwindigkeit aus Variable übernehmen" ausgeführt, wobei der Wert der dem Halteabschnitt zugeordneten "Geschwindigkeits-Variablen" der auf dem Haltegleis stehenden Lok zugewiesen wird.
  • Der Zug beschleunigt nun auf seine ursprüngliche Reisegeschwindigkeit, die bei der Einfahrt in den Halteabschnitt in deren Geschwindigkeits-Variable abgespeichert wurde.

Dieser Mechanismus funktioniert unabhängig davon, wie hoch die dem aktuell haltenden Zug zugeordnete Reisegeschwindigkeit ist, und auch unabhängig davon, ob die dem Zug vorgespannte Lok gerade "vorwärts" oder "rückwärts" fährt (dieses Prädikat bezieht sich ausschließlich auf die "Orientierung" der Lok und nicht auf die Fahrtrichtung des Zuges).

Da das Vorzeichen der Lok-Geschwindigkeit in die Geschwindigkeits-Variable mit übernommen wird, lässt sich hierdurch auch ganz einfach ein Fahrtrichtungs-Wechsel der Lok realisieren, wie er beispielsweise im Kopfbahnhof benötigt wird, um beim Lokwechsel an den zu übernehmenden Zug anzukuppeln oder nach Abfahrt des Zuges mit der neuen Lok die alte Lok aus dem Bahnhofsgleis herausfahren zu lassen. Eine "hingetrickste" Lokdrehung um 180°, wie beim Kopfbahnhof der 18-Zug-Anlage realisiert, um stets zu garantieren, dass eine an der Spitze des Zuges befindliche Lok stets "vorwärts" fährt,  ist dann nicht mehr notwendig.

Viele Grüße
BahnLand

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jaaa, BahnLand,

Du sprichst mir aus der Seele :).

Ich knobele gerade an einer Auswertung, ob die Lok positive oder negative Geschwindigkeit hat ( mit Bordmitteln ), die bisher gefundene Lösung mit "Walzer" ( kurz hin und her fahren und gleiswechsel auswerten ) ist nicht befriedigend.

Gruss, Lutz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Von mir auch ein großes JAAAA,

dann könnte man eventuell mit Schaltern  jeder x-beliebigen Lok vorübergehen nur einen Fahrtregler zuweisen für die Handsteuerung

(vorausgesetzt dieser lasse sich dann durch die Variable manipulieren), würde dann dort eventuell gleich die momentane Geschwindigkeit ablesen und regeln können,

egal wo sich der Zug auf der Anlage befindet (sichtbarer oder nicht sichtbarer Bereich).

freudig gespannte Grüße, was noch so kommt

Rasender Roland

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

diese Art der Variablenerweiterung habe ich vorgesehen. Es wird jedoch nicht über eine gesonderte Aktion laufen, sondern die bereits vorhandenen Aktionen werden erweitert, sodass z.B. im Geschwindigkeitsfeld direkt der Wert einer Variable gesetzt werden kann. Diese flexiblen Felder wird es dann auch bei anderen Aktionen geben.

Viele Grüße,

Neo

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