Habe dies dann darauf eingedampft, dass bereits existierende Variable bei einem erneute Upload und Restart der ExecEngine offensichtlich nicht auf die im Makro angegebenen Startwerte zurückgesetzt werden, sondern ihre Werte beibehalten. Finde das ziemlich falsch (oder zumindest SEHR unerwartet)!
Zwecks Reproduktion folgendes Makro definiert (läuft z.B. 1x pro Minute):
Code: Alles auswählen
LogZeile := "Zähler: " + Zaehler
SCHREIBEDATEI("syslog.txt",LogZeile,2)
Zaehler := Zaehler + 1
Das ganze Kompilieren und zur Zentrale hochladen. Nach einige Minuten in Homeputer CL erneut auf den "Blitz" geklickt, also erneut kompiliert und erneut hochgeladen und ExecEngine erneut gestartet:
Logfile:
Code: Alles auswählen
01.08.2020/13:20:25: SLE - Ende Ausführung
******************************************
01.08.2020-13:22:35: Neustart der Zentrale
******************************************
Sonnenaufgang=06:04:00
Sonnenuntergang=20:56:00
Zähler: 0
Zähler: 1
Zähler: 2
Zähler: 3
Zähler: 4
Zähler: 5
Zähler: 6
Zähler: 7
Zähler: 8
Zähler: 9
Zähler: 10
Zähler: 11
Zähler: 12
Zähler: 13
Zähler: 14
01.08.2020/13:37:11: SLE - Ende Ausführung
******************************************
01.08.2020-13:39:10: Neustart der Zentrale
******************************************
Sonnenaufgang=06:04:00
Sonnenuntergang=20:56:00
Zähler: 15
Zähler: 16
Zähler: 17
Zähler: 18
Zähler: 19
Zähler: 20
Zähler: 21
Zähler: 22
Das ist nun definitiv NICHT das Verhalten, das ich erwartet hätte!
Wenn das "working as designed" sein sollte (also gewünschtes Verhalten): Was ist dann die empfohlene Methode, um Variablen beim Neustart des Programms einen fixen Startwert zuzuweisen? Wie bekommt man sonst beim Programmstart einen definierten Anfangszustand hin?