Jump to content

Recommended Posts

Posted (edited)

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
Posted (edited)
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
Posted (edited)

Hi Götz

hab ich probiert. die Variable wird gelöscht aber leider

geht dann die ganze Anlage immer auf Pause..????

 

 

Screenshot 2021-03-24 171532.jpg

Edited by MS-Sandokan
Srennshot eingefügt
Posted

Hallo @MS-Sandokan,

in meinem, vor kurzem veröffentlichten Video, "602_4 Blocksteuerung mit Variablen" denke ich wird genau dein Fall abgehandelt. Hier wird die Variable auf "[Leer]" gesetzt.

Gruß
Wolfgang

Posted (edited)
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
Posted

stimmt Götz das Protokollfenster hatte ich auf, dort gibt es folgende Meldung:

[17:39:49]         attempt to index a nil value (local 'v')
 

wenn das Fenster zu ist geht alles tadelos 😁👍

Besten Dank an Alle 👌

 

Posted
vor 2 Minuten schrieb MS-Sandokan:

wenn das Fenster zu ist geht alles tadelos

Nein, der Fehler besteht auch dann und es ist ratsam, ihn (wie von mir beschrieben) zu beheben!

Posted
vor 23 Minuten schrieb Goetz:

Nein, der Fehler besteht auch dann und es ist ratsam, ihn (wie von mir beschrieben) zu beheben!

werd ich auf jeden Fall versuchen, Danke Götz

Posted

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.

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

Posted

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.

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

 

Posted

Ja, blöd von mir, habe ich leider falsch verstanden. Abschreiben bringt gar nichts. Habe im Prinzip eh das selbe Problem gelegentlich. Gut dass es das Forum gibt. Sorry!  LG  Atrus 

Posted

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

Posted

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

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