Спасибо, VladGC, b_aleks!
С разделением входного и выходного параметра работает корректно, на данном этапе этого достаточно. Но остался вопрос. При применении текстового ввода при отображении значения можно задать формат (f3), при этом "дробный хвост" 4-х байтного float не отображается, в инкременте формата отображения нет. Есть какие-то пути решения с использованием инкремента (второй контрол для отображения использовать нельзя- нужно и ввод и отображение реализовать в 1-м элементе)?
Q_MS4_2.1.jpg
Q_MS4_2.2.jpg
Шаг инкримента указали правильный?
Еще можно сделать промежуточную переменную, и округлять переменную.
Сделать что то вроде такого:
Создать программу, вход регистра связать с выходом программы
Выход программы с входом регистра,
Точно так же связать с инкриментом
Округлять можно так
FUNCTION funRound : LREAL
VAR_INPUT
IN: LREAL := 0;
N: INT := 0;
END_VAR
VAR_OUTPUT
EnO: BOOL := True;
END_VAR
VAR
DECADES: ARRAY [0..8] OF LREAL := [1, 10, 100, 1000, 10000, 10000, 100000, 1000000, 10000000];
X: LREAL := 0;
END_VAR
X := DECADES[LIMIT(0,N,8)];
funRound:= DINT_TO_REAL(REAL_TO_DINT(in * X)) / X;
END_FUNCTION
Спасибо!
Шаг инкремента я в общем-то не использовал... Можно попробовать округлить переменную на входе инкремента, тогда отображаться будет красиво но пока избыточных преобразований делать не очень хочу.
Кстати при циклическом чтении регистра такое преобразование будет производиться постоянно, что наверное может отразиться на производительности при большом количестве переменных...
А в чем криминал использования текстового ввода для ввода числовых значений (при при попытке ввода некорректного значения выдается convert warning)?
Добрый день!
Вопрос по групповой привязке регистров.Есть объект с определенным набором параметров, которые должны быть привязаны к регистрам Modbus TCP. Подскажите, пожалуйста, существует ли возможность групповой привязки регистров (каналов) к объекту? Логично бы выглядела привязка группы каналов к объекту...
В программе упакуйте в массив, в массив структур или что то похожее
Из этой программы передайте в глобальную переменную того же типа, далее обращайтесь к этой переменной из любого места
На скриншоте нет связей на запись регистров, но посыл думаю понятен
Screenshot_1.png
У меня регистр Modbus - Real 4 байта. Ему точности для LReal не хватает. Таким образом хвост физически будет ( если его не округлить в скаде),как например, предложил VladGC.
А InPar и OutPar у меня LReal.