Jump to content

Streckenblock


bigrala

Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Screenshot 2020-11-20 101037.jpg

Bearbeitet von bigrala
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

820773937_Wiederholung1.jpg.c5708e0dc960d1b3cdbdeb7a8ff2b226.jpg

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

1706784943_Wiederholung2.jpg.6954fbfb5bfbbc82fe3818c7096c3d44.jpg

 

Probiere mal bitte, ob dir das weiterhilft.

Jetzt müsste es stimmen.

 

Bearbeitet von Goetz
Korrekturen
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Screenshot 2020-11-20 105852.jpg

 

Screenshot 2020-11-20 111524.jpg

Bearbeitet von bigrala
Link zu diesem Kommentar
Auf anderen Seiten teilen

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"

1650497981_Wiederholung3.jpg.716d6d2bc1d4058c1a7a41917dff3461.jpg

Bearbeitet von Goetz
Bild eingefügt
Link zu diesem Kommentar
Auf anderen Seiten teilen

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