aloys63 Posted October 13 Posted October 13 Wie benutze ich den Index bei Listen oder Tabellen wo ist der unterschied und wie geht das mit Mehrfach Bedingung und wo führ Habe schon Listen gebe bei Index immer Zufall zahl ein auch Wiederholung habe ich schon lauft auch alles ob die Wiederholung in der Anlage notwendig ist weis ich nicht
Herman Posted October 13 Posted October 13 1 hour ago, aloys63 said: ob die Wiederholung in der Anlage notwendig ist weis ich nicht Hallo @aloys63 , Die Wiederholung ist wichtig, um alle Objekte in der Liste durchzugehen. Der Index der Liste ist numerisch. Eine Tabelle kann Text als Index haben. Wenn Sie spezifischere Fragen zu Listen/Tabellen haben, werden Ihnen sicherlich erfahrenere Mitglieder weiterhelfen. Grüße Herman
prinz Posted October 13 Posted October 13 Hallo @aloys63 , Ich versuche mich mal an einer Antwort. Ich lese folgende Fragen aus deinem Post heraus: 1. Was ist der Unterschied zwischen Listen und Tabellen Eine Liste enthält eine Reihe von gleichartigen Objekten, eine Tabelle kann unterschiedliche Objekttypen beinhalten. In einer Liste wird die angezeigte Zahl (im Feld Namen) als Index genutzt, bei Tabellen der frei vergebbare Name. Hierzu zwei Beispiele: Hier eine Liste, wie sie bei mir z.B. bei einem Schattenbahnhof vorkommt und die möglichen Einfahr-Fahrstraßen enthält. Darin wird eine einzelne Fahrstraße durch den im Namen genannten Index addressiert, also durch die Zahl. Beim Erstellen von neuen Einträgen kannst Du keinen Namen vergeben (per Variablenbearbeitung) bzw. musst Du bei Hinzufügen über die EV selbst für den Eintrag des richtigen Index sorgen. Hier jetzt eine Tabelle, wie sie bei mir bei Signalen vorkommt. Wie Du im dahinterliegenden Fenster erkennen kannst, sind mehrere Tabellen in einer Liste enthalten. Je Tabelle gibt es einen Eintrag (Text) "Routing", der mit dem Routing-Eintrag der eingefahrenen Lok abgeglichen wird. Gibt es eine Übereinstimmung, so wird die Fahrstraße aus dieser Tabelle freigeschaltet. Bei einer Tabelle wird also der Name als Index benutzt. 2. Wie geht das mit Mehrfachbedingung ? Manchmal braucht man mehr als einen Abfragewert, um eine Bedingung als richtig zu erkennen. Hier ein Beispiel: An einem Signal soll normalerweise die nächste Fahrstraße freigeschaltet werden, es sei denn, es ist ein Bahnhofssignal, bei dem der Zug dann anhalten soll, damit die Passagiere ein- oder aussteigen können. Das wäre eine einfache Bedingung: Jetzt kommt eine weitere Bedingung hinzu: Im Bahnhof sollen keine Güterzüge halten, sofern der nächste Fahrabschnitt frei ist. Also soll die Bedingung erweitert werden. Dies geht mit der Schaltfläche "Weitere Bedingung hinzufügen". Dort können dann weitere Bedingungen ergänzt werden: Zwischen den einzelnen Bedingungen kann eine Verknüpfung zwischen "und" oder "oder" umgestellt werden. Vorteil der Mehrfachbedingung ist, dass die Bedingungen nicht einzeln abfragen muss und dann jeweils dieselben Aktionen mehrfach definieren muss. 3. Wofür braucht man Wiederholungen ? Es gibt verschiedene Einstiege, für die man Wiederholungen durchführen kann. Hier mal zwei Beispiele: In der Liste oben sind Fahrstraßen enthalten. Wenn ich hieraus eine freie Fahrstraße ermitteln will, erstelle ich eine "Wiederholung für Elemente einer Liste". In der EV wird eine Schleife angelegt, in der bei den Aktionen und Bedingungen das Objektfeld mit dem Zahnrad auf "Wiederholung" umgestellt werden kann. Dann bezieht sich diese Aktion auf das gerade aktive Element aus der Liste. In meiner Anlage haben alle fahrenden Straßenfahrzeuge das Schlagwort "Auto". Wenn ich die Anlage starte, möchte ich, dass alle Straßenfahrzeuge mit einer einheitlichen Geschwindigkeit losfahren. Also gibt es hier eine Wiederholung "für alle Objekte mit einem Schlagwort" "Auto". In dieser Schleife wird für das Wiederholelement (also Auto) die Geschwindigkeit eingestellt. Wenn Du Fragen hast, nur fragen! Viele Grüße, Wolfgang
aloys63 Posted October 13 Author Posted October 13 Habe nichts verstanden Wenn der Zug auf dem Kontakt steht soll er Prüfen ob eine Fahrstraße aus der Liste die im Kontakt frei ist und die Aktivieren was mache ich falsch Test.mbp
Phrontistes Posted October 13 Posted October 13 Hier korrigierte Version. Deine zweite Zeile war überflüssig, die dritte falsch. Test korrigiert.mbp
prinz Posted October 14 Posted October 14 Hallo @aloys63 , Nachdem Phrontistes Deine EV schon einmal überarbeitet hat: Wiederholungen haben auch ihre Fallen. Wenn im Bahnhof alle Gleise frei wären, würden alle drei Fahrstraßen aktiviert. Deshalb muss innerhalb der Wiederholung sichergestellt werden, dass nur eine Fahrstraße aktiviert wird. Dies kann man zum Beispiel durch eine Variable des Gleiskontaktes erreichen (Im Beispiel "Fahrstraße gefunden"). Vor der Wiederholung wird diese Variable auf falsch (Boolwert false) gesetzt. Wird eine Fahrstraße gefunden, so wird diese Variable auf wahr (Boolwert true) gesetzt. Bevor eine Fahrstraße geprüft wird, wird eine Bedinung eingefügt, ob diese Variable noch auf falsch (false) steht. Falls nicht, wird die Prüfung und Aktivierung der Fahrstraße nicht durchgeführt: Hierzu noch eine Anmerkung: Wenn keine Fahrstraße aktiviert werden kann (alle Bahnhofsgleise belegt), dann müsste beim Verlassen eines Bahnhofssignal geprüft werden, ob auf dem Gleiskontakt "Einfahrt Gleis 1-3" ein Zug wartet und - falls ja - diese Aktionen ebenfalls ausgeführt werden. Nebenbei ist dies ein schönes Beispiel für eine Mehrfachbedingung. Hier wird einmal abgefragt, ob die Variable "Fahrstraße gefunden" den Wert false hat und dann ob die Fahrstraße frei ist und aktiviert werden kann. Dies kann man zusammenfassen zu einer Mehrfachbedingung: Viele Grüße, Wolfgang
aloys63 Posted October 14 Author Posted October 14 vor 15 Stunden schrieb Phrontistes: Hier korrigierte Version. Deine zweite Zeile war überflüssig, die dritte falsch. Test korrigiert.mbp 423.73 kB · 6 downloads Danke für Die korrigierte Anlage wahr ich ja fast richtig Phrontistes und Danke prinz deine EV muss ich öfter lesen um es zu Fersten und selber machen Auf jeden Fall ein dickes Danke an beide und eine schöne Woche
Phrontistes Posted October 14 Posted October 14 (edited) Hallo Wolfgang, vor 1 Stunde schrieb prinz: Wenn im Bahnhof alle Gleise frei wären, würden alle drei Fahrstraßen aktiviert. warum? Sobald die erste FS aktiviert ist, trifft beim nächsten Durchlauf der Schleife die Bedingung "frei und kann aktiviert werden" im zweiten Teil nicht mehr zu (weil alle über die erste Weiche müssen, und die ist schon gesperrt), d.h. weitere FS werden nicht mehr aktiviert. Getestet habe ich es nicht. Du? Beste Grüße Phrontistes Edited October 14 by Phrontistes
prinz Posted October 14 Posted October 14 Hallo @Phrontistes , Sorry, natürlich hast Du Recht, da alle Fahrstraßen gemeinsame Elemente haben.
aloys63 Posted October 14 Author Posted October 14 Hallo Phrontistes Solange eine Fahrstraße frei ist wenn der kontakt ausgelöst wird ist alles ok aber wen der Zug warten muss weil alle belegt sind bleibt der Zug stehen wenn eine Straße frei wird was muss man machen das so lange abgefragt wird bis eine frei ist und diese dann aktiviert
Goetz Posted October 14 Posted October 14 vor 6 Minuten schrieb aloys63: was muss man machen das so lange abgefragt wird bis eine frei ist Frag nicht "solange, bis eine frei wird" Besser ist, du reagierst, wenn eine frei wird (= ein Zug ein Gleis verlässt) und fragst dann, ob sie für einen neuen Zug gebraucht wird. So muss die EV nicht permanent ergebnislos ackern sondern wird nur dann aktiv, wenn es auch sinnvoll ist.
Phrontistes Posted October 14 Posted October 14 vor 42 Minuten schrieb aloys63: wenn eine Straße frei wird was muss man machen vor 3 Stunden schrieb prinz: Wenn keine Fahrstraße aktiviert werden kann (alle Bahnhofsgleise belegt), dann müsste beim Verlassen eines Bahnhofssignal geprüft werden, ob auf dem Gleiskontakt "Einfahrt Gleis 1-3" ein Zug wartet und - falls ja - diese Aktionen ebenfalls ausgeführt werden.
aloys63 Posted October 14 Author Posted October 14 Diese EV der Anlage hat mir graue Harre Wachsen lassen geht besser aber ich bin zufrieden sie Lauft wie sie soll Anlage.mbp
Phrontistes Posted October 14 Posted October 14 Das ist nach dem Umbau aber nur eine runde Sache, wenn alle Bahnhofsgleise belegt sind. Ist das nicht der Fall, bleibt der Zug am Einfahrsignal stehen, obwohl Gleise frei sind, weil Du nicht mehr prüfst, ob ein Gleis frei ist.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now