Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы алгоритмизации ч

.3.pdf
Скачиваний:
100
Добавлен:
20.04.2015
Размер:
878.45 Кб
Скачать

2. Основы разработки прикладных программ для ПЛК

Fk – переменная, соответствующая предыдущему блоку принятия решения, если решение принято;

Ck – переменная, соответствующая принятому решению;

n – количество блоков операций, участвующих в формировании данного перехода;

m – количество блоков принятия решения, участвующих в формировании данного перехода.

Система логических уравнений имеет следующий вид: TR1 = InitBit;

TR2 = F1 + F6 + F2 · Пуск ;

TR3 = F2 · Пуск ;

TR4 = F3 + F5 · Стоп;

TR5 = F4 · Уровень ;

TR6 = F4 · Уровень + F5 · Стоп.

Обозначение InitBit здесь означает бит инициализации, который может быть представлен отдельной логической переменной или битом, устанавливаемым только на один скан (например, SM0.1 для CPU S7-200).

Шаг 5. Написание логических уравнений для блоков потоковой блок-схемы.

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

p

Fi = (Fi + TRi) · TRl , где:

l=1

Fi – переменная, принимающая значение 1, если состояние реализовано; TRi – логическое условие выполнения входящего в блок перехода;

TRl – логическое условие выполнения выходящего из блока l-го перехода;

p – количество переходов, выходящих из данного блока (p = 1 для блока операций и p = 2 для блока принятия решения).

Система логических уравнений имеет следующий вид: F1 = (F1 + TR1) · TR2 ;

F2 = (F2 + TR2) · TR3 ;

F3 = (F3 + TR3) · TR4 ;

F4 = (F4 + TR4) · TR5 · TR6 ;

F5 = (F5 + TR5) · TR4 · TR6 ;

F6 = (F6 + TR6) · TR2 .

Шаг 6. Написание логических уравнений для выходов системы управления.

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

КлН = F3 + F4 + F5;

КлС = F1 + F2 + F6.

Шаг 7. Назначение адресов переменным.

Пуск → I0.0, Стоп → I0.1, Уровень → I0.2, КлН → Q0.0, КлС → Q0.1; TR1 – TR6 → M0.1 – M0.6, F1 – F6 → M1.1 – M1.6.

Шаг 8. Написание программы.

Разработанная программа имеет следующий вид (рис. 2.13 и 2.14).

21

2. Основы разработки прикладных программ для ПЛК

Рис. 2.13. Программа управления наполнением цистерны

Здесь все логические вычисления разделены на группы. Первая группа вычислений, составляющая блок Network 1, реализует систему булевых функций для переходов Ti (i = 1 – 6). В блоке Network 1 формируются соответствующие этим переходам промежуточные переменные (биты па-

мяти M0.1 – M0.6).

22

2. Основы разработки прикладных программ для ПЛК

Рис. 2.14. Программа управления наполнением цистерны (окончание)

Вторая группа вычислений, составляющая блок Network 2, реализует систему булевых функций для состояний, представленных на потоковой схеме блоками Fi (i = 1 – 6). В блоке Network 2 формируются переменные состояний (биты памяти M1.1 – M1.6). И, наконец, третья группа вычислений (блок Network 3) определяет состояния выходов контроллера Q0.0 и Q0.1.

2.5. Графы переходов

Метод применения графов переходов является дальнейшим развитием метода потоковых блоксхем и основан на графическом представлении алгоритма работы объектов управления.

Как отмечалось выше, объекты, обладающие свойством дискретности, могут быть описаны своими состояниями и переходами между этими состояниями. Графическое представление работы таких объектов можно выполнить в виде ориентированного графа переходов, число вершин которого равно числу состояний объекта. На рис. 2.15 в качестве примера показан граф переходов объекта управления, имеющего два состояния ST1 и ST2.

 

 

B

 

else

ST1

ST2

else

 

A

Рис. 2.15. Граф переходов объекта управления, имеющего два состояния

Здесь кружками обозначены вершины графа, соответствующие состояниям объекта управления, а стрелками – переходы между ними. Если объект находится в состоянии ST1 и происходит событие A, объект переходит в состояние ST2. Если же событие A не происходит, объект остается в состоянии ST1. Аналогично, если объект находится в состоянии ST2 и происходит событие B, он возвращается в состояние ST1. Петли else показывают, что состояние остается активным, пока не последует очередной переход. Эти петли на графах переходов обычно не показывают, подразумевая их наличие.

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

23

2. Основы разработки прикладных программ для ПЛК

ние). Состояния объекта управления должны быть ясно различимы и должны отражать специфику технологического процесса, а переходы между ними должны соответствовать ходу технологического процесса.

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

1.Ожидание – автомат не получил оплаты и не производит никаких действий.

2.Прием оплаты – монеты опускаются в монетоприемник, и на дисплее высвечивается сумма.

3.Выбор покупателя – оплата внесена полностью, и покупатель выбирает нужный вариант.

4.Выдача кофе – выполнен заказ покупателя.

5.Требуется обслуживание – в автомате кончился кофе, стаканчики или имеет место другое нарушение рабочего цикла.

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

