MarkoP Posted February 15, 2022 Share Posted February 15, 2022 Um Züge unabhängig vom Signal/Gleiskontakt abfahren zu lassen, habe ich für meine Fahrstrassen aus dem Bahnhof heraus ein Schlagwort und eine Textvariable vergeben. Letztere beinhaltet den Gleisnamen des Abfahrtsgleises auf dem der betreffende Zug steht. Leider bekomme ich es nicht hin, den Ablauf generisch zu erstellen, so dass er unabhängig der aktivierten Fahrstrasse ist. Nach meinem Verständnis muss als Ereignis "Bei Aktivierung einer Fahrstrasse mit dem Schlagwort" ausgewählt werden. Als Ereignis "Geschwindigkeit setzen" in dem dann für Fahrzeuge alle und als Gleis der Auslöser (also die Fahrstrasse) mit der zugehörigen Textvariable angegeben werden. Hat jemand eine Idee? Link to comment Share on other sites More sharing options...
jloos Posted February 16, 2022 Share Posted February 16, 2022 Hallo, ich weiß nicht genau ob ich Dein Problem verstanden habe. Deshalb hänge ich ein Beispiel an. Ich lege die Fahrstraßen in Variablen ab und frage die Zugposition per Gleiskontakt ab. Die Abfragestellennr. und die in jeder Lok gespeicherte LokNr. fragen dann in der Datenbank die Fahrstraße für die nächste Fahrstraße ab und speichert sie in der Lok. Am Bahnhof wird mittig am Bahnsteig gehalten. Der Lokname wird dabei im Signal gespeichert. Die in der Lok gespeicherte Wartezeit wird abgewartet und dann die Fahrstraße angefordert. Wird die Fahrstraße vom MBS freigegeben, schaltet das Signal auf Hp1 und der abgespeicherte Zug wird gestartet. Diese Form ist für diese kleine Beispielanlage vollkommen übertrieben, funktioniert aber auch noch mit 30 Zügen und 80 Fahrstraßen. Gruß Jürgen Beispiel Zugsteuerung und FS.mbp Link to comment Share on other sites More sharing options...
MarkoP Posted February 18, 2022 Author Share Posted February 18, 2022 Ich will nicht den Umweg über den Zug gehen, darum habe ich den Gleiskontakt direkt an eine Variable in der Fahrstrasse abgelegt und rufe ihn von da ab. Doch leider gibt mir die EV nur den folgenden Fehler aus mit dem ich aber nichts anfangen kann: bad argument #1 to 'for iterator' (table expected, got nil) Auch der Versuch den Gleisnamen in einer Variablen des Signals zu speichern und von dort abzurufen kommt zr gleichen Fehlermeldung. Kann es sein, das hier ein Fehler in der EV vorliegt wenn für das Fahrzeug "Alle Fahrzeuge" eingestellt ist? Wenn ich ein bestimmtes Fahrzeug auswähle gibt es keine Fehlermeldung, doch das Fahrezug fährt auch nicht ab. Link to comment Share on other sites More sharing options...
EASY Posted February 18, 2022 Share Posted February 18, 2022 Hallo @MarkoP Deine Variable "Gleis" hat den falschen Typ. Das MBS erwartet ein "Objekt" (als Variablentyp) und Du hast als Typ "Text"... Gruß EASY Link to comment Share on other sites More sharing options...
MarkoP Posted February 18, 2022 Author Share Posted February 18, 2022 Wenn ich Objekt einstelle, dann kann ich aber nicht mehr auf den Inhalt der Objektvariablen zugreifen. Oder sehe ich das falsch? Link to comment Share on other sites More sharing options...
EASY Posted February 19, 2022 Share Posted February 19, 2022 (edited) Hallo, vor 10 Stunden schrieb MarkoP: Wenn ich Objekt einstelle, dann kann ich aber nicht mehr auf den Inhalt der Objektvariablen zugreifen. Oder sehe ich das falsch? ... Du liegst total falsch. Es geht nur darum welchen Typ die Variable haben muß... ...um bei Deinem Beispiel mit dem Signal zu bleiben... ... geht. ... diesen EV Eintrag "zu Skript konvertieren" zeigt etwas deutlicher was diese Einträge auslösen... 1) Es wird eine Liste erstellt mit allen Fahrzeugen, die auf dem Gleis stehen welches in der Variablen "Gleis" vom Formsignel1 hinterlegt ist. 2) Bei allen Fahrzeugen dieser Liste, die einen Antrieb besitzen wird dieser eingeschaltet und die Geschwindigkeit 70 zugewiesen. Wenn bei 1) der Variablentyp falsch ist (Text anstatt Objekt) kann die Liste nicht erzeugt werden und das ergibt die von Dir erwähnte Fehlermeldung. Gruß EASY Edited February 19, 2022 by EASY Link to comment Share on other sites More sharing options...
Hawkeye Posted February 19, 2022 Share Posted February 19, 2022 Hallo @MarkoP, vor 10 Stunden schrieb MarkoP: Wenn ich Objekt einstelle, dann kann ich aber nicht mehr auf den Inhalt der Objektvariablen zugreifen. Doch, wieso nicht. (Hat @EASY gerade erklärt.) 😊 vor 14 Stunden schrieb MarkoP: bad argument #1 to 'for iterator' (table expected, got nil) Diese Meldung kommt, wenn du eine Liste oder Table als „local“ z.B. in einer Bedingung definiert hast und an andere Stelle wiederverwenden möchtest. Die steht in anderen Codeteilen dann aber nicht mehr zu Verfügung, weil „nil“. Deshalb wären, um dir zu helfen, schon ein paar Informationen mehr nützlich. z.B. Inhalt von „Skript ausführen“ und ein Screenshot vom Ereignisprotokoll. Viele Grüße, Hawkeye Link to comment Share on other sites More sharing options...
MarkoP Posted February 22, 2022 Author Share Posted February 22, 2022 (edited) @EASY Hab den Denkfehler gefunden. Ich meinte meinte mit Objekt den ersten Punkt nicht Objekt (Name). Dort kann ich ja nur noch in einem Dialogfenster aus einer Liste auswählen. Ich nutze die Variante mit der Variablen an der Fahrstrasse. Da jede Fahrstrasse sich auf ein bestimmtes Gleis bezieht, kann ich einfach in einer Variablen zur Fahrstrasse das Gleis benennen und dadurch im Ereignis sagen: "Beschleunige alle Fahrzeuge auf diesem Gleis". Das finde ich persönlich etwas einfacher als deine Lösung, wobei die natürlich auch möglich ist. @Hawkeye Problem ist gelöst, aber Danke für die Erklärung, auch wenn ich nur die Hälfte davon verstehe weil mir die Logik dahinter noch nicht geläufig ist. Edited February 22, 2022 by MarkoP Link to comment Share on other sites More sharing options...
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