CoDeSys V2.3 2-21
Пример: Если в SFC POU некоторый шаг активен дольше, чем время, заданное в его атрибутах (см.
ниже), устанавливается специальный флаг, доступный через переменную "SFCError" (SFCError
принимает значение TRUE в этом случае).
Вы можете использовать следующие переменные-флаги:
SFCEnableLimit: Переменная типа BOOL. При значении этой переменной ИСТИНА, задержка
времени шагов регистрируется в SFCError. Иначе задержки времени игнорируются.
SFCInit: Переменная типа BOOL. Когда переменная получает значение ИСТИНА, программа пе-
реходит на шаг Init и все SFC флаги сбрасываются. Шаг Init становится активным, но не выполняет-
ся, пока переменная имеет значение ИСТИНА. Как только SFCInit примет значение ЛОЖЬ, выпол-
нение программы продолжится.
SFCReset: Переменная типа BOOL. Работает подобно SFCInit. Но приостановка выполнения про-
исходит после шага инициализации Init. Поэтому флаг SFCReset можно сбросить в самом шаге Init.
Внимание: начиная с версии компилятора 2.3.7.0, флаг SFCReset сбрасывает также логические действия, ас-
социированные с МЭК шагами, чего не было ранее.
SFCQuitError: Переменная типа BOOL. Выполнение программы SFC приостанавливается, пока
переменная имеет значение ИСТИНА. После возвратаа ее значения в ЛОЖЬ, сбрасывается признак
ошибки SFCError и работа возобновляется.
SFCPause: Переменная типа BOOL. Выполнение программы SFC приостанавливается, пока эта пе-
ременная имеет значение ИСТИНА.
SFCError: Эта логическая переменная принимает значение ИСТИНА, когда происходит задержка
времени в некотором шаге. Если следом возникнет вторая ошибка, она не будет зафиксирована, ес-
ли флаг SFCError не был предварительно сброшен. Для уточнения причины ошибки необходимо
использовать флаги: SFCErrorStep, SFCErrorPOU, SFCQuitError, SFCErrorAnalyzation.
SFCTrans: Переменная типа BOOL. Принимает значение ИСТИНА, когда переход активируется.
SFCErrorStep: Переменная типа STRING. В этой переменной хранится имя шага, в котором обна-
ружена ошибка (задержка времени).
SFCErrorPOU: Переменная типа STRING. В этой переменной хранится имя компонента, в котором
обнаружена ошибка (задержка времени).
SFCCurrentStep: Переменная типа STRING. В этой переменной хранится имя активного шага. В
случае одновременного выполнения шагов в переменной сохраняется имя того шага, который нахо-
дится в правой ветви SFC диаграммы.
SFCErrorAnalyzationTable: Переменная типа ARRAY [0..n] OF ExpressionResult сообщает ре-
зультаты анализа условного выpажения перехода. Для каждого элемента выражения, формирующе-
го значение FALSE и соответственно задерживающего переход, заполняется структура, содержащая
наименование, адрес, комментарий и текущее значение.
Допускается максимум до 16 элементов (переменных), поэтому индексы массива имеют значения
от 0 до 15.
Структура ExpressionResult и неявно используемые функции анализа включены в библиотеку Ana-
lyzationNew.lib. Модули библиотеки можно использовать явно в других POU, не запрограммиро-
ванных в SFC.
Предварительным условием анализа является обнаружение задержки в шаге. Поэтому контроль
времени выполнения обязателен при анализе. Также обязательно должна быть объявлена перемен-
ная SFCError (см. выше).