Jump to content

Signal Variable löschen


Recommended Posts

Hallo Leute
ich hab mal ein Problem mit einem Signal und zwar folgendes.
Das Sgnal holt sich aus einer Variablen "wartender Zug" den Zugnamen.
Sowie das Signal jetzt auf "Fahrt" geht fährt der wartende Zug los.
Soweit so gut, aber......
Wenn jetzt kein neuer Zug am Bahnhof einfährt und vor dem Signal steht, behält das Signal den
Wert der Variablen "wartender Zug" des letzten Zuges im speicher.
Das Ergebnis ist dann egal wo der letzte Zug auf der Anlage steht wenn das Signal auf "Fahrt" gestellt
wird fährt der Zug los.
Wie sag ich nun dem Signal das es die Variable "wartender Zug" löschen soll sowie dieser Zug durch ist ?
Für ein bischen Hilfe wäre ich sehr dankbar.

Beste Grüße

MS-Sandokan

Edited by MS-Sandokan
Link to comment
Share on other sites

vor 20 Minuten schrieb MS-Sandokan:

Wie sag ich nun dem Signal das es die Variable "wartender Zug" löschen soll

Unter "Aktion" findest du "Variable löschen" in der Zeile direkt unter "Variable setzen"   ;)

806668082_Variablelschen.thumb.jpg.067454d0ff77b421d1df682d368cf1c0.jpg

Edited by Goetz
Bild hinzugefügt
Link to comment
Share on other sites

vor 27 Minuten schrieb MS-Sandokan:

wenn ich das Signal auf Halt stelle passiert nichts erst wenn ich es wieder auf Fahrt stelle gehts sofort in die Pause

Weil jetzt (wenn das Signal wieder auf Fahrt gestellt wird) eine Variable eingesetzt werden soll, die nicht mehr existiert.

Du musst also beim Umschalten auf Fahrt erst prüfen, ob die Variable existiert, bevor du dann dem Zug aus dieser Variable einen Befehl erteilst.

697687600_Variableexistiert.jpg.192d42c93930bfb714e5d3de0c7705a3.jpg

Beide Bedingungen lassen sich auch als eine Mehrfachbedingung zusammenfassen.
Aber so schien mir deutlicher, worum es geht.

Die Anlage geht übrigens bei Fehlern nur dann auf Pause, wenn das Protokollfenster geöffnet ist. Und dann steht in diesem Ereignisprotokoll auch eine rote Zeile, die einen Hinweis auf den Fehler gibt. Ein Doppelklick auf diese Zeile bringt dich direkt zum Eintrag in der EV, der den Fehler verursacht hat.

Edited by Goetz
Bild eingefügt
Link to comment
Share on other sites

Die von @wopitirvorgeschlagene Lösung funktioniert ebenfalls.

Aber du musst den Fehler beheben. Auf die eine oder andere Art.

Denn wenn nach diesem fehlerhaften Befehl weitere folgen, dann werden sie nicht mehr ausgeführt.
Auch dann nicht, wenn das Protokollfenster geschlossen bleibt.

Bei einem Fehler wird die ganze Aktionsliste, die dem Ereignis zugewiesen ist, abgebrochen.

Link to comment
Share on other sites

vor 12 Minuten schrieb MS-Sandokan:

Irgendwie werde ich dahinter kommen

???

Du hast doch alles erklärt bekommen, was du brauchst.

  • Entweder, du weist der Variable das Objekt "Leer" zu, anstatt sie zu löschen. (Methode Wopitir)
  • Oder du prüfst, ob die Variable existiert, bevor du sie benutzt.  (Methode Goetz)

und das ist alles.

Link to comment
Share on other sites

Naja ist alles nicht mehr so einfach. Früher hab ich mal in Assembler programmiert aber das ist schon 40 Jahre her. Mittlerweile tue ich mich mit manchen Sachen leider ganz schön schwer. Dauert meistens ein bißchen länger bis ich was kappiert habe, liegt wahrscheinlich daran das ich es versuche zu verstehen anstatt nur alles einfach abzuschreiben.

Link to comment
Share on other sites

vor 14 Minuten schrieb Atrus:

Du musst es verstehen und nicht abschreiben,

Genau das versucht er doch, Atrus:

Am 24.3.2021 um 19:41 schrieb MS-Sandokan:

... das ich es versuche zu verstehen anstatt nur alles einfach abzuschreiben.

 

Link to comment
Share on other sites

Moin, moin

hier nochmal eine Rückmeldung.......

bin jetzt doch einen anderen Weg zur Lösung gegangen. Das mit der Variablen löschen bzw. den Inhalt der Variablen löschen wollte mir nicht gelingen.

Ich war kurz vorm Aufgeben 😒

So wie ich es jetzt gemacht habe funktioniert es einwandfrei.

Vielen Dank nochmal an Alle. 👌

1.jpg

2.jpg

3.jpg

Link to comment
Share on other sites

Hallo, freut mich für dich, das du es doch noch geschafft hast. Manchmal ist es zum verrückt werden. Vor ein paar Tagen wollte mir auch etwas überhaupt nicht gelingen, habe alles probiert mit Variabel und ohne und Bedingungen usw. Am Ende ist ein Gleis über einem anderen gelegen, was ich "Vollblödi" natürlich nicht gleich gecheckt hatte. Gleis gelöscht und alles war gut. Meistens sind es die einfachsten Dinge die zum Problem werden können, weil man an so was im ersten Moment gar nicht denkt!  

LG  Atrus

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...