Цитата Сообщение от zendo057 Посмотреть сообщение
Есть ли ФБ декодер 4-16? Если есть выложите пожалуйста.
В библиотеке OSCAT есть ФБ DEC_8
Скрытый текст:
Код:
FUNCTION_BLOCK DEC_8
VAR_INPUT
    D: BOOL;
    A0: BOOL;
    A1: BOOL;
    A2: BOOL;
END_VAR
VAR_OUTPUT
    Q0: BOOL;
    Q1: BOOL;
    Q2: BOOL;
    Q3: BOOL;
    Q4: BOOL;
    Q5: BOOL;
    Q6: BOOL;
    Q7: BOOL;
END_VAR
VAR
    X : INT;
END_VAR

(*
version 1.3    28. mar. 2009
programmer  hugo
tested by  oscat
a bit input will be decoded to one of the 8 outputs
dependent on the Adress on A0, A1 and A2
*)
X.0 := A0; X.1 := A1; X.2 := A2;

Q0 := FALSE;
Q1 := FALSE;
Q2 := FALSE;
Q3 := FALSE;
Q4 := FALSE;
Q5 := FALSE;
Q6 := FALSE;
Q7 := FALSE;

CASE X OF
    0 : Q0 := D;
    1 : Q1 := D;
    2 : Q2 := D;
    3 : Q3 := D;
    4 : Q4 := D;
    5 : Q5 := D;
    6 : Q6 := D;
    7 : Q7 := D;
END_CASE;

Если немного подправить для Вашего случая, то будет так
DEC_16:
Код:
FUNCTION_BLOCK DEC_16
VAR_INPUT
    D: BOOL;
    A0: BOOL;
    A1: BOOL;
    A2: BOOL;
    A3: BOOL;
END_VAR
VAR_OUTPUT
    Q0: BOOL;
    Q1: BOOL;
    Q2: BOOL;
    Q3: BOOL;
    Q4: BOOL;
    Q5: BOOL;
    Q6: BOOL;
    Q7: BOOL;
    Q8: BOOL;
    Q9: BOOL;
    Q10: BOOL;
    Q11: BOOL;
    Q12: BOOL;
    Q13: BOOL;
    Q14: BOOL;
    Q15: BOOL;
END_VAR
VAR
    X: INT;
END_VAR
X.0 := A0; X.1 := A1; X.2 := A2; X.3 := A3;

Q0 := FALSE;
Q1 := FALSE;
Q2 := FALSE;
Q3 := FALSE;
Q4 := FALSE;
Q5 := FALSE;
Q6 := FALSE;
Q7 := FALSE;
Q8 := FALSE;
Q9 := FALSE;
Q10 := FALSE;
Q11 := FALSE;
Q12 := FALSE;
Q13 := FALSE;
Q14 := FALSE;
Q15 := FALSE;
CASE X OF
    0 : Q0 := D;
    1 : Q1 := D;
    2 : Q2 := D;
    3 : Q3 := D;
    4 : Q4 := D;
    5 : Q5 := D;
    6 : Q6 := D;
    7 : Q7 := D;
    8 : Q8 := D;
    9 : Q9 := D;
    10: Q10:= D;
    11: Q11:= D;
    12: Q12:= D;
    13: Q13:= D;
    14: Q14:= D;
    15: Q15:= D;
END_CASE;

Захват-1.png