Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Язык последовательных функциональных схем

Выход из цикла посредством инструкции EXIT

- Ключевое слово EXIT используется для остановки вычислений в цикле и продолжения с инструкции, следующей за ключевым словом конца цикла.

- Оно может быть использовано только внутри одного из трех циклов: WHILE, REPEAT или FOR.

- Оно прерывает выполнение ближайшего цикла, т.е. не останавливает выполнение других окружающих его циклов.

Теория конечных автоматов, используемая для формализации состояний сложных процессов управления, опирается на различные графические модели описания состояний. Одной из наиболее известных является модель, предложенная К. Петри, названная «Сети Петри» или диаграмма состояний, которая послужила теоретической основой языка последовательных функциональных схем.

Язык последовательных функциональных схем (Sequential Function Charts, или GrafcetSFC) позволяет формулировать логику программы на основе чередующихся процедурных шагов и транзакций (условных переходов), а также описывать последовательно-параллельные задачи в понятной и наглядной форме.

Строго говоря, SFC не является языком программирования. Это средство проектирования прикладного программного обеспечения, которое всегда является комплексом большого числа программных единиц: программ, функциональных блоков, функций. Обеспечение параллельности выполнения программ, установление и контроль состояния порожденных процессов, обеспечение синхронизации по приему и обработке данных, описание однозначно понимаемых и заказчиком, и исполнителем состояний автоматизируемого процесса – все это возможно при использовании «языка программирования» SFC. Однако, SFC не имеет средств для описания шагов и переходов, которые могут быть выражены только средствами других языков стандарта IEC. Происхождение: Grafcet (Schneider).

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

Операции, связанные с шагами, обозначаются в общей форме типа «что должно быть сделано», когда шаги активированы. Последовательность активированных шагов в любой заданный момент времени определяет ситуацию в диаграмме языка SFC.

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

Каждый переход имеет условия, которые проверяются при разрешенном переходе. Если условия перехода не указаны, то всегда предполагается, что они ложны (false).

Действия и условия перехода программируются на других языках – LD, IL, или ST.

Язык SFC использует следующие структурные элементы для создания программы: шаг (Step), переход (Transition), прыжок (Jump) и связи типа ответвления (Branch) и соединения (Joint).

Пример блока типа «Шаг» показан на рис.3.4. Шаг представляется блоком, содержащим имя шага. Имя шага должно быть уникальным для всей программы.

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

 

 

Рис.3.4. Шаг

 

Действия, которые должны выполниться в то время, когда шаг активен, должны быть связаны с шагом. Действия объявляются в диалоге реквизитов инициализации шага.

Шагу либо не назначаются никакие действия, либо назначаются множественные действия. Шаг, которому не назначено действие, имеет функцию ожидания, т.е. он ждет до тех пор, пока переход, следующий за шагом, не станет истинным.

Действие – это выходная переменная с типом данных BOOL.

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

Действие может также применяться как входной сигнал в другой секции с использованием переменной. Эта переменная также называется переменной действия.

Изображение элемента «Переход» показано на рис.3.5. Переход указывает условие, которое передает управление от одного или нескольких шагов, предшествующих переходу, к одному или нескольким последующим шагам по направлению соответствующей связи. Переход является переменной с типом данных BOOL.

 

 

Рис.3.5. Элемент «Переход»

 

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

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

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

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

 

 

 

Рис. 3.4. Структурные элементы языка SFC

 

Язык SFC подразделяет секцию на отдельные логические последовательные этапы с использованием шагов и переходов, которые чередуются на функциональной диаграмме (рис. 3.5).

 

 

Рис. 3.5. Пример функциональной диаграммы SFC

 

Два шага никогда не могут быть соединены непосредственно; они должны всегда отделяться переходом.

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

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

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

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

В дополнение к этим структурным элементам в секции SFC может также размещаться текст. Текстовые объекты могут быть помещены только в пустые ячейки.

Одиночные последовательности. В одиночной последовательности чередование; шагов и переходов повторяется последовательно (рис. 3.6).

 

 

Рис. 3.6. Пример одиночной последовательности

 

Последовательный процесс перехода из шага S _10 в шаг S _11 будет осуществляться, только когда шаг S _10 находится в активном состоянии и когда условие перехода «a» истинно.

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

Имеется два вида прыжков: прыжок последовательности и контур последовательности.

Прыжок последовательности является частным случаем альтернативного ответвления, где одно или несколько ответвлений не содержат шаги (рис. 3.7).

 

 

