Была такая фигня с 154. Решил :
Тупо писать периодично текущее время в файл (вместе с ретайном т.к. батарея уже сдохла, ретайн нужен, а 512 байт кластера перекрывали все потребности)
При старте читал из файла все, устанавливал системное время прибавляя пол-периода для снижения вероятности ошибок.
Период можно поставит и 1с (300млн записей в идеале -> больше времени службы ПЛК), но я выставил 30с (+ внеочередная при фиксации изменений в "ретайне")
....
Вообщем, работает 1,5 года