Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ АСУ ТП.doc
Скачиваний:
140
Добавлен:
28.05.2015
Размер:
869.38 Кб
Скачать

7.4. Функциональные карты

7.4.1. Синтаксис функциональных карт

Необходимость структурирования процесса последовательностного управление для небольших задач не сразу очевидна, но по мере того, как увеличивается сложность управляющих действий, хорошее функциональное описание становится обязательным. Для анализа задач управления методом "сверху вниз" ("top-down") и описания управляющих последовательностей был разработан инструмент, который название функциональные карты (sequentialfunction chart). Сегодня функцией карты как средство программирования предлагаются несколькими производителями ПЛК - Grafcet (Telemecanique), GRAPH-5 (Siemens), HI-FLOW (Hitachi) и др. Основные идеи, заложенные в эти языки, одинаковы, а различия имеют второстепенный характер.

Функциональную карту можно рассматривать как специализировани для описания управляющих последовательностей в виде графической схемы. К концу 1970-х годов первый язык функциональных карт — Grafcet (GRAphe de Commande Etape-Transition, фр. "Функциональная карта — пошаговый переход") — был разработан во Франции и позже стал основой для разработки международного стандарта IEC 848 («Подготовка функциональных карт для управляющих систем").

Функциональные карты описывают управляющие последовательности с помощью заранее определенных правил для:

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

- деталей исполнения каждого шага.

Функцииональная карта, соответственно, разделена на две части (рис. 7.25). Порядковая часть (sequence part) описывает последовательность главных управляющих шагов (левая сторона рис. 7.25 из пяти блоков), но не содержит исполняемых действий, которые описываются предметной (object), или управляющей (control), частью состоящей из блоков справа от "шагов". Каждое действие должно быть связано каким-либо шагом и может быть описано принципиальной схемой, логической цепью либо булевым выражением.

Порядковая часть функциональной карты в соответствии с IEC 848 состоит из столбца пронумерованных блоков, изображающих одиночные шаги. Вертикальная линия, соединяющая каждый блок с последующим, изображает активные соединения (прямые связи). Каждый переход от шага к шагу связан с логическим условием называемым условием перехода (transition condition) или преемственностью (receptivity). Булево выражение для условия перехода записано рядом с маленькой горизонтальной чертой, пересекающей связь между блоками. Если условие удовлетворено , т. е. соответствующее булево выражение истинно, происходит переход и система выполняет следующий шаг.

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

Сигнал "пустой" указывает на то, что резервуар пуст и его можно наполнить сно­ва. Этот сигнал связан с сигналом "старт" для того, чтобы можно было начать вы­полнение последовательности операций. На Шаге 2 донный клапан закрывается» запускается насос. Сигнал "полный" вырабатывается, когда достигнут предельный уровень жидкости. Программа переходит к Шагу 3; насос отключается и включается нагреватель. Нагреватель работает, пока не будет достигнута заданная температура (сигнал "температура"). В этот момент происходит переход к Шагу 4, нагреватель отключается и запускается таймер. При истечении времени ожидания ("timejut") происходит переход к Шагу 5, где подается команда на открытие выпускного клапа­на. Затем вся последовательность повторяется с самого начала.

Синтаксис функциональных карт подразумевает, что в любой момент времени каж­дый шаг может быть либо активным, либо неактивным. "Активный" означает, что шаг исполняется. Начальный шаг выделяется на функциональной карте двойной рамкой "Действие" — это описание команд, которые необходимо выполнить на каждом шаге С шагом может быть связано логическое условие, шаг становится активным, и соответствующие команды будут выполняться только тогда, когда логическое условие удовлетворено. Условное выполнение обеспечивает безопасность управления.

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

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

  • простые последовательности;

  • ветвление (альтернативная параллельная последовательность);

  • расщепление (синхронная параллельная последовательность).

В простой последовательности (simple sequence) существует только один переход после любого шага и только один шаг после любого перехода. В альтернативной параллельной последовательности (alternative parallel sequence) существуют два или более переходов после одного шага (рис. 7.26). В этом случае исполнение может пойти по разным ветвям в зависимости от внешних условий. Обычно это условия типа "если-то-иначе", которые полезны при описании, например, аварийных ситуации.

В альтернативной параллельной последовательности очень важно удостовериться, что условие выбораодной из ветвей программы непротиворечиво и однозначно; другими словами, альтернативные ветви нельзя запускать одновременно. Каждая ветвь альтернативной параллельной последовательности должна всегда начинаться логическим условием перехода.В синхронной параллельной последовательности (simultaneous parallel sequence) после перехода предусматриваются два или более шагов, которые могут быть активными одновременно (рис. 7.27). Таким образом, синхронная параллельная последовательность представляет собой одновременное исполнение нескольких действий.

Двойные горизонтальные линии указывают на параллельное исполнение. При выполнении условия перехода обе ветви становятся активными одновременно и выполняются независимо и параллельно. Переход к шагу, расположенному после нижней двойной горизонтальной линии, может произойти только после завершения одновременно выполнявшихся ветвей. Это соответствует нотации cobegin-coend языков программирования реального времени (раздел 10.1.3).

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

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