Рис. 3.7. Пример альтернативного ответвления с прыжком

 

Последовательный процесс перехода из шага S _10 через шаги S _11 и S _12 в шаг S _13 выполняется, только когда шаг S _10 является активным и условие перехода а истинно. Последовательный процесс перехода из шага S _10 прямо в шаг S _13 выполняется, только когда шаг S _10 является активным и условие «a» ложно, а условие перехода «b» истинно.

Контур последовательности (рис. 3.8) – это частный случай альтернативного ответвления, где одно или несколько ответвлений выполняют возврат к предыдущему шагу.

 

 

Рис. 3.8. Пример контура последовательности

 

Последовательный процесс перехода из шага S _11 в шаг S _10 выполняется, только если условие перехода «b» является ложным, а условие «c» – истинным.

Ответвления. Различают альтернативное ответвление и параллельное ответвление.

Альтернативное ответвление – это условное программирование ответвлений в потоке управления SFC -структуры.

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

 

 

Рис. 3.9. Пример альтернативного ответвления

 

Только один из этих переходов может функционировать в данный момент времени. Какое ответвление будет осуществляться, определяется результатом выполнения условия перехода для переходов, которые следуют за альтернативным ответвлением. Переходы ответвления обрабатываются слева направо. Если условие перехода истинно, остающиеся переходы больше не будут обрабатываться. Ответвление с истинным переходом становится активным. Результатом является приоритет обработки ветвей слева направо. Если никакой переход не действует, активный в настоящее время шаг остается активным.

Последовательный процесс перехода из шага S _10 в шаг S _11 выполняется, только когда шаг S _10 является активным, а условие перехода «a» истинным. Последовательный процесс перехода из шага S _10 в шаг S _12 выполняется только, когда шаг S _10 является активным, условие перехода «a» ложным, а условие «b» истинным.

Все альтернативные ответвления должны быть соединены снова в одну ветвь с использованием альтернативных соединений или прыжков.

В параллельных ответвлениях (рис. 3.10) обработка разбивается на две или больше последовательностей, которые обрабатываются параллельно.

 

 

Рис. 3.10. Пример параллельного ответвления

 

Только один общий переход позволяется непосредственно выше горизонтальной двойной линии синхронизации.

Последовательный процесс перехода из шага S _10 в шаги S _11, S _12, S _13 выполняется, только если шаг S _10 активен и условие перехода «a», которое является общим условием перехода, истинно. После параллельной активации шагов S _11, S _12, S _13 последовательности шагов обрабатываются независимо друг от друга.

Соединение. Различают альтернативное соединение и параллельное соединение.

При альтернативном соединении различные ветви альтернативного ответвления соединяются снова в одну ветвь, где затем продолжается обработка (рис. 3.11). Это соединение может также выполняться прыжком.

 

 

Рис. 3.11. Пример альтернативного соединения

 

Последовательный процесс перехода из шага S _10 в шаг S _12 выполняется, только когда шаг S _10 активный и условие перехода «d» истинно. Последовательный процесс перехода из шага S _8 в шаг S _12 выполняется, только если шаг S _8 активный и условие перехода «b» истинно и, следовательно, выполняется прыжок в шаг S _12. Последовательный процесс перехода из шага S _11 в шаг S _12 выполняется, только когда шаг S _11 является активным и условие перехода «e» истинно. Только одна из этих ветвей, соответствующая первому условию перехода в альтернативном ответвлении, является активной.

Параллельное соединение объединяет два или более параллельных ответвления, чтобы сформировать одну ветвь (рис. 3.12).

 

 

Рис. 3.12. Пример параллельного соединения

 

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

Последовательный процесс перехода из шагов S _10, S _11, S _12 в шаг S _13 выполняется, только если шаги S _10, S _11, S _12 являются активными одновременно, а условие перехода «d», которое является частью общего перехода, истинно.

Пример структуры программы на языке SFC показан рис. 3.13.

 

 

Рис. 3.13. Пример программы на языке SFC

 

Основные достоинства SFC можно определить следующим образом:

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

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

- Предварительное проектирование ПО. Использование языка SFC на ранних этапах проектирования прикладного ПО позволяет снять многочисленные непонимания между заказчиком, проектировщиком ПО и программистом.


 

<== предыдущая лекция | следующая лекция ==>
Применение управляющих структур | Микропроцессорные реле автоматики
Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 1228; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.