
Сообщение от
Newcomer
А какой смысл выполнять это в каждом цикле ? Задача-то предотвратить запись 0 в outVal при подаче питания.
При входе в FB значение надо сначала восстановить из сетевой (ведь она энергонезависимая и содержит сохраненное значение до первого цикла).
А потом уже в самом FB можно менять это значение при необходимости.
Код:
function_block fb
var_input
inVal : udint;
in, reset: bool;
end_var
var_output
outVal : udint;
end_var
var
rtIN : SYS.RTRIG;
rtReset : SYS.RTRIG;
end_var
outVal := inVal;
rtIN(I := in);
If rtIN.Q then
outVal := 100;
end_if
rtReset(I := reset);
If rtReset.Q then
outVal := 0;
end_if
end_function_block
Попробуйте перед выключением подать сначала in.
А перед следующим выключением подать reset.
Чисто для эксперимента.