Если значение varReal будет отрицательным (например -2.154716), то значение переменной функции будет равно '-2.-1'.Show_real это при работе ЖКИ в режиме work_mode,
а если нужно выводить число в формате REAL в монопольном режиме придется делать примерно так?
FUNCTION R_TO_ST : STRING
VAR_INPUT
varReal: REAL;
END_VAR
VAR
END_VAR
R_TO_ST:=INT_TO_STRING(TRUNC(varReal*10)/10);
R_TO_ST:=CONCAT(R_TO_ST, '.');
R_TO_ST:=CONCAT(R_TO_ST,INT_TO_STRING(TRUNC(varRea l*10)MOD 10));
Здесь один знак после запятой и нет округления с учетом отброшенных знаков, но код простой и маленький.
Правильнее, на мой взгляд, будет так:
FUNCTION R_TO_ST : STRING
VAR_INPUT
varReal: REAL;
END_VAR
VAR
END_VARR_TO_ST:=INT_TO_STRING(TRUNC(varReal));
R_TO_ST:=CONCAT(R_TO_ST, '.');
R_TO_ST:=CONCAT(R_TO_ST,INT_TO_STRING(TRUNC(varRea l*10*SEL(varReal < 0, 1, -1))MOD 10));




Ответить с цитированием