ГОСТ Р МЭК 61131-3—2016
8.1.5 Вычисление сетей
8.1.5.1 Общие положения
Порядок, в котором вычисляются сети и их элементы, не обязательно такой же. что и порядок, в
котором они помечаются или выводятся на экран. Аналогично, нет необходимости, чтобы все сети вы
числялись до того, как может быть повторено вычисление заданной сети.
Однако, когда тело программного компонента состоит из одной или нескольких сетей, результаты
вычисления сети внутри указанного тела должны быть функционально эквивалентны соблюдению сле
дующих правил:
a) Ни один элемент сети не вычисляется, пока не вычислены состояния всех его входов.
b
) Вычисление элемента сети не является окончательным, пока не вычислены состояния всех его
выходов.
c) Вычисление сети не завершено, пока не вычислены состояния выходов всех ее элементов,
даже если сеть содержит один из элементов управления выполнением.
d) Порядок вычисления сети должен соответствовать положениям для языка LD и для языка FBD.
8.1.5.2 Обратная связь
Считается, что в сети имеется обратная связь, если выход функции или функционального блока
используется как вход в функцию или функциональный блок, который предшествует ему в сети: а свя
занная переменная называется переменной обратной связи.
Например в приведенном ниже примере логическая переменная RUN является переменной об
ратной связи. Переменная обратной связи может также являться выходным элементом структуры дан
ных функционального блока.
Обратные связи можно использовать в описываемых графических языках, в соответствии со сле
дующими правилами:
a) Заданные в явном виде циклы, такие как приведенный в примере ниже а), могут появляться
только в языке FBD.
b
) Пользователь должен иметь возможность использовать определяемые разработчиком сред
ства для определения порядка выполнения элементов в явном виде, например, путем выбора пере
менных обратной связи для формирования заданного в неявном виде цикла, как показано в приведен
ном ниже примере Ь).
c) Переменные обратной связи должны инициализировав одним из механизмов. Начальное зна
чение используется во время первого вычисления сети. Ошибка возникает, если переменная обратной
связи не инициализирована.
d) После того, как элемент с переменной обратной связи вычислен как выход, новое значение
переменной обратной связи используется до следующего вычисления элемента.
Пример — Обратнаясвязь
+
------
+
ENABLE
------
|&
+-------1
| -----------RUN
------
+
II
+ - — +I+ - ~ +I
START 1
------
| >=1 |
-------
+ |
START2
------
1||
+ — III
I +— + I
+-----------------------------------------------------------------------+
а) Цикл, заданный в явном виде
206