IF i1 & NOT ft1 THEN
ft1 := i1;
sum := sum + 1;
ELSIF NOT i1 & ft1 THEN
ft1 := i1;
sum := sum - 1;
ELSIF i2 & NOT ft2 THEN
ft2 := i2;
sum := sum + 2;
ELSIF NOT i2 & ft2 THEN
ft2 := i2;
sum := sum - 2;
END_IF
fN_bool_TO_int := sum;
Почему тогда если ни одно условие не выполняется напр: i2 & ft2 предыдущее значение "2" сохраняется? Почему так же не переинициализируется и fN_bool_TO_int := sum; не возвращает "0"?
Функция при каждом вызове выполняется как в первый раз, с чистого листа. Т.е., при каждом вызове у вас будет и sum и ft1 и ft2 равны нулю