
Сообщение от
grenz
Красиво, но, все-таки, немного некорректно. В режиме эмуляции, до старта, даем 1 на несколько входов (I1,I2,I5). Запускаем эмуляцию, и на выходах (Q1,Q2,Q5) имеем 1. А задача несколько иная: выдать один и только один сигнал.
При возникновении нескольких фронтов (спадов) одновременно придется вводить приоритет:
Код:
function_block Tapki //имя функционального блока.
var_input //объявление входных переменных
I1,I2,I3,I4,I5,I6,I7,I8:bool;
end_var
var_output //объявление выходных переменных
Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8: bool;
end_var
if (I1 or I2 or I3 or I4 or I5 or I6 or I7 or I8) xor
(Q1 or Q2 or Q3 or Q4 or Q5 or Q6 or Q7 or Q8) then
Q1 := I1; if I1 then return; end_if
Q2 := I2; if I2 then return; end_if
Q3 := I3; if I3 then return; end_if
Q4 := I4; if I4 then return; end_if
Q5 := I5; if I5 then return; end_if
Q6 := I6; if I6 then return; end_if
Q7 := I7; if I7 then return; end_if
Q8 := I8; if I8 then return; end_if
end_if
end_function_block