Если по сложному, то через таймеры с запоминанием часов, минут и т. д. Но это занимает много места. Как то же организовать с помощью системного времени?
Если по сложному, то через таймеры с запоминанием часов, минут и т. д. Но это занимает много места. Как то же организовать с помощью системного времени?
Через счетчики самое простое, наверное.
Миллисекундами
uptime := uptime + (TIME() - TIME_prev) * BOOL_TO_DWORD(on);
TIME_prev := TIME();
Секундами
tickTock_RTRIG(clk := TIME_TO_DWORD(TIME()) MOD 1000 > 500);
uptimeSec := uptimeSec + BOOL_TO_DWORD(tickTock_RTRIG.Q);
... минутами
tickTock_RTRIG(clk := TIME_TO_DWORD(TIME()) MOD 60000 > 30000);
RTC используйте. на выходе сохраняйте в ретайн.
После включения, по фронту сохраненное значение записывайте на вход RTC.