Добрый день
Codesys 3.5 SP17 Patch 3 (ПЛК210 веб-визуализация на ВП110, если что). ПЛК читает температуру с модуля МВ210-101 в целых числах одним регистром, в настройках одна точка после запятой (т.е. при температуре 15,4 °С в ПЛК читает значение 154).
На визуализации сначала выводил значение REAL через соответствующий спецификатор, но при отсутствии связи с модулем или неисправности датчика значение либо остается прежним, либо сбрасывается в ноль (в зависимости от настроек), а хотелось бы видеть что-то типа "--" (прочерк). И с этим справляется вот такой простой код:

IF <нет ошибок> THEN
sTemp := TO_STRING(0.1*TO_REAL(iValue));
ELSE
sTemp := '--';
END_IF

Идея проста - создать строковую переменную для температуры (sTemp) и в нее писать преобразованное в строку значение температуры (предварительно приведенное к нужному виду). Ну и эту переменную уже вывожу в визуализации со спецификатором %s.
И все вроде работает, но периодически вместо, скажем, "15,4" (уже в виде строки) на экране появляется "15,4000". Далее при изменении температуры на 0,1 °С все опять приходит в норму - "15,5". И так до следующего раза на произвольном значении температуры. Таких температур на экране 4 штуки и у всех такая беда. Пробовал явно указывать REAL_TO_STRING и INT_TO_REAL - не помогает.

P.S. Накладывать друг на друга отображение двух переменных (численной и строковой) и скрывать одну показывать другую, а потом наоборот как то не хочется, т.к. потом забудется что их там две