bigrala Geschrieben 10. Februar Geschrieben 10. Februar (bearbeitet) Hallo Ich habe folgendes vor; - auf ein längeres Abstellgleis sollen nach und nach mehrere Loks geparkt werden und bei Bedarf in umgekehrter Reihenfolge wieder gestartet werden. Mein Gedanke dazu.... Beim Signal aktiviere ich beide Richtungen und nehme das Anhalten bei geschlossenem Signal raus, in der EV habe ich die Richtungsabfrage (1 / -1) Bei 1 setze ich Geschwindigkeit = 0, bei -1 wird der Fahrzeugnahme in eine Liste geschrieben. Also erste Lok = Index 1, zweite Lok = Index 2 usw. in den Signal habe ich eine Zahlvariable "AnzLok", welche ich bei jeder Lok jeweils um 1 hoch zähle und habe somit die Anzahl der geparkten Loks auf dem Gleis. Wird nun eine Lok abgerufen, so schaue ich nach der Signalvariable (in dem Fall 3), schalte das Signal auf Fahrt und starte die Lok aus der Liste mit Index 3, gleichzeitig wird die Signalvariable um 1 verringert ind der entsprechende Index aus der Loste gelöscht. Soweit die Theorie Ich hab einiges versucht, kann auch die Lok in die Liste schreiben, aber nur wenn ich den Index direkt angebe. - Wie kriege ich das hin, dass der Index bei jeder neuen Lok hochzählt. - Wie ich die Lok mit dem Index der Signalvariablen starte - Wie geht es, dass der Index = Signalvariable aus der Liste gelöscht wird, wenn Lok das Gleis verläßt Kann mir da jemand weiterhelfen oder gibt es dafür eine andere sinnvollere Lösung Bearbeitet 10. Februar von bigrala
Phrontistes Geschrieben 10. Februar Geschrieben 10. Februar vor einer Stunde schrieb bigrala: nur wenn ich den Index direkt angebe vor einer Stunde schrieb bigrala: Wie geht es, dass der Index = Signalvariable aus der Liste gelöscht wird Ich sehe zwei Möglichkeiten: Du stellst Deine kleine Testanlage hier zur Verfügung und wirst dann bestimmt eine Lösung bekommen. Du arbeitest eine Anleitung durch wie man unter Lua mit Listen und Tabellen umgeht, z.B. diese hier.
Goetz Geschrieben 10. Februar Geschrieben 10. Februar (bearbeitet) vor 6 Stunden schrieb bigrala: Wie kriege ich das hin, dass der Index bei jeder neuen Lok hochzählt. Indem du anstelle des = ein + verwendest, um 1 hinzu zu addieren. vor 6 Stunden schrieb bigrala: Wie ich die Lok mit dem Index der Signalvariablen starte indem du bei Index auf den Typ "Variable" wechselst und dann die Objektvariable mit der gespeicherten Zahl wählst vor 6 Stunden schrieb bigrala: Wie geht es, dass der Index = Signalvariable aus der Liste gelöscht wird Mit Variable löschen. Als Variable wählst du "Variable (Liste/Tabelle)" und der Index ist auch hier die gespeicherte Zahl. Anschließend wird die Zahl im Speicher um 1 verringert. Das lässt sich soweit alles mit der grafischen EV machen und funktioniert, solange du das System nicht durcheinander bringst. Mit Lua hättest du die Möglichkeit, weitere Sicherheiten einzubauen. Du könntest dann beispielsweise deinen Zähler mit der Anzahl der Listenelemente abgleichen. Oder ganz auf den Zähler verzichten und gleich mit der Anzahl Elemente in der Liste arbeiten. Hier ist die oben beschriebene, simple Version ohne Skripte: Listenzähler für geparkte Loks.mbp und ein Lua Beispiel: Lua für geparkte Loks.mbp Im Übrigen hat @Phrontistes vollkommen recht. Wenn du uns deine Versuche zeigen würdest, dann könnten wir daraus deine Denkfehler ablesen. Dann hätten wir eine Möglichkeit, da anzusetzen wo du stehst. Wir könnten dir aufzeigen, was an deinem Gedanken falsch war. Fehler sind unsere besten Lehrmeister. Aber nicht, wenn wir sie verstecken oder vertuschen. Sondern nur, wenn wir sie genau untersuchen. Viele Grüße Götz Bearbeitet 11. Februar von Goetz Ergänzungen
bigrala Geschrieben 11. Februar Autor Geschrieben 11. Februar (bearbeitet) Hallo Götz, deine Lösung Listenzähler ist genau das was ich eigentlich wollte, nur einfacher als ich es mir gedacht hatte. Du hast eim Bremskontakt immer explizit auf die Objektvariablen im Signal zugegriffen. Könnte man das nicht allgemeiner verfassen, indem man im Bremskontakt eine Objektvariable mit dem Signal hinterlegt und darüber auf die Variablen im Signal zugreift? Wäre dann mehrfache erweiterungen - oder ? Normalerweise zeige ich auch inmmer wieder mal ein Demo zu meinem Problem. Im vorliegenden Fall hatte ich mich mit einem Screenshot begnügt, da ich es als verständlich empfand - sorry werde mich bessern Gruß Ralf Bearbeitet 11. Februar von bigrala
Goetz Geschrieben 11. Februar Geschrieben 11. Februar vor 34 Minuten schrieb bigrala: Könnte man das nicht allgemeiner verfassen, indem man im Bremskontakt eine Objektvariable mit dem Signal hinterlegt Ja, das ginge und wäre sicher vernünftig. Und du würdest in dem Fall, wie du richtig sagst, über eine mehrfache Erweiterung an die Variable des Signals kommen, das selbst im Kontakt hinterlegt ist.
bigrala Geschrieben 11. Februar Autor Geschrieben 11. Februar Hallo Götz, Ich habe das mal versucht direkt im Signal zu erledigen, indem ich beide Richtungen aktiviert habe und dann mit der Bedingung "Richtung" aggiere. Mit dem Zähler ist das kein Problem, beim Eintrag in die Liste kann ich den Zähler nicht auswählen ohne über die Objektvariable zu gehen. Test Lok Parkplatz.mbp
Goetz Geschrieben 11. Februar Geschrieben 11. Februar vor 4 Minuten schrieb bigrala: beim Eintrag in die Liste kann ich den Zähler nicht auswählen Du musst den Index ebenfalls als erweiterte Variable angeben:
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