
- •Раздел 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. Языки программирования контроллеров
2.8.1. Язык sfc.
SFC – графический язык, предназначен для описания последовательных операций по контролю и управлению объектом, которые могут быть представлены набором шагов, соединенных условными переходами. Шаг представляет собой список операций над переменными. Переход - условное логическое выражение, определяющее передачу управления к следующей паре шаг-переход. По внешнему виду описание на языке SFC напоминает хорошо известные логические блок-схемы алгоритмов. SFC имеет возможность распараллеливания алгоритма и описывать последовательно-параллельные задачи в понятной и наглядной форме.
Однако SFC не имеет средств для описания шагов и переходов, которые могут быть выражены только средствами других языков стандарта (обычно на языке ST).
Происхождение: Grafcet (Telemechanique-Groupe Schneider).
2.8.1.1. Основные графические компоненты языка.
Шаг изображается одинарным квадратом. К шагам адресуются по номерам, написанным на квадратике шага. Основное описание шага записывается в прямоугольник, присоединённый к символу шага.
Переход изображается пересекающейся линией. Условие перехода записывается в прямоугольнике, присоединенном к нему.
Каждый шаг и переход должны иметь уникальный идентификатор, по которому к нему ссылаются из других программ. У шага по умолчанию идентификатор GSnnn, где nnn – номер шага. У перехода GTnnn.
GSnnn является сложной переменной, состоящей из 2-х компонентов:
GSnnn.х – булева переменная, обозначающая активность шага;
GSnnn.t – таймерная переменная. Время прошедшее с момента последней активации шага.
Макрошаг – это уникальная группа шагов и переходов на языке SFC, записанных отдельно и изображаемых в основной программе в виде одного символа. Сам макрошаг представляет собой автономную схему, где первый шаг не имеет верхнего соединения, т.е. к нему нет явного перехода, а конечный шаг не имеет нижнего соединения, т.е. от него нет переходов. Область его использования ограничена компактным описанием основной схемы и возможностью переноса макросов в различные программы и проекты.
Пример программы на языке SFC с макрошагом:
Ссылочный номер, записанный в символе макрошага основной схемы или программы – это ссылочный номер первого шага в теле макрошага.
Одинарная дивергенция – это множественное соединение от одного шага к нескольким переходам. Условие переходов должно быть взаимоисключающим. Одинарная конвергенция – это множественное соединение от нескольких переходов к одному шагу. Используется, чтобы сгруппировать ветви программы, берущие начало из одинарной дивергенции.
Двойная дивергенция – это множественное соединение от одного перехода к нескольким шагам, выполняемые параллельно. Двойная конвергенция – это множественное соединение от нескольких шагов к одному и тому же переходу. Используется, чтобы сгруппировать ветви программы, берущие начало в двойной конвергенции.
Пример программы на языке SFC с двойной дивергенцией и конвергенцией.
2.8.1.2. Динамические правила языка sfc.
В этом языке есть динамические правила, которым подчиняется логика выполнения программ:
В каждой программе должен присутствовать, по крайней мере, один шаг инициализации, который в начале выполнения программы находится в активном состоянии. Могут быть установлены начальные значения переменных
Правило выполнения перехода. Переход происходит, если выполняются два условия: 1) все шаги, предшествующие переходу должны быть активны; 2) условие перехода истинно. Если одно из условий не выполняется, переход не может быть произведен.
Правило изменения состояния активности шагов. Выполнение переходов немедленно приводит к активному состоянию непосредственно следующих за ним шагов и неактивному состоянию непосредственно предшествующих шагов.
Е
сли во время выполнения программы шаг одновременно активизирован и деактивизирован приоритет отдаётся активизации.