
Сообщение от
Dimaes
Я же прислал чать проекта в вопросе. Это все что касается вопроса.
Попробую более подробно описать проблему.
Есть "главный контроллер (ПР200)", есть "доп контроллер (ПР200)" Имеем 2 переменные 1 локальную "Сист_Полива_Режим" и 2 сетевую - "20.2.1.Poliv_mode". Локальная меняется с экрана, с помощью макроса передается на сетевую переменную и на другой контроллер. На другом котроллере тоже есть возможность поменять локальную переменную которая также через макрос меняет сетевую и сетевая в свою очередь меняет значение на главном контроллере.
При отладке программы запускал на ПК. Пробовал менять значения локальной переменной, все меняется. Как только начинаешь менять значение сетевой переменной, то начинаются скакания значений, и его уже не остановить.
Я пробовал менять желтую линию связи на линию задержки. Тоже самое - значения скачут.
Попробуйте вариант с макросом Exchange (обмен 0-м битом сетевой переменной с булевой переменной)
Owen.jpg
в доп.настройках OnOff обязательно поставьте "Да" в "Запись в конце цикла".
Код:
function_block Exchange
var_input
NetIn : udint;
In : bool;
end_var
var_output
NetOut : udint;
Out : bool;
end_var
if In <> Out then
Out := In; NetOut.0 := In;
elsif NetOut <> NetIn then
NetOut := NetIn; Out := NetIn.0;
end_if
end_function_block