Сети Петри и язык программирования ПЛК SFC

Сети Петри - математический аппарат для моделирования динамических дискретных систем (впервые описаны Карлом Петри в 1962 году). На рисунке 3.21 приведен пример сети Петри. Белыми кружками обозначены позиции, полосками - переходы, черными кружками - метки.

Пример сети Петри

Рисунок 3.21 - Пример сети Петри

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

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

Как и стандартные UML диаграммы, сети Петри предоставляют возможность графически иллюстрировать процессы включающие выбор, итерации и одновременное выполнение. Но в отличие от данных стандартов, у сетей Петри четкая математическая формулировка и за ними стоит развитая математическая теория. На основании теории сетей Петри был разработан стандарт языка программирования ПЛК - язык последовательных функциональных схем (SFC). В простейших ПЛК этот язык, как правило, не представляется, но для ПЛК Zelio Logic этот язык реализован в виде набора функциональных блоков, объединенных в инструментальной панели SFC (рисунок 3.22).

Инструментальная панель SFC

Рисунок 3.22 - Инструментальная панель SFC

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

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

Шаги и переходы могут быть использованы для отображения и управления последовательностью состояний процесса. Каждая фаза процесса представлена блоком Step (шаг), показанным на рисунке 3.23. Он имеет два входа Step input 1 и Step input 2, по которым передаются управляющие метки (маркеры). При получении на любой из этих входов маркера шаг становится активным. В этом случае говорят, что шаг имеет маркер статуса (status token). После перехода шага в активное состояние на выходе блока Step output формируется логическая единица.

Блок Step (шаг)

Рисунок 3.23 - Блок Step (шаг)

Для деактивации шага используется бинарный вход Transition. При подаче на него логической единицы через выход Step transition маркер передается на следующий шаг процесса и на выходе Step output устанавливается логический ноль. Если шаг не активен, то подача сигнала на вход Transition ничего не меняет. Если нужно одновременно передать маркер активации двум блокам Step, то используется блок Div-AND (divergence to AND), представленный на рисунке 3.24. После передачи маркера активации с блока В00 активируются одновременно блоки ВОЗ и В02. Для выборочной передачи активности на два следующих шага процесса используется блок Divergence to OR (рисунок 3.25). При передаче маркера на этот блок активируется выход Step out и блок ожидает подачи сигналов на разрешение перехода к блоку В02 (вход Transition 2).

блоку ВОЗ (вход Transition 1) или к

Блок управляемой передачи активности Div - OR

Рисунок 3.25 - Блок управляемой передачи активности Div - OR

Блок распараллеливания процессов

Рисунок 3.24 - Блок распараллеливания процессов

Для слияния процессов используется блок Convergence to OR (рисунок 3.26). Активирование перехода любой из верхних фаз приведет к активации нижнего шага. То есть, активация шага В02 произойдет либо через

шаг В00, либо через шаг ВОЗ.

Блок слияния процессов Conv-OR

Рисунок 3.26 - Блок слияния процессов Conv-OR

Второй блок слияния процессов Convergence to AND позволяет активировать нижележащий шаг только в том случае, если активированы оба вышележащих шага. Этот блок показан на рисунке 3.27. При использовании данного блока управляющий маркер на нижележащий шаг передается только тогда, когда активированы оба вышележащих шага. Передача активности осуществляется подачей логической единицы на вход Transition. Оба вы

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

В программе на языке FBD для Zelio Logic может присутствовать несколько независимых диаграмм из блоков языка SFC, но каждая из них должна начинаться блоком инициализации, который будет получать активность (маркер) при запуске программы или после возобновления подачи питания (вследствие сбоя). На рисунке 3.28 представлены два таких блока.

vv BOO w ВОЗ

Блок одновременного слияния процессов vv B06 vv B07

Рисунок 3.27 - Блок одновременного слияния процессов vv B06 vv B07

--v a) —V 6)

Рисунок 3.28 - Блоки начальной инициализации диаграммы SFC

vv В06

Создание цикла в диаграмме SFC

Рисунок 3.29 - Создание цикла в диаграмме SFC

Блок начальный шаг (рисунок 3.28а) по своим параметрам похож на блок шага (Step), только он автоматически инициализируется в следующих случаях: при начале эмуляции, при переключении ПЛК в режим RUN и после нормального возвращения питания, вследствие сбоя.

Блок, переустанавливаемый инициализирующий шаг SFC, (рисунок 3.286) отличается от блока начального шага только возможностью перезапуска с помощью дополнительного входа Reset. Если этот вход не задействован, то данный блок ведет себя также как и блок начального шага.

Диаграммы блоков SFC могут образовывать замкнутые циклы, то есть последовательность операций без завершения, как это показано на рисунке 3.29.

В данном подразделе рассмотрены основные методы формализации построения программ для ПЛК, реализующих логические системы управления. Чтобы, понять, как это делать на практике, в следующем подразделе будут рассмотрены различные конкретные примеры создания САУ на базе ПЛК.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >