Jump to content
This page is currently only available in German, but can be translated to English with the help of Google Translate.
  • Ereignisverwaltung (Grundlagen)

    Eine virtuelle Modellbahnanlage spiegelt eine kleine Miniaturwelt wider. Wirklich perfekt wird diese Welt jedoch erst, wenn Züge durch die Landschaft fahren, am Bahnhof rangieren, Signale und Weichen schalten oder Autos an geschlossenen Schranken auf den vorbeifahrenden Zug warten. Während im spielerischen Betrieb diese Abläufe durch den Nutzer gesteuert werden, gibt es häufig auch den Bedarf solche Abläufe zu automatisieren. An diesem Punkt kommt die integrierte Ereignisverwaltung ins Spiel, ein Werkzeug, mit dem die gesamte Simulation einer Modellbahnanlage durch das Programm automatisiert wird.

    Grundlagen

    Jede Änderung auf der Anlage löst ein Ereignis aus: ein Zug betritt ein Gleis, eine Weiche schaltet, ein Schalter wird betätigt usw. Auf diese und andere Ereignisse können Sie mit beliebigen Aktionen reagieren, z.B. Stoppen einer Lok oder Schließen einer Schranke. Durch die Kombination von Ereignissen und den auszuführenden Aktionen können Sie Ihre gesamte Modellbahnanlage individuell automatisieren.

    EV1.thumb.jpg.7dcdbd92dc28ec58c25e83388d2e5140.jpg

    Um auf ein Ereignis zu reagieren, müssen Sie zunächst das konkrete Ereignis angeben:

    • Klicken Sie mit der rechten Maustaste auf ein Objekt (z.B. ein Gleis), auf dessen Ereignis Sie reagieren möchten.
    • Im Menüpunkt Ereignisse erscheint unter Neu eine Auflistung aller Ereignisse, die von dem markierten Objekt ausgelöst werden.
    • Wählen Sie ein Ereignis aus, um einen neuen Eintrag in der Ereignisverwaltung zu erstellen

    Tipp: Alternativ können Sie die Ereignisverwaltung auch über den Menüpunkt "Extras - Ereignisverwaltung" aufrufen und dort mit der Schaltfläche + ein neues Ereignis anlegen.

    EV2.thumb.jpg.e7bd15d4ddef1728f1f11b1745fbd33e.jpg

    Nach dem Erzeugen eines Ereignisses befinden Sie sich in der Ereignisverwaltung. Dieses Fenster listet im linken Bereich alle auf der Anlage definierten Ereignisse auf. Sie können diese zur besseren Struktur umbenennen und in eigene Unterordner (Ereignismodule) einsortieren.

    Im mittleren Bereich werden die Eigenschaften und Aktionen des gerade ausgewählten Ereignisses angezeigt. Ein Ereignis kann in verschiedenen Situationen ausgelöst werden, z.B. für ein bestimmtes Gleis, für beliebige Gleise oder für alle Gleise mit einem bestimmten Schlagwort (siehe weiter unten).

    Wird das Ereignis ausgelöst, führt 3D-Modellbahn Studio alle Aktionen der Reihe nach aus, die im mittleren Bereich angegeben wurden. Sie können beliebig viele Aktionen zu einem Ereignis hinzufügen und bequem per Drag&Drop verschieben.

    Markieren Sie eine Aktion, erscheint im rechten Bereich eine Auflistung aller Eigenschaften, die die Aktion genauer spezifizieren.

    Bedingungen

    Häufig dürfen Aktionen nur unter bestimmten Bedingungen ausgeführt werden. Ein Personenzug z.B. soll in einem Bahnhof zum Stehen kommen, ein Güterzug soll hingegen durchfahren. Alle Aktionen in der Ereignisverwaltung lassen sich optional durch (verschachtelte) Bedingungen eingrenzen:

    Bedingungen.thumb.jpg.63d7f4bca5bf4c53a8cf60fa7e5b9e10.jpg

    Jede Bedingung kennt zwei Pfade:

    1. Ist die Bedingung erfüllt, werden die Aktionen oberhalb der schwarzen Trennlinie ausgeführt.
    2. Ist die Bedingung NICHT erfüllt, werden die Aktionen unterhalb der schwarzen Trennlinie ausgeführt.

    Jeder Pfad kann wiederum eigene Bedingungen mit untergeordneten Aktionen enthalten. Die Eigenschaften einer Bedingung werden wie die Aktionen im rechten Bereich konfiguriert. Zusätzlich kann eine Bedingung aus Teilbedingungen bestehen, die logisch miteinander verknüpft sind:

    • Klicken Sie auf Weitere Bedingung hinzufügen, es öffnet sich ein neues Fenster mit einer Übersicht aller Teilbedingungen
    • Wählen Sie als Verknüpfung entweder UND (alle Teilbedingungen müssen erfüllt sein) oder ODER (mindestens eine Teilbedingung muss erfüllt sein).
    • Fügen Sie eine Gruppe hinzu, um Bedingungen zu verschachteln. Jede Gruppe kann eine unterschiedliche Verknüpfung besitzen.

    Wertetypen

    Jede Aktion und jede Bedingung besitzen verschiedene Eigenschaften, die vom Nutzer entsprechend gesteuert werden können. Eine Aktion "Fahrzeuggeschwindigkeit setzen" benötigt z.B. die Angabe eines Fahrzeugs und der Geschwindigkeit. Diese Angaben können zum einen fest vordefiniert, zum anderen aber auch "parametrisiert" werden, d.h. der Wert der Eigenschaft soll vom Programm dynamisch ermittelt werden.

    Wertetypen.jpg.f7eb0e0b65318b49587e5365bdcccf94.jpg

    Die Quelle einer Eigenschaft wird über das Zahnradsymbol neben der Eigenschaft gesetzt:

    • Boolescher Wert - Die Eigenschaft ist entweder WAHR oder FALSCH.
    • Zahl - Die Eigenschaft (z.B. eine Geschwindigkeitsangabe) ergibt sich aus einer Zahl (ganze oder reelle Zahl).
    • Zahl (Zufall) - Die Eigenschaft ergibt sich aus einer Zahl, die zufällig im angegeben Bereich ermittelt wird.
    • Text - Die Eigenschaft ergibt sich aus einer Zeichenkette. Auch Zahlen werden in diesem Fall als Text interpretiert.
    • Schlagwort - Die Eigenschaft ist ein Schlagwort, siehe weiter unten.
    • Zeit - Die Eigenschaft enthält eine Zeitangabe in der Form hh:mm (Stunden:Minuten)
    • Objekt - Die Eigenschaft enthält eine Referenz zu einem Objekt auf der Anlage
    • Objekt (Name) - Die Eigenschaft enthält eine Referenz zu einem Objekt auf der Anlage, das einen bestimmten Namen besitzt. Diese Option sollte nur für Objekte gewählt werden, deren Namen einmalig sind, da das Ergebnis sonst undefiniert ist.
    • Ereignis/Modul - Die Eigenschaft enthält eine Referenz zu einem Ereignis bzw. einem Ereignismodul.
    • Auslöser - Die Eigenschaft enthält einen Wert, der mit der Auslösung des aktuellen Ereignisses in Verbindung steht, siehe weiter unten.
    • Eigenschaft - Die Eigenschaft enthält einen Wert, der in einer anderen Eigenschaft eines Objekts enthalten ist.
    • Variable - Die Eigenschaft enthält einen Wert aus einer Variable, siehe weiter unten.
    • Variable (Erweitert) - Die Eigenschaft enthält einen Wert aus einer Variable, deren Speicherort dynamisch angegeben werden kann.

    Nicht jede Quelle steht für jede Eigenschaft zur Verfügung. Soll z.B. ein Fahrzeug in einer Aktion angegeben werden, macht eine Eigenschaft vom Typ Zahl oder Text keinen Sinn. Das Programm zeigt automatisch nur die Typen an, die von der aktuellen Eigenschaft unterstützt werden.

    Auslöser

    In vielen Aktionen und Bedingungen können als Eigenschaft Auslöser angegeben werden. Ein Auslöser ist ein Wert, der in direktem Zusammenhang mit dem Ereignis steht. Betritt ein Fahrzeug z.B. ein Gleis, dann ist das Fahrzeug und das Gleis ein Auslöser des Ereignisses.

    EV2.thumb.jpg.e7bd15d4ddef1728f1f11b1745fbd33e.jpg

    Auslöser sind ein mächtiges Werkzeug, um mit einer Aktion verschiedene Objekt anzusteuern. Im oben gezeigten Beispiel referenziert die Aktion "Fahrzeuggeschwindigkeit setzen" das auslösende Fahrzeug. Das Ergebnis ist, dass jedes Fahrzeug, das das Gleis betritt, zum Stehen gebracht wird, ohne das Fahrzeug selbst zu kennen.

    Timer

    Auf vielen Modellbahnanlagen sollen in regelmäßigen Abständen wiederkehrende Aktionen ausgeführt werden, wie z.B. das Aktualisieren einer Bahnhofsuhr. Für solche wiederkehrenden Aktionen eignen sich Timer, die in der Ereignisverwaltung über das +-Symbol erstellt werden.

    Jedes Ereignismodul besitzt eine beliebige Anzahl eigener Timer. Läuft ein Timer ab, löst dieser ein Ereignis aus und führt die angegebenen Aktionen aus.

    Verzögerungen

    Neben den Timern ermöglichen Verzögerungen eine noch feiner Zeitsteuerung. Soll ein Zug für eine kurze Zeit in einem Bahnhof zum Stehen gebracht werden, um anschließend die Fahrt wieder fortzuführen, genügt die Angabe der Aktion Ausführung verzögern.

    813366204_Verzgerung.thumb.jpg.e11886a36457531188eff4b84adcff57.jpg

    Im gezeigten Beispiel wird ein Zug gestoppt und erst nach Ablauf von 10 Sekunden erneut gestartet. Jedes Ereignis unterstützt beliebige viele "Ausführung verzögern"-Aktionen, sodass ein Ereignis auch mehrfach unterbrochen werden kann.

    Verzögerungen reduzieren im Gegensatz zu eigenständigen Timern die Anzahl der benötigten Ereignisse und sind die erste Wahl, wenn es sich um einmalige Wartezeiten handelt. Zudem unterstützt die verzögerte Ausführung mehrere "Instanzen". Das bedeutet, dass ein Ereignis auch ein zweites Mal ausgelöst werden kann, selbst wenn das vorherige Ereignis durch eine Verzögerung noch nicht vollständig abgeschlossen ist.

    Schlagwörter

    Auf jeder Modellbahnanlage gibt es unterschiedliche Züge, die sich in bestimmten Situationen unterschiedlich verhalten sollen. Während ein Personenzug im Bahnhof Passagiere einlädt, nimmt ein Güterzug das Durchfahrtsgleis ohne zu Stoppen. Schlagwörter ermöglichen die Klassifizierung solcher Züge, in dem der Nutzer den Loks und anderen Objekten beliebige Eigenschaft zuweist.

    Schlagwort.thumb.jpg.eef5dbf7f1117acb1ce4f9e9cf3ea67b.jpg

    • Klicken Sie mit der rechten Maustaste auf ein Objekt und wählen Sie im Context-Menü die Schaltfläche Schlagwörter/Variablen.
    • Klicken Sie auf das +-Symbol und fügen Sie beliebige Schlagwörter hinzu.

    Sie können jedem Objekt auf der Anlage beliebige Schlagwörter zuteilen. Nutzen Sie die Kopier- und Einfügeoptionen, um Schlagwörter auf verschiedene Objekte zu verteilen.

    Durch Klassifizierung von Objekten stehen neue Möglichkeiten zur Verfügung:

    • Ein Ereignis kann für alle Objekte auslösen, die ein bestimmtes Schlagwort besitzen.
    • Eine Bedingung ist nur dann erfüllt, wenn ein Objekt ein bestimmtes Schlagwort besitzt.

    Zusammengefasst ermöglichen Schlagwörter die Vereinfachung von Ereignissen, da nicht für jeden Zug ein eigenes Ereignis definiert werden muss, sondern lediglich für jede Zugklasse.

    Variablen

    Variablen erweitern das Konzept der Schlagwörter um benutzerdefinierte Eigenschaften. Ein kurzer Zug beschleunigt schneller als ein langer Zug, wobei verschiedene Aktionen je nach Zuglänge vermieden werden sollen. Durch Zuweisung einer Eigenschaft zu jedem Zug genügt die Angabe einer einzelnen Aktion, um beliebige Züge auf die jeweils im Zug hinterlegte Zielgeschwindigkeit zu bringen.

    Variable.jpg.4a928686fea9b9a0efdaa28d8d58368a.jpg

    • Klicken Sie mit der rechten Maustaste auf ein Objekt und wählen Sie im Context-Menü die Schaltfläche Schlagwörter/Variablen.
    • Klicken Sie auf das +-Symbol und fügen Sie eine beliebige Variable hinzu, z.B. eine Zahl für die Angabe einer Geschwindigkeit (in km/h).

    Im oben gezeigten Beispiel wurde jeder Lokomotive die Variable Reisegeschwindigkeit zugeteilt. Betritt nun ein Zug einen Gleiskontakt, wird der Zug auf die Geschwindigkeit beschleunigt, die in der Variable Reisegeschwindigkeit der auslösenden Lokomotive hinterlegt ist.

    Benutzerdefinierte Ereignisse

    Sollen verschiedene Ereignisse gleiche oder ähnliche Aktionen ausführen, ist es oft mühselig, diese Aktionen mehrfach zu definieren. Abhilfe schaffen hier benutzerdefinierte Ereignisse, die Aktionen und Bedingungen zusammenfassen können:

    • Klicken Sie auf + -> Ereignis -> Benutzerdefiniert, um ein benutzerdefiniertes Ereignis anzulegen.
    • Fügen Sie beliebige Aktionen und Bedingungen hinzu.
    • Wechseln Sie zu einem anderen Ereignis und fügen Sie die Aktion Benutzerdefiniertes Ereignis auslösen hinzu, um die zusammengefassten Aktionen und Bedingungen auszuführen.

    Zusätzlich können Sie dem benutzerdefiniertem Ereignis beliebige Informationen mitgeben, um die darin enthaltenen Aktionen und Bedingungen zu parametrisieren:

    • Aktivieren Sie das benutzerdefinierte Ereignis und klicken Sie auf Parameter, um eine beliebige Liste von Informationen (Parameter) zu definieren.
    • Jeder Parameter stellt einen Auslöser dar, auf den in den Aktionen und Bedingungen zugegriffen werden kann.
    • Wechseln Sie zurück zur Aktion Benutzerdefiniertes Ereignis auslösen eines anderen Ereignisses, um den Inhalt der Parameter festzulegen.

    Programmierung mit Lua

    Während die Aktionen und Bedingungen alle praxisrelevanten Steuerungsaufgaben abdecken, ermöglicht das 3D-Modellbahn Studio durch Unterstützung der Skriptsprache Lua die zusätzliche Automatisierung mit Hilfe einer Programmiersprache, wodurch auch komplexeste Logiken implementiert werden können, die über eine einfache Abarbeitung von Aktionen und Bedingungen hinaus gehen. Weitere Informationen finden Sie im Hauptartikel Ereignisverwaltung mit Lua.

    Gleiskontakte

    Im Zusammenhang mit der automatischen Steuerung der Modellbahnanlage sind Gleiskontakte ein hilfreiches Werkzeug. Ein Gleiskontakt ist ein auf einem Gleis oder einer Straße frei positionierbares Objekt, welches immer dann ein Ereignis auslöst, wenn ein Fahrzeug den Kontakt berührt.

    Gleiskontakt.thumb.jpg.9dad80addeef263dc85451e5d7b40470.jpg

    Gleiskontakte finden Sie im Online-Katalog in der Kategorie Schlagwörter / Gleiskontakte. Ein Kontakt, der auch in einem Signal oder einem anderen mit einem Gleis verbundenen Objekt enthalten sein kann, kennt zwei Richtungen, die getrennt voneinander aktiviert oder deaktiviert werden können. Ein Gleiskontakt löst nur dann aus, wenn ein Fahrzeug in die Richtung fährt, in die der Kontakt zeigt.

    Insgesamt unterstützt ein Gleiskontakt 3 Arten von Berührungen:

    • Betreten - Der Kontakt wird ausgelöst, wenn die Spitze des Zugs den Kontakt berührt.
    • Betreten (Fahrzeugmitte) - Der Kontakt wird ausgelöst, wenn die geometrische Mitte eines Zugs den Kontakt überfährt. Hilfreich, um z.B. Loks auf Drehscheiben mittig zum Stehen zu bekommen.
    • Verlassen - Der Kontakt wird ausgelöst, wenn ein Zug den Kontakt verlässt.

    Weitere Informationen

    Die Automatisierung von komplexen Anlagen kann eine aufwendige Aufgabe sein. Gerade zum Erlernen der vielfältigen Möglichkeiten der Ereignisverwaltung eignen sich die Beispielanlagen aus dem Online-Katalog (Tutorial-Anlagen) und dem Forum , speziell aus dem Bereich Anleitungen und Tutorials.

    Verhält sich die Steuerung einmal nicht wie geplant, bietet die Ereignis-Protokollierung (Menü Extras) wertvolle Informationen über die ausgelösten Ereignisse und Aktionen sowie die Zustände von Variablen und Timern.

    Sign in to follow this  



×