Вот еще попробовал создать функцию fBOOL_INT на ST - аналог макроса BOOL_INT
Можно конечно еще причесать через FOR...
Код:function fBOOL_INT: udint; //имя функции и тип данных выхода var_input //объявление входных переменных IN01 : bool; //входная переменная с типом данных bool IN02 : bool; //входная переменная с типом данных bool IN03 : bool; //входная переменная с типом данных bool IN04 : bool; //входная переменная с типом данных bool IN05 : bool; //входная переменная с типом данных bool IN06 : bool; //входная переменная с типом данных bool IN07 : bool; //входная переменная с типом данных bool IN08 : bool; //входная переменная с типом данных bool end_var var //объявление локальных переменных sel1 : udint; //локальная переменная с типом данных udint sel2 : udint; //локальная переменная с типом данных udint sel3 : udint; //локальная переменная с типом данных udint sel4 : udint; //локальная переменная с типом данных udint sel5 : udint; //локальная переменная с типом данных udint sel6 : udint; //локальная переменная с типом данных udint sel7 : udint; //локальная переменная с типом данных udint sel8 : udint; //локальная переменная с типом данных udint end_var if IN01 then sel1 :=1; else sel1 :=0; end_if if IN02 then sel2 :=2; else sel2 :=0; end_if if IN03 then sel3 :=4; else sel3 :=0; end_if if IN04 then sel4 :=8; else sel4 :=0; end_if if IN05 then sel5 :=16; else sel5 :=0; end_if if IN06 then sel6 :=32; else sel6 :=0; end_if if IN07 then sel7 :=64; else sel7 :=0; end_if if IN08 then sel8 :=128; else sel8 :=0; end_if fBOOL_INT := sel1+sel2+sel3+sel4+sel5+sel6+sel7+sel8; end_function




Ответить с цитированием