Jump to content

Empfohlene Beiträge

Geschrieben

Kurztoturial [05] - Wie man (zufällige) Verzögerungen einbaut, damit die Zugfolge nicht so dicht ist

Zuerst möchte ich dir zeigen, wie du eine Verzögerung mit fester Dauer in das Ereignis "schieben" kannst. Das sieht dann so aus.
VerzgerungmitfesterDauer.thumb.jpg.044987aa1fde4c5b9d5f95b59a7925d7.jpg
Hier wird die Ausfahrt für den Nachbar erst 120 Sekunden später gestellt.

Wenn du das hinbekommen hast, kannst du im nächsten Schritt probieren, die Dauer zufällig zu gestallten.
VerzgerungmitzuflligerDauer.thumb.jpg.95cd67d2afbc172a3a691c645d82b097.jpg
Dafür musst du Zahl (Zufall) auswählen. Unter (1) trägst du die minimale Zeit ein und unter (2) die maximale Zeit. Im Ereignis steht dann auch [minimale Zeit] bis [maximale Zeit].

Viele Grüße
Tim

Geschrieben

Kurztutorial [06] - Wie programmiere ich eine vollautomatische Zugnummernanzeige mit zwei Ereignissen?

Welche Variablen muss ich wo eintragen:
VariablenzuweisungfrGleiskontaktZugnummeranzeigeanzeigen.thumb.jpg.2f26cb10c833fe9f4c8b9840f073e858.jpg
Zuerst benötigt man ein oder mehrere Textfelder, worin später der Zugnamen automatisch hineingeschrieben werden soll. Man platziert für jede Einfahrt in ein Gleis einen Gleiskontakt und weist ihm das Schlagwort "Zugnummer anzeigen" hinzu. Dann erstellt man die Objektvariable Textfeld Zugnummeranzeige und wählt das passende Textfeld aus.
VariablenzuweisungfrGleiskontaktZugnummeranzeigelschen.thumb.jpg.5cf2cbca26a71274631f8883fc9669d7.jpg
Dasselbe macht man nun für die Ausfahrt aus einem Gleis.


Was sind erweiterte Variablen und Eigenschaften?
Kurz gesagt versteckt sich dahinter das Konzept von Objekt Orientiertem Programmieren (kurz OOP). Man kann sich das in etwa so vorstellen. Man baut einen Bauplan mithilfe der EV und legt genau fest, welche Eigenschaften und Variablen ein Objekt (das ist hier der Gleiskontakt) besitzen kann. In einer Anlage können also mehrere Objekte wie Gleiskontakte den gleichen Variablennamen haben wie zum Beispiel Textfeld Zugnummeranzeige. Das ist ganz praktisch, weil man nicht für jedes Objekt ein einzelnes Ereignis schreiben muss. Nur der Inhalt also der Bezug zum Objekt bzw. Gleiskontakt ist ganz individuell und abhängig davon, welcher Wert in der erweiterten Variable steht, verhält sich auch die EV intern ganz verschieden. Es gibt verschiedene Variablenbezüge. Hier ist ein Auszug welche du bereits in deiner Anlage verwendet hast und noch werden wirst:

  • Objekt: Hier wählt man Objekte wie Signale oder auch Schalter etc. aus.
  • Fahrstraße: Hier wählt man Fahrstraßen aus, die zu einem Objekt gehören

Nun, was sind Eigenschaften eines Objekts? Das sind interne Bezüge die, Neo in seinem Programm festgelegt hat. So hat ein Objekt immer den Namen als Eigenschaft. Manche Objekte habe je nach Ausstattung aber noch mehrere Eigenschaften

Wie wird der Zugname angezeigt?
Zugnummeranzeigen.thumb.jpg.44b8f6a08fb89ed0868d249e4b2abd47.jpg
Jeder Gleiskontakt ist ein Objekt und besitzt die erweiterte Variable. Der Gleiskontakt kennt also seine individuelle Zugnummernanzeige, die man in den Objektvariablen unter den Namen "Textfeld Zugnummeranzeige" abgespeichert hat. Die Zugnummernanzeige steht also in Beziehung mit dem Gleiskontakt, mit dem das Ereignis ausgelöst wird. Das Ereignis Gleiskontakt wird betreten hat aber zwei Auslöser. Einmal den Gleiskontakt und einmal das Fahrzeug. Nun möchten wir aber nicht den Namen also die Eigenschaft des Gleiskontaktes anzeigen, das wäre ja irgendwie komisch, sondern die des Fahrzeuges. Deswegen muss man genau darauf achten, was man als Auslöser ausgewählt. 

Wie wird der Zugname wieder gelöscht?
Zugnummerlschen.thumb.jpg.d093073bf2ac104b06d300193640efaa.jpg
Hier ist es eigentlich ganz simpel, da das Ereignis Gleiskontakt wird verlassen (Zugnummer löschen) dem Ereignis Zugnummer anzeigen ziemlich ähnelt bis darauf, dass hier der Text leer ist und somit die Zugnummer gelöscht wird.

