Программирование ПК-85 с использованием автоматного подхода.


Лабораторная работа № 3.

Программирование ПК-85 с использованием автоматного подхода.

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

рис. 3.1 Пример сети Петри.

На приведенном примере 6 позиций (P1 – P6) и 6 переходов (T1 – T6). Позиции, из которых стрелка ведет в переход, будем называть входными позициями этого перехода, а позиции, к которым ведет стрелка из перехода, будем называть выходными позициями этого перехода. Так, например, позиции P3 и P4 являются выходными для перехода T2, но они же являются и входными позициями перехода T3. Входные и выходные переходы для вершин определяются аналогичным образом.
Сеть Петри является моделью, позволяющей исследовать динамику отображаемого процесса. Это делается с помощью наблюдения за перемещением фишек по позициям. В начале осуществляется начальная разметка (маркировка) – размещение фишек в некоторых позициях исходной сети. Затем, по мере «срабатывания» переходов, из всех входных позиций данного перехода изымается по одной фишке, а во все выходные позиции помещается по одной фишке. Однако, переход может сработать только в том случае, если во всех его входных позициях присутствует по крайней мере, по одной фишке, в этом случае говорят что переход возбужден.
Проследим за динамикой перемещения фишек в приведенном примере. Пусть начальная маркировка соответствует размещению фишки в позиции P1. В данной маркировке сети возбужденными являются два перехода: Т1 и Т2. В зависимости от того, какой из переходов сработает (это решение принимается вне формализма сети), фишка изымается из позиции Р1 и помещается в позицию Р2, либо в позицию Р5 (альтернативность). Предположим, фишка переместилась в позицию Р2. Срабатывание перехода Т4 приводит к перемещению фишки в позицию Р6, а при срабатывании Т2 (альтернативно Т4) фишка изымается из Р2 и помещается в Р3 и Р4 (параллельность). После срабатывания перехода Т3 фишка появляется в позиции Р6.
Сеть Петри является строгой математической моделью, позволяющей исследовать корректность алгоритмов, которые она моделирует. Именно это обстоятельство, наряду с высокой наглядностью, определило использование сетей Петри для моделирования процессов самой широкой природы, в том числе и дискретных технологических процессов.
Df: Сеть Петри называют “живой” (при заданной начальной маркировке S0), если в ней для любой пары маркировок Si, Sj маркировка Si достижима из маркировки Sj, и для любого перехода t существует такая пара маркировок Sn, Sm, что Sm непосредственно достижима из Sn (т.е. при срабатывании перехода t происходит переход от маркировки Sn к маркировке Sm).
Df: Сеть Петри называют “безопасной”, если в любой ее позиции, для любой маркировки, не может быть более одной фишки.
“Живые” и “безопасные” сети называют правильными сетями.
Задача распознавания принадлежности произвольной сети Петри к классу правильных решается путем построения для нее дерева (графа) достижимых маркировок. Вершинам такого графа сопоставляются элементы множества R(S0) – множество всевозможных маркировок, достижимых из начальной маркировки S0.
В качестве примера рассмотрим сеть Петри, приведенную на рисунке 3.2, с начальной маркировкой: S0 = (Р10, Р20, Р30, Р40) = (1,0,1,0). Примем начальную маркировку в качестве корня дерева. В ней возбужден только один переход Т3. Новой вершиной графа, соответствующей срабатыванию перехода Т3, будет вершина с маркировкой S1 = (1,0,0,1). Теперь возбужден переход Т2, и соответственно новой маркировкой, следующей за его срабатыванием, будет маркировка S2 = (1,1,1,0). Поскольку все компоненты S2 не меньше соответствующих компонент S0, а вторая компонента строго больше, то на место второй компоненты маркировки S2 помещается символ “*”, т.е. S2 = (1,*,1,0). Это отражает тот факт, что мы можем повторить из S0 последовательность Т3,Т2 неограниченное число раз и сделать число фишек в позиции Р2 сколь угодно большим. В маркировке S2 возбуждены два перехода – Т1 и Т2, которые при срабатывании дают две новые вершины с маркировками S3 = (1,*,0,0) и S4 = (1,*,0,1) соответственно. Первая из них является тупиковой, т.е. в данной маркировке ни один переход не возбужден. Во второй маркировке возбужден переход Т2, который при срабатывании дает маркировку S5 = (1,*,1,0), совпадающую с маркировкой S2.

рис. 3.2 Построение дерева достижимых маркировок:
а) распознаваемая сеть Петри;
б) дерево достижимых маркировок.

Т.о. построение дерева достижимых маркировок завершается на вершинах S3 и S5. Следовательно, данная сеть с данной начальной маркировкой не является ни “живой” (т.к. имеется тупиковая маркировка), ни “безопасной” (накопление фишек в позиции Р2), т.е. не является правильной.
Дискретный процесс моделируется нагруженной сетью Петри (рис 3.4). При этом позиции нагружаются исполнительными действиями, а переходы – условиями окончания этих действий, в качестве которых, например, выступают сигналы от датчиков положения. Нагруженная сеть называется графом операций. Граф операций может быть иерархическим, когда некоторые позиции (позиции – дублеры) раскрываются на более низком уровне (см. позицию 12 на рис. 3.4).
При переходе от графа к программе исполнительные действия, нагружающие позиции, записываются в виде исполнительных инструкций, а исполнительные действия, нагружающие переходы, в виде инструкций опроса. При инициировании или окончании параллельных процессов используются инструкции работы с параллельными ветвями. Позиции, являющейся первой позицией параллельного процесса присваивается числовое значение – номер параллельной ветви.