На рис. 2.16 представлен граф переходов кофейного автомата.

 

 

Включение питания

 

 

Кнопка сброса

Ожидание

 

 

 

Опущена

Требуется

 

 

 

 

монета

обслуживание

Стаканчик

Возврат

 

 

денег

 

 

взят

 

 

 

 

Нет стаканчиков, или нет кофе, или неисправен датчик

Возврат денег Прием

оплаты

 

 

Внесена

 

 

правильная

Выдача

 

сумма

Нажата

Выбор

кофе

кнопка

покупателя

 

Рис. 2.16. Граф переходов кофейного автомата

Данный граф имеет пять вершин – по числу состояний (режимов), в которых может находиться кофейный автомат. Переходы между состояниями показывают их изменение при поступлении сигналов от кнопок и датчиков автомата (на рис. 2.16 указаны курсивом). Они представляют все возможные варианты развития событий, включая возврат денег при неправильно набранной сумме или неправильно сделанном выборе.

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

24

2. Основы разработки прикладных программ для ПЛК

Общий метод построения графа переходов для системы управления включает в себя следующие шаги:

1.Понять процесс.

2.Определить режимы работы объекта управления и изобразить их в виде состояний графа, установив функции управления, исполняемые в этих состояниях.

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

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

Пример.

Дверь гаража управляется двумя кнопками с пульта – кнопкой открывания двери и кнопкой закрывания двери. При нажатии любой из кнопок дверь движется соответственно либо вверх, либо вниз. Въезд гаража (проем двери) оснащен конечными выключателями для остановки движения двери. В нижней части двери установлен оптический датчик присутствия человека или автомобиля. Если этот датчик срабатывает во время опускания двери, ее движение вниз прекращается и начинается движение вверх. После полного открывания или закрывания двери в гараже на 5 минут зажигается свет.

Требуется спроектировать программу для контроллера S7-200 с построением графа переходов. Задачу решают в следующем порядке.

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

Можно выделить четыре состояния, в которых может находиться дверь:

1.Дверь открыта (находится в верхнем положении), привод двери отключен (состояние ST1).

2.Дверь закрывается, привод двери включен на опускание двери (состояние ST2).

3.Дверь закрыта (находится в нижнем положении), привод двери отключен (состояние ST3).

4.Дверь открывается, привод двери включен на подъем двери (состояние ST4).

Шаг 2. Построение графа переходов системы управления.

Вид графа переходов представлен на рис. 2.17.

Граф переходов построен в соответствии с описанием работы объекта управления – двери гаража. Состояния системы ST1 – ST4, определенные на шаге 1, соединены между собой переходами согласно последовательности событий в объекте управления.

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

25

 

2. Основы разработки прикладных программ для ПЛК

 

 

 

 

Привод отключен,

 

 

дверь закрыта

 

Нижний конечный

 

Кнопка

выключатель

ST3

 

 

открывания

 

 

двери

 

 

 

ST2

Оптический датчик

ST4

 

Опускание

 

Подъем

двери

 

двери

Кнопка

 

 

закрывания

ST1

Верхний конечный

двери

 

выключатель

Привод отключен, дверь открыта

Рис. 2.17. Граф переходов контроллера двери гаража

Шаг 3. Определение входных и выходных переменных.

Входные сигналы:

Кнопка открывания двери – КнО (= 1 при нажатии); Кнопка закрывания двери – КнЗ (= 1 при нажатии);

Оптический датчик – ОД (= 1 при отсутствии человека или автомобиля в двери); Нижний конечный выключатель – НКВ (= 1 при полностью закрытой двери); Верхний конечный выключатель – ВКВ (= 1 при полностью открытой двери).

Выходные сигналы:

Включение привода на подъем двери – ПрП; Включение привода на опускание двери – ПрО; Лампа освещения – Л.

Шаг 4. Написание логических уравнений для состояний графа.

Внутренняя переменная, соответствующая i-ому состоянию, вычисляется по следующему логическому уравнению:

n

m

STi = (STi + (TRji STj ) ) ·

 

, где:

(TRik STi )

j=1

k=1

STi – переменная, принимающая значение 1, если состояние реализовано;

TRji – логическое условие выполнения перехода из состояния STj в состояние STi; TRik – логическое условие выполнения перехода из состояния STi в состояние STk; n – количество переходов, входящих в состояние STi;

m – количество переходов, выходящих из состояния STi.

Приведенное логическое уравнение содержит под знаками суммирования и умножения произведение переменной состояния ST на логическое условие выхода TR из данного состояния. Это произведение можно обозначить как связанный переход, т. е. переход, всегда связанный с состоянием, из которого он выходит. Он может входить в данное i-ое состояние (Input Transition – ITRi)

или выходить из него (Output Transition – OTRi).

Тогда логическое уравнение для i-го состояния принимает следующий вид:

n

m

STi = (STi + ITRij ) ·

 

.

OTRik

j=1

k=1

26

2. Основы разработки прикладных программ для ПЛК

По форме это уравнение совпадает с уравнением для блоков потоковой блок-схемы.

