Ошибка оказалась куда глубже и хуже - полное зависание модуля Pt100. Спасает только перезагрузка контроллера.
Ошибку легко воспроизвести в симуляции: задаем на вход модуля число 9999, затем задаем 100, и получаем t=NaN и error=0. Далее любые числа не выводят его из зависания.
В итоге получается что после кратковременного обрыва датчика модуль полностью зависает без сигнализации о ошибке, при этом изза NaN ломается все последующая логика и оборудование работает бесконечно до физической поломки (поскольку система не получает сигнала error от зависшего модуля).
При этом NaN на дисплее отображается как "0,0" - что еще сильнее ухудшает ситуацию (поскольку рядовой персонал не понимает что в показаниях есть серьезная ошибка).
Потестил модуль (Pt100) - там ошибка в функции SEL_FLOAT, которая зависает при попадании туда числа NaN (в механизме зависания еще не разобрался).
Замена функции SEL_FLOAT на штатную fSEL исправляет ошибку.
Версия Owen Logic 1.17.259
Безымянный.png
P.S. "Это переполнение" - я бы не стал называть NaN "переполнением" (overflow), это совершенно разные термины и явления. NaN специальное состояние числа, "придуманное" и описанное стандартом IEEE 754.