Язык SFC. Структура программы, основные элементы и правила программирования.

SFC (Sequential Function Chart) – язык последовательных функциональных схем, с помощью которого программа представляется последовательностью шагов, разделяемых переходами. Язык хорошо приспособлен для программирования задач логического управления. Очень нагляден.

Язык предназначен для описания последовательных операций по контролю и управлению объектом, которые могут быть представлены набором хорошо описанных шагов, соединенных условными переходами. К каждому переходу присоединяется булево (логическое) условие, обычно записанное на языке ST. Действие внутри шагов детально описываются на других языках, обычно также на ST.

1. Основные компоненты языка SFC.

 
  Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru

Одинарная дивергенция и Двойная дивергенция и

конвергенци конвергенция

Шаг изображается одинарным квадратом. К шагам адресуются по номерам, написанным на квадратике шага. Основное описание шага записывается в прямоугольник, присоединённый к символу шага.

Переход изображается пересекающейся линией. Условие перехода записывается в прямоугольнике, присоединенном к нему.

Каждый шаг и переход должны иметь уникальный идентификатор, по которому к нему ссылаются из других программ. У шага по умолчанию идентификатор GSnnn, где nnn – номер шага. У перехода GTnnn.

GSnnn является сложной переменной, состоящей из 2-х компонетов: GSnnn.х – булева переменная, обозначающая активность шага;

GSnnn.t – таймерная переменная. Время, прошедшее с момента последней активации шага.

Одинарная дивергенция – это множественное соединение от одного шага к нескольким переходам. Условие переходов должно быть взаимоисключающим, чтобы гарантировать, что во время выполнения программы активизируется одна конкретная ветвь.

Одинарная конвергенция – это множественное соединение от нескольких переходов к одному шагу. Используется, чтобы сгруппировать ветви программы, берущие начало из одинарной дивергенции.

Двойная дивергенция – это множественное соединение от одного перехода к нескольким шагам, выполняемым параллельно.

Двойная конвергенция – это множественное соединение от нескольких шагов к одному и тому же переходу. Используется, чтобы сгруппировать ветви программы, берущие начало в двойной конвергенции.

Макрошаг – это уникальная группа шагов и переходов на языке SFC, записанных отдельно и изображаемых в основной программе в виде одного символа. Ссылочный номер, записанный в символе макрошага основной схемы или программы, – это ссылочный номер первого шага в теле макрошага. Сам макрошаг представляет собой автономную схему, где первый шаг не имеет верхнего соединения, то есть к нему нет явного перехода, а конечный шаг не имеет нижнего соединения, то есть от него нет переходов. Поскольку макрошаг является уникальным набором шагов и переходов, он не может использоваться в программе на языке SFC более одного раза.

Основная программа Тело макрошага

Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru

2. Понятиеактивностишага.

В каждый момент времени как минимум один шаг является активным. Активность шага подразумевает, что на каждом цикле работы контроллера выполняются все действия прикрепленные к этому шагу. Правила, по которым активность шагов меняется, называются динамическими правилами языка SFC.

3. ДинамическиеправилаязыкаSFC.

1) В каждой программе должен присутствовать, по крайней мере, один шаг инициализации, который в начале выполнения программы находится в активном состоянии. В этом шаге обычно устанавливаются начальные значения переменных.

2) Переход может быть разрешен, если совместно выполняются два условия: а) условие перехода истинно; и б) все непосредственно предшествующие шаги, присоединённые к нему, активны. Если одно из условий не выполняется, переход запрещён и не может быть произведен.

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

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

4. Описание действий внутри шагов.

Описание действий выполняемых во время активности шага, называют вторым уровнем шага SFC. Такое описание обычно выполняется с использованием языка ST (хотя возможно использование и других языков) и дополнительных возможностей языка SFC, так называемых текстовых возможностей. К ним относятся:

1. булевы действия;

2. puls-действия;

3. non-stored-действия;

4. SFC-действия.

Булевы действия

Они присваивают булевой переменной значение активности шага. Булева переменная может быть выходной или внутренней. Ей присваивают значение каждый раз, когда активные шаги начинаются или заканчиваются. Синтаксис основных булевых действий и соответствующие им временные диаграммы приведены ниже.

<boolean_variable>(N); присваивает переменной сигнал активности шага;

<boolean_variable>; тот же самый эффект (атрибут N является необязательным);

/<boolean_variable>; присваивает переменной отрицание сигнала активности шага;