Viele Grüße
Tim

Geschrieben (bearbeitet)

Kurztutorial [07] - Wofür kann man Wiederholungen einsetzen und wie funktionieren diese? (Viele Wege führen nach Rom)

 

keine Wiederholung

Angenommen man möchte vier Biergartenlaternen mit einem Schalter an und ausschalten. Wie könnte man da vorgehen? Nun man kann
DemokeineWiederholung.thumb.jpg.33047e06ee18a8c13907d89eba262c8c.jpg
Hier habe ich den integrierten Schalter, der in V9 neu hinzugefügt wurde, angesprochen, der wesentlich einfacher anzusprechen ist als die Animationen.

jede einzelne Laterne in der EV direkt ansprechen. Das ist aber sehr aufwändig und wenn man eine Laterne hinzufügen möchte, muss man viermal an zwei Stellen die EV verändern. Einmal dort, wo die Laterne ausgeschaltet werden soll und an anderer Stelle, wo die Laterne eingeschaltet werden soll. Gibt es eine bessere und einfachere Lösung? Die Antwort lautet ja und hier kommen Wiederholungen ins Spiel. Wiederholungen sind also dann immer gut, wenn ein und dieselbe Sache mehrmals wiederholt werden kann.

Wie sieht eine Wiederholung in der EV aus?
WiesiehteineWiederholungaus.thumb.jpg.2503cebc27aa779fd9a8fe2b9378bcbf.jpg

Erstmal ist eine Wiederholung immer braun gefärbt. Oben steht der Schleifenkopf. Im Schleifenkopf wird die Art der Wiederholung wie zum Beispiel für alle Fahrstraßen mit einem Schlagwort festgelegt. Im Schleifenkörper werden dann die Elemente der Wiederholung durch einen Platzhalter angesprochen. @Wdh ist schon vor belegt. Man kann aber diesen Iterationsnamen jederzeit abändern. Wichtig! In Schleifen darf alles hinzugefügt werden außer Verzögerungen und der Platzhalter muss identisch mit dem im Schleifenkopf und denen im Schleifenkörper lauten.

Wiederholung mittels Schlagwörtern
DemoWiederholungmittelsSchlagwrtern.thumb.jpg.7d4bd457791ae4e80cb124f5a6a2a657.jpg
Zuerst (1) wählt man das Objekt direkt aus, damit man die richtige Schaltereigenschaft, hier lautet sie Licht, verwendet und sich nicht vertippt. Dann (2) ändert man das Objekt zur Wiederholung. Zuletzt (3) stellt man sicher, dass der Iterationsname aus dem Schleifenkörper identisch mit dem aus dem Schleifenkopf lautet. Hier sieht man, dass man statt acht Einträgen nur noch zwei Einträge benötigt. Die Schleife spricht alle Objekte auf der Anlage an, die das Schlagwort "Laterne" besitzen.

Wiederholung mittels einer Liste (Variante A)
Getreu dem Motto "Viele Wege führen nach Rom" kann man auch statt einer Wiederholung für Objekte mit einem Schlagwort auch die Wiederholung mittels einer Liste verwenden. Das sieht dann so aus.
DemoWiederholungmittelsListe-VarianteA.thumb.jpg.e3b0439d0a94da7c2751531c1bde623c.jpg
Der Schleifenkörper bleibt unverändert. Allerdings wurde der Schleifenkopf verändert und hier wurde zuerst vier Laternen mit STRG + C kopiert und dann oben in die Liste im Schleifenkopf selbst eingefügt.

Wiederholung mittels einer Liste (Variante B)
DemoWiederholungmittelsListe-VarianteB.thumb.jpg.81f0ab89b949d3d48b448cc3c579a186.jpg
Hier ist die Wiederholung genau dieselbe wie zuvor nur mit dem Unterschied, dass über die erweiterte Variable die Liste angesprochen wird, über die später jedes einzelne Element aus der Liste angesprochen werden soll. Im Schalter (Auslöser) selbst werden die Biergartenlaternen und der dem Namen Laternen abgespeichert und das Schlagwort Schalter Laterne wird vergeben. Das hat den entschiedenen Vorteil, das nun mehrere Schalter in der Anlage platziert werden können und jeder Schalter (Auslöser) seine dazugehörigen Biergartenlaternen kennt.

Dazu habe ich hier eine Beispielanlage gebaut:
Demoanlage - verschiedene Wiederholungen.mbp



Die Demoanlage soll dazu anregen, die Wiederholung an die eigene Bedürfnisse anzupassen. So kann man eine Gleisbesetzmeldeanlage daraus kreieren, indem man statt dem Ereignis Schalter wird betätigt, das Ereignis Gleiskontakt wird betreten verwendet. Anstatt den integrierten Schalter verwendet man den GBS-Baustein als Signal.

Viele Grüße
Tim

Bearbeitet von tim-fischertechnik

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