МЭК функции преобразования в строки не имеют возможности форматирования. Желаемый вид числа можно сформировать уже в строке.
Расширенный вариант, идеи описанной Максимом:
VAR
rA: REAL;
iA1,iA2:INT;
sA: STRING;
END_VAR
iA1 := TRUNC(rA); (*вырезаем отдельно целую часть*)
iA2 := REAL_TO_INT(rA*10)-iA1*10 ; (*и округленные десятые*)
(*собираем результат в строку желаемого формата*)
sA := CONCAT(CONCAT (INT_TO_STRING(iA1),'.'),INT_TO_STRING(iA2));
Результат, всегда строка ‘0.1’, при значении rA равном 0.1 или 9.99999E-2;
К стати. Система исполнения CoDeSys написана на С и компилируется изготовителем PLC. Вызовы же функций REAL математики просто включены в систему исполнения. Т.е. в конечном итоге, здесь работают функции библиотек того компилятора С, которым пользовался изготовитель контроллера при адаптации CoDeSys под свое оборудование. Так если я ставлю в контроллер мат. сопроцессор то, что он выдаст, то CoDeSys и покажет. В итоге, описанные выше тонкие эффекты могут проявляться по-разному, в разных PLC под CoDeSys. Для надежного аккуратного вывода на панель нужно сформировать строку вывода, не полагаясь на REAL_TO_STRING.