ГОСТ Р МЭК 61131-3—2016
6.7.5 Правила эволюции
Начальная ситуация сети SFC характеризуется начальным шагом, который находится в активном
состоянии при инициализации программы или функционального блока, содержащего сеть.
Эволюции активных состояний шаговдолжны происходить вдоль направленных связей, когда они
вызваны очисткой одного или большего числа переходов.
Переход разрешен, когда все предшествующие шаги, присоединенные к соответствующему сим
волу перехода направленными связями, являются активными. Пересечение перехода происходит, ког
да переход разрешен и когда соответствующее условие перехода является истинным.
Очистка перехода вызывает деактивацию (или «сброс») всех непосредственно предшествующих
шагов, соединенных с соответствующим символом перехода направленными связями, с последующей
активацией всех непосредственно последующих шагов.
Изменение шаг/переход и переход/шаг всегда должно поддерживаться в соединениях элементов
SFC, то есть:
- два шага никогда не должны быть связаны непосредственно: они всегда должны разделяться
переходом;
- два перехода никогда не должны быть связаны непосредственно, они всегда должны разделять
ся шагом.
Когда очистка перехода приводит к активации нескольких шагов одновременно, то последова
тельности, к которым принадлежат такие шаги, называются параллельными последовательностями.
После их параллельной активации, эволюция таких последовательностей становится независимой.
Чтобы подчеркнуть особый характер таких конструкций, дивергенция и конвергенция параллельных
последовательностей обозначается двойной горизонтальной линией.
Ошибка возникнет, если имеется возможность того, что неприоритетные переходы в разветвлении
выбора, как показано в свойстве 2а таблицы 61, одновременно являются истинными. Пользователь
может предпринять меры предосторожности, чтобы избежать этой ошибки, как показано в свойствах 2Ь и
2с таблицы 61.
Синтаксис и семантика разрешенных комбинаций шагов и переходов определены в таблице 61.
Время очистки перехода теоретически может считаться пренебрежительно малым, но оно никогда
не будет равно нулю. На практике время очистки будет обусловлено реализацией программируемого
контроллера. По той же причине длительность активности шага никогда не может рассматриваться
равной нулю.
Несколько переходов, которые могут быть очищены параллельно, должны очищаться параллель
но. в пределах временных ограничений реализации конкретного программируемого контроллера и
ограничений по приоритету, определенных в таблице 61.
Испытание условия (условий) перехода преемника активного шага не выполняться до тех пор.
пока влияния активации шага не распространятся по программному компоненту, в которой описывается
шаг.
Рисунок 25 демонстрирует применение данных правил. На этом рисунке активное состояние шага
указано присутствием звездочки «*» в соответствующем блоке. Это примечание используется только
для иллюстрации, и не является обязательным свойством языка.
Применение правил, приведенных в этом подразделе, не может предотвратить формулировку
«небезопасных» SFC. таких как приведенная на рисунке 26 а), которая может продемонстрировать
неконтролируемое распространение маркеров. Аналогично, применение этих правил не может предот
вратить формулировку «недосягаемых» SFCs, таких как приведенная на рисунке 26 Ь). которая может
проявлять «замкнутое» поведение. Система программируемого контроллера рассматривает наличие
таких условий как ошибку.
Максимально допустимая ширина конструкций «дивергенции» и «конвергенции» в таблице 61
определяется разработчиком.
159