Язык ПАТ. Организация шаговых программ.

Рассмотрим фрагмент модели последовательной составляющей некоторого процесса на основе графа операций, приведенного на рисунке 3.3 а.
Назовем шагом в приведенной модели процесса связку: нагруженная позиция – нагруженный переход.
Рассмотрим программу на языке ПАТ (рис. 3.3 б), управляющую процессом, модель которого приведена на рисунке 3.3 а.

Шаг 1: Шаг 2: Шаг 3:
ВВ 104 ВВ 105 ВВ-104
ОУ 021 ЕУ 027 ВВ 110
УУ 040 ОУ 035
ПВ

рис. 3.3 Пример организации шаговых программ :
а) сеть Петри;
б) язык ПАТ.

Очевидно, шагу в модели процесса соответствует шаг в программе. В приведенном примере после перехода к очередному шагу происходит однократное выполнение исполнительной операции, затем программа зацикливается на опросе истинности логической функции, определяющей переход к следующему шагу (на самом деле при неистинности указанной логической функции управление передается программам параллельных ветвей, если таковые имеются). Так, после перехода к шагу 2 включается выход 105, после чего начинается циклический опрос инструкций ЕУ 027 УУ 040 ПВ. Часть шага, для которой организуется циклический опрос (иначе сканирование), будем называть кадром сканирования или просто кадром. Разрешение загрузки начала кадра устанавливается после перехода к очередному шагу, т.е. после выполнения инструкций смены шага (ОУ IJK, ОП IJK, ЗВ IJK, ПВ). Так же возможно явное использование инструкции РЗ (Разрешить Загрузку), которая прерывает, возможно начатый, кадр сканирования и разрешает загрузку нового кадра в том же шаге. После этого, начало кадра устанавливается автоматически при выполнении первой встретившейся инструкции типа «если» (ЕУ IJK, ЕЗ IJK, ЕП IJK, ЕР IJK, ЕБ IJK, ЕС IJK, ЕВ IJK), в шаге 2 это инструкция ЕУ 027. Конец кадра в этом случае определяется инструкцией ПВ. Кроме того, инструкции ОУ IJK и ОП IJK являются одновременно и началом и концом кадра (т.е. сканируется только одна инструкция).
В приведенном примере показана только один тип исполнительной операции – простая операция, вообще существует 4 типа операций:
1) пустая операция;
2) простая операция;
3) условная операция;
4) сканирующая операция (находится в теле кадра сканирования)
Так же операции 2 – 4 типов могут встречаться в совокупности, тогда говорят о смешанной операции. Изображение различных типов операций представлено на рисунке 3.4.

1. Порядок выполнения работы.
1.1. Повторить пункты 1.1. – 1.2. работы №2.
1.2. Набрать текст программы (рис. 3.5), граф операций которой приведен на рисунке 3.4.
1.3. Перейти в режим «1» и набрать уставки времени Т1 = 4с, Т2 = 6с.
1.4. Имитируя поступление сигналов от датчиков технологического процесса с помощью тумблеров, проверить функционирование программы.

рис. 3.4 Граф операций технологической программы.

Инициализация Ветка 1 (продолжение) Ветка 2 Подпрограмма (P12)
УЗ 001 ВП-020 ЕУ 011 УЗ 002 ВВ 070 НП 010 ВВ-070
ВВ-061 ВВ 062 ЗВ 001 ВВ 071
ВВ-062 ОУ 003 ПП 010 ЗВ 002
ВВ-064 ВВ 063 СВ 100 ВВ 070
ВВ-070 ЕУ 012 ВВ-071
ОУ 000 БО ВЗ
Запуск параллельного ВП 020
процесса (ветка 2) БЗ
ВС 002 ОУ 004
ЗП 002 ВВ-060
Ветка 1 ВВ-063
ВВ 060 ЕП 020
ОУ 001 ВВ 064
ЕУ 010 РЗ
ВВ 061 ЕВ-002
РЗ УУ 005
ОУ 002 ПВ
ПЕ 001

рис. 3.5 Текст программы технологического процесса на языке ПАТ.

2. Допуск: Демонстрация индивидуального задания и отчет по Л.Р.№ 2.

3. Содержание отчета: Провести сопоставительный анализ разработки программы, начиная от представления технологического процесса в форме ПГСА (Л.Р.№2) или графа операций (настоящая работа), и кончая программой на языке ПАТ. Разобраться в отличиях пометки и привести описание исполнительных действий в первой ветви графа операций.

4. Индивидуальные задания. Во всех заданиях (рис. 3.6) следует произвести:
4.1. Замыкание приведенного блока;
4.2. построить граф достижимости полученной сети для проверки правильности;
4.3. Самостоятельно “нагрузить” сеть Петри с использованием обозначений соответствующих входам/выходам контроллера. При этом:
— для каждой позиции-дублера сопоставить PP-блок (Позиция – Переход – Позиция) с разными номерами входных/выходных сигналов.
— для каждого перехода-дублера сопоставить TT-блок (Переход – Позиция – Переход).
4.4. Написать программу на языке ПАТ полученного графа операций. Проверить функционирование программы на отладочном стенде.

Загрузка...