Jump to content

Empfohlene Beiträge

Geschrieben (bearbeitet)

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
Geschrieben (bearbeitet)
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
Geschrieben (bearbeitet)

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

Bearbeitet von MS-Sandokan
Srennshot eingefügt
Geschrieben (bearbeitet)
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
Geschrieben

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 👌

 

Geschrieben
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!

Geschrieben

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.

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

Geschrieben

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.

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

 

Geschrieben

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 

Geschrieben

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

Geschrieben

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

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