Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 2. Методы программирования контроллеров.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.66 Mб
Скачать

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. Правило выполнения перехода. Переход происходит, если выполняются два условия: 1) все шаги, предшествующие переходу должны быть активны; 2) условие перехода истинно. Если одно из условий не выполняется, переход не может быть произведен.

  3. Правило изменения состояния активности шагов. Выполнение переходов немедленно приводит к активному состоянию непосредственно следующих за ним шагов и неактивному состоянию непосредственно предшествующих шагов.

  4. Е сли во время выполнения программы шаг одновременно активизирован и деактивизирован приоритет отдаётся активизации.