В графе переходов любой отдельно взятый переход выходит из одного состояния и входит в другое. В связи с этим при реализации управляющей логики следует определить все связанные переходы, введя дополнительные внутренние переменные (например, TRp, где p = 1, ..., q; q – количество переходов исходного графа), а затем подставив их в уравнения в соответствии с направлением действия. Поэтому управляющая логика будет представлена в этом случае двумя системами логических уравнений: системой уравнений для переменных состояний ST и системой уравнений для связанных переходов TR.

Для рассматриваемого примера получим: TR1 = ST1 · КнЗ;

TR2 = ST2 · НКВ;

TR3 = ST2 · ОД;

TR4 = ST3 · КнО;

TR5 = ST4 · ВКВ + InitBit;

ST1 = (ST1 + TR5) · TR1 ;

ST2 = (ST2 + TR1) · TR2 · TR3 ;

ST3 = (ST3 + TR2) · TR4;

ST4 = (ST4 + TR3 + TR4) · TR5 .

Как и в методе потоковых блок-схем, обозначение InitBit означает бит инициализации, который может быть представлен отдельной логической переменной или битом, устанавливаемым только на один скан (например, SM0.1 для CPU S7-200).

Шаг 5. Написание логических уравнений для выходов системы управления.

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

ПрО = ST2;

ПрП = ST4;

Таймер (300 c) = НКВ + ВКВ; Л = Таймер (300 с).

Шаг 6. Назначение адресов переменным.

КнЗ → I0.0, КнО → I0.1, ОД → I0.2, НКВ → I0.3, ВКВ → I0.4, ПрП → Q0.0, ПрО → Q0.1, Л → Q0.2; TR1 – TR5 → M0.1 – M0.5, ST1 – ST4 → M1.1 – M1.4; Таймер → T101 (TOF).

Шаг 7. Написание программы.

Разработанная программа имеет следующий вид (рис. 2.18).

Данная программа может быть реализована только на CPU S7-22x, т. к. в наборе инструкций CPU S7-21x отсутствует инструкция таймера с задержкой отключения (TOF).

Как и программа управления наполнением цистерны, приведенная программа управления дверью гаража содержит три вычислительных блока. Первый блок вычислений, включающий вычислительные цепочки Network 1 – Network 6, реализует систему булевых функций для переходов TRi (i = 1 – 5). В первом блоке формируются промежуточные переменные, соответствующие этим переходам (биты памяти M0.1 – M0.4). Второй блок вычислений, включающий цепочки Network 7 – Network 10, реализует систему булевых функций для состояний, представленных на потоковой блок-схеме блоками STi (i = 1 – 4). Во втором блоке формируются переменные состояний (биты памяти M1.1 – M1.4). И, наконец, третий блок вычислений (цепочка Network 12) определяет состояния выходов контроллера Q0.0 – Q0.2. Цепочка Network 11 реализует логику управления таймером.

27

2. Основы разработки прикладных программ для ПЛК

Рис. 2.18. Программа управления дверью гаража

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

Вместе с тем набор инструкций контроллера включает инструкции выходов с памятью – Set (N bits) и Reset (N bits), которые позволяют в ряде случаев упростить программу. Суть данного метода заключается в том, чтобы закодировать состояния графа переходов объекта управления наборами внутренних битовых переменных (M-биты) и использовать эти наборы для определения логических функций установки и сброса состояний графа.

Пример.

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

На рис. 2.19 показан граф переходов для устройства, управляемого одной кнопкой. Переключатель имеет 4 состояния, которые можно закодировать наборами двух битовых переменных (M1 и M2): 00, 01, 11 и 10. Режиму 1 будут соответствовать наборы 00 и 10, а режиму 2 – наборы 01 и 11. Если переменные M1 и M2 представляют собой элементы памяти, а режимы 1 и 2 являются взаимоисключающими, то условия их переключения можно записать следующим образом:

режим 1:

S = SW ·M1 и R = SW · M1;

режим 2:

S = SW · M2 и R = SW ·M2 .

28

2. Основы разработки прикладных программ для ПЛК

M1 · M2 = 00

SW – Кнопка нажата

01

M1 и M2 –

 

 

ST1

 

ST2

биты памяти

 

 

 

Режим 1

 

Режим 2

 

 

 

 

 

 

 

SW

 

 

 

SW

– Кнопка отпущена

10

 

SW

11

 

 

ST4

 

ST3

 

 

 

 

Режим 1

 

Режим 2

 

Рис. 2.19. Граф переходов переключателя

В приведенном графе учитываются состояние командной кнопки (SW) и состояние системы управления (биты M1 и M2). На рис. 2.20 представлена программа управления битами памяти с помощью одной нефиксируемой кнопки.

Рис. 2.20. Программа управления битами памяти

Здесь нефиксируемая кнопка соединена с входом I0.0 контроллера. Состояние управляемого устройства можно отождествить с состоянием одного из битов памяти и, следовательно, с состоянием кнопки. Например, бит M0.1 будет изменяться каждый раз при нажатии кнопки, а бит M0.0 – при ее отпускании.

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

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

29

Практикум

Практикум

30