<boolean_variable>(S); устанавливает переменную в 1, когда сигнал активности шага 1

Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru <boolean_variable>(R); сбрасывает переменную в FALSE, когда сигнал активности шага становится TRUE.




Puls-действия

Это список команд на языке ST или IL, которые выполняются только один раз в момент активизации шага

Синтаксис:

ACTION(P):

Операторы языка ST или IL; END_ACTION;

Non-stored-действия

Это список команд на языке ST или IL, которые выполняются на каждом цикле работы контроллера в течение всего периода активности шага (рисунок 4).

Синтаксис описания Non-stored-действия: ACTION(N):

Операторы языка ST или IL; END_ACTION;

 
  Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru

SFC действия

Это дочерняя последовательность на языке SFC, запускаемая или уничтожаемое в соответствии с изменением сигнала активности шага.

В отличии от макрошага, который пока не выполнится до конца, не происходит дальнейшего перехода, SFC-действие сразу прекращается при выполнении условия перехода.

SFC-действие может иметь один из следующих спецификаторов: N (“non-stored”), S (установки) или R (сброса).

Основные понятия теории автоматов. Автоматы Мили и Мура. Их аналитическое, табличное и графическое представление.

Абстрактный автомат – это математическая модель системы, обеспечивающая прием хранение и обработку информации.

Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru

Рис.1 Графическое изображение автомата

Х – множество, называемое входным алфавитом автомата;

Y - множество, называемое выходным алфавитом автомата;

Q – множество внутренних состояний автомата;

Для абстрактного автомата эти множества бесконечны. В реальных технических системах множества конечны, и автомат называется конечным.

Работа автомата заключается в следующем: на вход автомата подается послед-ность разрешенных входных значений, которые преобразуются в набор внутренних состояний. На выходе автомат генерирует выходную последовательность, которая зависит от входных значений и от внутреннего состояния. Внутреннее состояние представляет из себя некоторую память о прошлом и устраняет из работы автомата понятие времени.

Математически понятия автомата можно представить следующим образом:

A=(X, Y, Q, φ, ψ, q0)

X, Y, Q – определены выше;

Ψ – функция переходов ψ: эта ф-ция ставит в соответствие входному множеству Q и X новое множество состояний команд

Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru

φ – функция выходов φ: преобразует внутреннее состояние и входной сигнал в выходной сигнал

Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru

q0 – начальное состояние автомата.

Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru

Рис. 2. Автомат Мили

Кроме автомата Мили существует автомат Мура у которых в отличие от автомата Мили выходные значения зависят только от внутреннего состояния.

Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru

Рис. 3. Автомат Мура

В теории автоматов функции φ и ψ обычно не представляют аналитически, т.е. в какой то определенной форме, а имеют табличную форму представления.

Детерминированный автомат – функции перехода и выходы определены для всех входных сигналов. Если некоторые варианты функции не определены до конца (отсутствуют), то автомат называется частично определенным или недетерминированым.

1. Детерминированный автомат Мили (φ, ψ)

Текущее состояние, q Символы входного алфавита, х
x1 x2 xn
q1 q;y q;y q;y
q2 q;y
qm

2. Недетерминированный автомат Мили (φ, ψ)

Текущее состояние, q Символы входного алфавита, х
x1 x2 x3 x4
q1 q2;y1;y2 *;* *;* Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru q3;y1;y2
q2 *;* q1;y1;y2 *;* Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru q3;y1;y2
q3 *;* *;* q4;y1;y2 *;*
q4 q1;y1;y2 *;* *;* *;*

Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru

3. Недетерминированный автомат Мура (φ, ψ)

Текущее состояние, q Символы входного алфавита, х Символы выходного алфавита, ψ
x1 x2 x3 x4
q1 q2 * * q3 y1;y2
q2 * q1 q4 * Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru y1;y2
q3 * q4 * * Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru y1;y2
q4 * * q1 * Язык SFC. Структура программы, основные элементы и правила программирования. - student2.ru y1;y2

Граф переходов, у которого в каждой вершине явно указаны значения каждой выходной переменной называется графом переходов с явным заданием всех выходных переменных, иначе граф переходов неявно задан.

Преимущества графа с явным заданием выходных переменных: простота понимания и простота внесения изменений; Граф переходов с неявным заданием переменных плохо читаемы и более сложны для понимания, но при физической реализации более экономично используют память программы.

Наши рекомендации