Цитата Сообщение от Neru Посмотреть сообщение
Доброго времени суток.
2 вопроса по телемеханике лайт.
Первый: в контроллере создаю строковую переменную, как её можно изменить из визуализации?
3.png

Второй: есть скрипт, который в зависимости от настройки делит переменную на 1, 10 или 100. Переменная - ток, читается из прибора БЗП-01. При отладке скрипта выходная переменная нормально делится и отображаются все знаки после запятой. Но в таблице "Входы/выходы функционального блока" после запятой нули. Например, получили переменную 1234, в окне отладки скрипта при делении на 100 получим 12,34, а в таблице "Входы/выходы функционального блока" будет только 12,00. В чем проблема?

Программа для одного канала:

var Inom, ain, bin, cin: integer;
var aout, bout, cout: real;
{---------- main program -----------}
begin
ReadInteger('Inom',Inom);
ReadInteger('Iain',ain);
if Inom < 31 then begin
aout := ain / 100;
end
else begin
if Inom < 301 then begin
aout := ain / 10;
end;
end;
if Inom > 300 then begin
aout := ain;
end;
WriteFloat('Iaout', aout);
end.

Типы переменных:
переменные.png
Как вариант, можно изменить скрипт следующим образом - и он будет работать уже правильно:

var Inom, ain, bin, cin: integer;
var aout, bout, cout, temp: real;
{---------- main program -----------}
begin
ReadInteger('Inom',Inom);
ReadInteger('Iain',ain);
temp:=ain;

if Inom < 31 then begin
aout := temp / 100;
end
else begin
if Inom < 301 then begin
aout := ain / 10;
end;
end;
if Inom > 300 then begin
aout := ain;
end;
WriteFloat('Iaout', aout);
end.

test.png