Вы запись входных и выходных переменных выведите из под условия разрешения работы - они должны всегда выполняться
Но это не поможет - у вас локальное время не сохраняется, поэтому после перезагрузки все и сбрасывается. Поэтому как-то так
Код:
Чтение входных данных
if РАЗРЕШИТЬ then
здесь считаем
else
запись текущего времени в локальные переменные
end_if
Запись выходных данных
Тоже делал, и сейчас еще раз перепроверил, не работает