ich mal wieder...
Bin gerade am Lesen der Anleitung zu HPCL und habe da einen Widerspruch entdeckt:
Das deckt sich nicht mit meiner Erfahrung, da stoppuhr(ZeitVariable) sehr wohl Zeiten größer als 24h liefern kann, allerdings nur sinnvoll/lesbar, wenn man das Ergebnis einer Zeichenkette zuweist, dann ist der maximale Wert "9999:99:99" (RICHTIG: da hat sich jemand mal Bümpis Wünschen angenommen und das ganze auf Neu-Minuten und Neu-Sekunden gebracht , aber wohl nur Überlauf-Fall)STOPPUHR(Zeitvariable)
Diese Funktion gibt die Zeitdauerdifferenz zwischen der aktuellen Uhrzeit und der in der Zeitvariablen hinterlegten Zeit im Format HH:MM:SS zurück. Es wird die reine Uhrzeitdifferenz ermittelt, Tage werden nicht berücksichtigt, d.h. als Ergebnis kann es keinen Wert grösser als 23:59:59 geben.
Annahme: Evtl. ist der Wert bei der Zuweisung zu einer Zahl (0) nicht möglich, einer Zahl (0,0...) müsste aber gehen.
Nächstes Thema:
Hat SchaltDauer eine andere Wirkung als Stoppuhr(Objekt.CT)?
Hintergrund:
Nachdem das Aktor einschalten mit vorgegebener Laufzeit, und das Verlängern der Laufzeit bei bereits eingeschaltetem Aktor bei mir jetzt funktioniert, funktioniert meine Laufzeitsummierung der An-Zeiten des Aktors nicht mehr, weil bei jedem Verlängern (im eingeschalteten Zustand) das Objektmakro des Aktors (Ausführen bei Änderung!) auch ausgeführt wird, wenn die Einschaltdauer im eingeschalteten Zustand verlängert wird.
Und leider wird .CT des Aktors dabei ebenfalls geändert, wenn die Laufzeit verlängert wird, obwohl sich ja strenggenommen der Zustand des Aktors gar nicht ändert, er bleibt eingeschaltet.
Mein Code ist wie folgt:
Code: Alles auswählen
// dieses Makro wird alle 5 Minuten ausgeführt (300 Sekunden!)
// lngLaufzeit ist Zahl, Startwert 0 und wird im Makro bei jedem Aufruf berechnet und kann theoretisch auch über 300 Sekunden gehen
//...
wenn lngLaufzeit > 300 dann
lngLaufzeit:=305 // Extra 5 Sekunden länger, damit der Aktor durchlaufen kann!
endewenn
wenn lngLaufzeit>0 dann
setzewert(AktorName,"EINSCHALTDAUER",lngLaufzeit)
// KEIN Sende(), KEIN setzewert(AktorName,"ZUSTAND",1)
// Nur einschalten für Laufzeit funktioniert, damit sowohl der Timer im Aktor läuft, als auch die 'Selbstheilung' in HPCL
AktorName einschalten für lngLaufzeit
endewenn
Der Familienvater