Блоки в LD
Используя Быстрый LD редактор, вы подключаете функциональные блоки к логическим линиям. Функция, в действительности, может быть оператором, функциональным блоком или функцией. Так как блоки не всегда имеют логические входы и/или логические выходы, введение блоков в LD диаграммы приводит к добавлению нескольких новых параметров EN, ENO в интерфейс блока. Параметры EN, ENO не добавляются, если вы используете FBD/LD редактор, и вы можете подключить переменные требуемого типа.
Вход "EN"
В некоторых операторах, функциях или функциональных блоках первый вход не булевский. Так как первый вход всегда должен быть подключен к шине, на первую позицию автоматически вводится другой вход, называемый “EN”. Блок выполняется только тогда, когда вход EN равен TRUE. Ниже представлен пример оператора сравнения и эквивалентный код на ST:
IF rung_state THEN
q := (value1 > value 2); ELSE q := FALSE; END_IF; (* продолжить шину с состоянием q *) |
Выход "ENO"
В некоторых операторах, функциях или функциональных блоках первый выход не булевский. Так как первый выход всегда должен быть подключен к шине, на первую позицию автоматически вводится другой выход, называемый “ENO”. Выход ENO всегда имеет то же значение, что и первый вход блока. Ниже представлен пример функционального блока AVERAGE и эквивалентный код на ST:
AVERAGE(rung_state, Signal, 100);
OutSignal := AVERAGE.XOUT; eno := rung_state; (* продолжить шину с состоянием eno*) |
параметры "EN" и "ENO"
В некоторых случаях требуются EN и ENO. Ниже представлен пример с арифметическим оператором и эквивалентный код на ST:
IF rung_state THEN
result := (value1 + value2); END_IF; eno := rung_state; (* продолжить шину с состоянием eno *) |