
- •Раздел 2. Программирование контроллеров 2
- •Раздел 2. Программирование контроллеров
- •2.1. Системное и прикладное программное обеспечение
- •2.2. Ос реального времени.
- •2.3. Рабочий цикл и время реакции плк
- •2.4. Классификация методов разработки по контроллеров
- •2.5. Стандарт iec 61131-3.
- •2.6. Инструментальная система программирования контроллеров iSaGraf.
- •2.7. Данные и переменные в iSaGraf
- •2.8. Языки программирования контроллеров
- •2.8.1. Язык sfc.
- •2.8.1.1. Основные графические компоненты языка.
- •2.8.1.2. Динамические правила языка sfc.
- •2.8.1.3. Описание действий внутри шагов.
- •2.8.1.4. Описание условий прикрепленных к переходу.
- •2.8.2. Язык fbd.
- •2.8.3. Язык ld.
- •2.8..4 Язык st.
- •2.8.5. Язык il
- •2.9. Программирование задач логического управления на стандартных языках.
- •2.10. Последовательность создания прикладных программ в системе iSaGraf.
- •2.11 Повторное использование кода в iSaGraf
- •2.11.1. Типы программных модулей
- •2.11.2. Определение интерфейса программных модулей
- •2.11.3. Словарь локальных переменных
- •2.11.4. Вызов программного модуля
- •2.11.4.1. Вызов функций и подпрограмм
- •2.11.4.2. Вызов функциональных блоков
- •2.11.5. Управление программами-потомками на языке sfc.
- •2.12. Библиотека iSaGraf
2.8.1.3. Описание действий внутри шагов.
Описание действий выполняемых во время активности шага называют вторым уровнем шага SFC. Такое описание выполняется с использованием обычно языка ST (хотя и возможно использование и других языков) и дополнительных возможностей языка SFC так называемых текстовых возможностей. К ним относятся:
булевы действия
puls-действия
non-stored-действия
SFC-действия
Булевы действия
Они присваиваются булевой переменной значение активности шага.
Булева переменная может быть выходной или внутренней. Ей присваивают значение каждый раз, когда активные шаги начинаются или заканчиваются.
Синтаксис основных булевых действий следующий:
<boolean_variable>(N) присваивает переменной сигнал активности шага
<boolean_variable>; тот же самый эффект (атрибут N является необязательным)
/<boolean_variable>; присваивает переменной отрицание сигнала активности шага
<boolean_variable>(S) устанавливает переменную в TRUE, когда сигнал активности шага становится TRUE.
<boolean_variable>(R) сбрасывает переменную в FALSE, когда сигнал активности шага становится TRUE
Временные диаграммы, поясняющие принцип работы
PULS-действия
Это список команд на языке ST или IL, которые выполняются только один раз в момент активизации шага.
Синтаксис описания puls-действий
ACTION(P);
Операторы языка ST или IL;
END_ACTION;
NON-STORED-действия
Это список команд на языке ST или IL, которые выполняются на каждом цикле работы контроллера в течении всего периода активности шага.
Синтаксис
ACTION(N);
Операторы языка ST или IL;
END_ACTION;
Кроме puls и non-stored действий в стандарте определены (но не поддерживаются ISaGRAF) следующие классификаторы действий:
S – сохраняемое. Действие активируется и остается активным до сброса.
R – сброс. Действие деактивируется.
L – ограниченное по времени. Действие остается активным заданное время, но не дольше чем шаг.
SL – сохраняемое и ограниченное по времени. Действие остается активным заданное время, вне зависимости от шага.
D – отложенное. Действие активируется через заданное время после активации шага.
DS – отложенное сохраняемое. Действие активируется через заданное время после активации шага и остается активным до сброса.
SD – сохраняемое отложенное. Действие активируется через заданное время после активации шага, даже если шаг уже не активен.
SFC действия
Это дочерняя последовательность на языке SFC, запускаемая или уничтожаемое в соответствии с изменением сигнала активности шага. Кроме указанных возможностей в каждом шаге может осуществляться вызов подпрограмм, написанных на любом из остальных языков.
В отличии от макрошага, который пока не выполнится до конца, не происходит дальнейшего перехода, SFC-действие сразу прекращается при выполнении условия перехода.
SFC-действие может иметь один из следующих спецификаторов: N (“non-stored”), S (установки) или R (сброса).
Основные SFC-действий:
<child_program>(N); запускает дочернюю последовательность, когда шаг становится активным и уничтожает дочернюю последовательность, когда шаг становится неактивным
<child_program>; выполняет то же самое, что и предыдущее действие (атрибут N является необязательным)
<child_program>(S); запускает дочернюю последовательность, когда шаг становится активным - ничего не делается, когда шаг становится неактивным
<child_program>(R); уничтожает дочернюю последовательность, когда шаг становится активным - ничего не делается, когда шаг становится не активным