Jump to content

Signal Variable löschen


Empfohlene Beiträge

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

Bearbeitet von MS-Sandokan
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

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

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.

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

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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