Вариант 2:
Owen.jpg
Код:
function_block FIFO10_
var_input
PUSH, POP, SH : bool; // Втолнуть, вытолкнуть, сдвинуть очередь
end_var
var_output
Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10 : bool;
end_var
var
Q : udint; // Стек
rtPUSH, rtPOP, rtSH : SYS.RTRIG; // Фиксатор кнопок
end_var
rtPUSH(I:=PUSH); rtPOP(I:=POP); rtSH(I:=SH);
if rtPUSH.Q then Q.0 := TRUE; end_if
if rtPOP.Q then Q.9 := FALSE; end_if
if rtSH.Q then Q := shl(Q, 1); end_if
Q1 := Q.0; Q2 := Q.1; Q3 := Q.2; Q4 := Q.3; Q5 := Q.4; Q6 := Q.5; Q7 := Q.6; Q8 := Q.7; Q9 := Q.8; Q10 := Q.9;
end_function_block
Ну или:
Owen1.jpg