Для работы с сетевыми битами я использую макрос Exchange:
Owen.jpg
Код:
function_block Exchange
var_input
inNet : udint;
bi0, bi1, bi2, bi3, bi4: bool;
end_var
var_output
outNet : udint;
bo0, bo1, bo2, bo3, bo4: bool;
end_var
var
ex : bool;
end_var
ex := false;
ex := ex or (bi0 <> bo0);
ex := ex or (bi1 <> bo1);
ex := ex or (bi2 <> bo2);
ex := ex or (bi3 <> bo3);
ex := ex or (bi4 <> bo4);
if ex then
outNet.0 := bi0;
outNet.1 := bi1;
outNet.2 := bi2;
outNet.3 := bi3;
outNet.4 := bi4;
else
outNet := inNet;
end_if
bo0 := outNet.0;
bo1 := outNet.1;
bo2 := outNet.2;
bo3 := outNet.3;
bo4 := outNet.4;
end_function_block
Не забывайте выставить галочку запись в конце цикла.