Old Grey Geschrieben 19. November 2020 Geschrieben 19. November 2020 Das mit dem Verriegeln ist einfach. Setze einfach unter die Anweisung zum Schalten der Weichen den Befehl das die Objektvariable verriegelt auf True gesetzt wird. Das Entriegeln habe ich ja schon beschrieben. Du solltest aber vor dem Weichenschalten prüfen ob die betreffende Weiche verriegelt ist. Einfach die gleiche Wiederholung vorab laufen lassen und wenn eine Weiche verriegelt ist, wird der Vorgang abgebrochen und nach einer bestimmten Zeit mit einem Timer neu gestartet. Ich hätte auch nicht 3 Tabellen angelegt, sondern nur eine in der die anderen drei enthalten sind. Dein Marker ist dann der Verweis auf den Index der gewünschten Route. So sparst Du die die If-Verzweigungen.
bigrala Geschrieben 20. November 2020 Autor Geschrieben 20. November 2020 (bearbeitet) Ich muss die Verriegelung ja für die jeweilige Weiche aus der Wiederholung setzen. Wie spreche ich die an, komme nicht weiter. Hatte zuvor probiert in der Tabelle einen Eintrag "locked = True" aufnehme und in der Wiederholung die Objektvariable entsprechend auf True zusetzen. Aber auch hier hab ich das Problem den Wert an die Objektvariable zu übergeben. Habe wohl generell das Verständnissproblem ein Objekt bzw eine Objektvariable "universell" anzusprechen. Bearbeitet 20. November 2020 von bigrala
Goetz Geschrieben 20. November 2020 Geschrieben 20. November 2020 (bearbeitet) Du musst zuerst für die Wiederholung die richtige Liste auswählen. Das ist die Liste mit den Weichen, die zur gewünschten Route gehört. Du übergibst eine der Routen an die Wiederholung. Welchen Index aus der Liste Routen du nehmen musst, steht in der Variablen in deinem Fahrzeug. Jetzt geht die Wiederholung nacheinander alle Pärchen durch, die du in dieser Liste abgelegt hast und übergibt sie als kleine Tabelle an den Namen, den du dafür wählst. Standardname ist hier "Wdh". Ich habe es im Beispiel "Element" genannt, weil immer ein Element aus der Liste übergeben wird. Für den Befehl "Variable setzen" musst du jetzt angeben, dass das Ziel eine Objektvariable ist und das Objekt dazu in einer Liste steckt. Also eine doppelt erweiterte Variable, weil das Objekt selbst in einer Liste steht. Die Adresse der Variablen locked ist: Liste.Index.Name Probiere mal bitte, ob dir das weiterhilft. Jetzt müsste es stimmen. Bearbeitet 20. November 2020 von Goetz Korrekturen
bigrala Geschrieben 20. November 2020 Autor Geschrieben 20. November 2020 (bearbeitet) @Goetz Hallo Goetz, ich habe doch bereits eine Widerholung in der die Weichen geschaltet werden. Mein Gedanke war, diese Wiederholung zu nuten und hier nicht nur die Weiche zu schalten, sondern leichzeitig eine Objektvariable der gerade geschalteten Weiche zu setzen. Bearbeitet 20. November 2020 von bigrala
Goetz Geschrieben 20. November 2020 Geschrieben 20. November 2020 (bearbeitet) vor 18 Minuten schrieb bigrala: Hallo Goetz, ich habe doch bereits eine Wiederholung in der die Weichen geschaltet werden. Die konnte ich in deinem Screenshot nicht sehen. Also habe ich etwas eigenes gebaut, um das Bild vollständig zu haben. Deine Route 2L ist identisch mit meiner Route, die ich in der Wiederholung eingetragen habe. Du kannst also den "Variable setzen" Teil aus meinem Beispiel für dich übernehmen und in deiner Wiederholung verwenden. Dort, wo bei mir "Element" bzw. "@Element" steht, steht bei dir dann "Routen" bzw. "@Routen" Bearbeitet 20. November 2020 von Goetz Bild eingefügt
bigrala Geschrieben 20. November 2020 Autor Geschrieben 20. November 2020 (bearbeitet) Hmm, will nicht Weichen schalten, aber Objektvariable wird nicht gesetzt Bearbeitet 20. November 2020 von bigrala
Goetz Geschrieben 20. November 2020 Geschrieben 20. November 2020 (bearbeitet) vor 38 Minuten schrieb bigrala: Hmm, will nicht Pardon - mein Fehler! Man benötigt eine Kombination aus erweiterter Variable und Liste: Bearbeitet 20. November 2020 von Goetz
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