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

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

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

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

Пример.

Устройство открывания дверей тамбура имеет кнопку для открывания обеих дверей. При кратковременном нажатии на кнопку немедленно открывается первая дверь, тогда как вторая дверь открывается через 2 секунды. Первая дверь остается открытой в течение 10 секунд, вторая – в течение 12 секунд.

Спроектировать программу для контроллера S7-200 с применением временных диаграмм. Используем для решения этой задачи первый метод формирования временных интервалов.

Решение включает следующие шаги.

Шаг 1. Преобразование словесного описания задачи во временные диаграммы (рис. 2.4).

Дверь 1

Дверь 2

t

2 c

10 c

14 c

Рис. 2.4. Временные диаграммы работы дверей

Из диаграмм следует, что за начальную точку рабочего цикла открывания дверей (t = 0) принят момент нажатия кнопки.

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

Кн – кнопка открывания дверей ( = 1 при нажатии); Дв1 – дверь 1; Дв2 – дверь 2.

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

Шаг 3. Выбор таймеров и их привязка к рабочему циклу (построение циклограммы).

Вид логических функций управляющей программы зависит от выбора используемых инструкций таймеров. Набор инструкций CPU S7-200 включает три типа таймеров: с задержкой включения (TON), с задержкой отключения (TOF, только для CPU S7-22x) и с сохранением накопленного значения счета (TONR, сохраняющий таймер). Для решения данной задачи целесообразно использовать таймеры TON, т. к. исходное состояние дверей закрытое, а их открытое состояние можно связать с битами окончания счета таймеров. При этом общей точкой отсчета временных интервалов должен быть выбран момент нажатия кнопки.

Совместим диаграммы работы таймеров с диаграммами работы дверей, после чего совместим изменения их состояний с заданными контрольными моментами времени (2 с, 10 с, 14 с). Таким образом, должно быть использовано 3 таймера (T1, T2 и T3).

На рис. 2.5 представлена циклограмма открывания дверей.

11

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

Дв1

Дв2

t

2 c

10 c

14 c

Auto

T1

T2

T3

Рис. 2.5. Циклограмма открывания дверей (вариант 1)

Шаг 4. Написание системы булевых функций.

Дв1= Auto (T1 T3) ; Дв2 = Auto (T2 T3) .

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

Кн → I0.0, Дв1 → Q0.0, Дв2 → Q0.1, Auto → M0.0; T1 → T37, T2 → T38, T3 → T39.

Шаг 6. Написание программы (рис. 2.6).

Первая вычислительная цепочка программы устанавливает бит памяти рабочего цикла M0.0 при нажатии кнопки открывания дверей. Этот бит сбрасывается в конце рабочего цикла битом таймера T39.

Вторая вычислительная цепочка переводит все таймеры в режим счета с помощью бита памяти

M0.0.

Третья вычислительная цепочка управляет выходами контроллера Q0.0 и Q0.1, к которым подключены приводы дверей Дв1 и Дв2 соответственно. Объем кода программы составляет 60 байт.

12

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

Рис. 2.6. Программа управления дверями (вариант 1)

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

Решение начнем с шага 3, содержанием которого является построение циклограммы работы объекта управления.

Шаг 3. Построение циклограммы.

Как и ранее, в программе управления будут использованы инструкции таймеров TON. Однако, в отличие от уже рассмотренного подхода к решению задачи, общая точка отсчета временных интервалов применяться не будет. Как и в предыдущем случае, количество таймеров определяется числом управляемых таймерами событий (включение и отключение приводов дверей). При этом дверь Дв1 открывается при нажатии на кнопку, что одновременно означает также и начало рабочего цикла. Следовательно, должно быть взято 3 таймера (T1, T2 и T3).

Совместим диаграммы работы таймеров с диаграммами работы дверей, после чего совместим изменения их состояний с заданными контрольными моментами времени (2 с, 10 с, 14 с).

На рис. 2.7 представлена циклограмма открывания дверей. При нажатии кнопки открывается дверь Дв1 и запускается таймер Т1 (2 с). По истечении установленного интервала открывается дверь Дв2 и запускается таймер Т2 (8 с). После отсчета заданной задержки таймер Т2 выдает сигнал на закрытие двери Дв1 и запускает таймер Т3 (4 с). Таймер Т3 завершает рабочий цикл выдачей сигнала на закрытие двери Дв2 с его последующим сбросом.

Таким образом, новый вариант циклограммы не предусматривает введение дополнительной переменной Auto.

13

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

Кн Дв1

Дв2

t

 

2 c

T1

 

 

8 c

T2

4 c

T3

 

Рис. 2.7. Циклограмма открывания дверей (вариант 2)

Шаг 4. Написание системы булевых функций.

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

Получим:

T1= Дв1;

T2 =Дв2 ;

T3 =Дв1 Дв2 .

(Здесь сомножитель Дв2 введен для завершения работы таймера Т3 после прекращения цикла.)

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

установка: дверь Дв1 = Кн, дверь Дв2 = Т1 · Дв1;

сброс: дверь Дв1 = Т2 · Дв2, дверь Дв2 = Т2 · Т3.

Шаг 5. Назначение адресов переменным (адреса остаются прежними).

Кн → I0.0, Дв1 → Q0.0, Дв2 → Q0.1; T1 → T37, T2 → T38, T3 → T39.

Шаг 6. Написание программы (рис. 2.8).

Программа содержит блок таймеров (Network 1) и блок управления выходами контроллера (Network 2), в котором использованы инструкции установки (Set) и сброса (Reset). Объем результирующего кода – 95 байт. То есть вариант 2 приводит к большему объему программы по сравнению с вариантом 1.

14

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

Рис. 2.8. Программа управления дверями (вариант 2)

2.3. Шаговые диаграммы

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

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

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

Для создания программ управления рассмотренными объектами в наборе инструкций ПЛК S7200 существуют инструкции последовательного управления (SCR, SCRT и SCRE). Эти инструкции осуществляют логическое сегментирование программы, разделяя ее на последовательно исполняемые блоки. Это позволяет разделить во времени процессы, осуществляемые под управлением программы, тем самым обеспечивая необходимую временную последовательность их выполнения.

Пример.

Механизм содержит два пневмоцилиндра A и B. В исходном состоянии штоки обоих цилиндров втянуты. Устройство управления при нажатии кнопки «Пуск» включает цилиндр A, шток которого выдвигается. По достижении штоком цилиндра A конечного положения включается цилиндр B. В конце рабочего хода штока цилиндра B цилиндр A отключается. По возвращении штока цилиндра A в исходное положение цилиндр B отключается, его шток втягивается, система приходит в исход-

15

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

ное состояние. Управление цилиндрами осуществляется с помощью двусторонних пневмораспределителей. Положение штоков контролируется с помощью путевых выключателей.

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

Шаг 1. Преобразование словесного описания задачи в шаговые диаграммы.

Из словесного описания задачи следует, что рабочий цикл механизма, который начинается с нажатием кнопки «Пуск», можно представить в виде последовательности из 4 шагов (рис. 2.9):

1.Выдвижение штока цилиндра A при втянутом штоке цилиндра B.

2.Выдвижение штока цилиндра B при выдвинутом штоке цилиндра A.

3.Втягивание штока цилиндра A при выдвинутом штоке цилиндра B.

4.Втягивание штока цилиндра B при втянутом штоке цилиндра A.

0

1

2

3

4=0

1

 

 

 

 

Кнопка

 

 

 

 

«Пуск»

 

 

 

 

0

 

 

 

a1

1

A+

 

A–

Пневмо-

 

 

цилиндр A

 

 

 

 

0

 

 

 

a0

1

 

B+

 

b1

Пневмо-

 

 

B–

 

 

 

 

цилиндр B

 

 

 

b0

0

 

 

 

Рис. 2.9. Шаговые диаграммы работы пневмоцилиндров

 

 

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

Кн – кнопка «Пуск» ( = 1 при нажатии);

a0 – датчик начального положения штока цилиндра A ( = 1 в исходном положении штока); a1 – датчик конечного положения штока цилиндра A ( = 1 в конечном положении штока); b0 – датчик начального положения штока цилиндра B ( = 1 в исходном положении штока); b1 – датчик конечного положения штока цилиндра B ( = 1 в конечном положении штока); A+ – включение цилиндра A, A– – выключение цилиндра A;

B+ – включение цилиндра B, B– – выключение цилиндра B.

Шаг 3. Написание системы булевых функций.

A+ = Кн · a0 · b0; B+ = a1 · b0;

A– = a1 · b1; B– = a0 · b1.

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

Кн → I0.0; a0 → I0.1, a1 → I0.2, b0 → I0.3, b1 → I0.4; A+ → Q0.0, A– → Q0.1; B+ → Q0.2, B– → Q0.3; Шаги 1 – 4 → биты S0.1 – S0.4.

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

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

16

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

циализации. Каждый блок начинается с инструкции SCR и заканчивается инструкцией SCRE. Внутри блока реализуется одна из логических функций управления.

Рис. 2.10. Программа управления пневмоцилиндрами

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

2.4. Потоковые блок-схемы

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

В отечественной технической литературе потоковым блок-схемам соответствуют структурные схемы алгоритмов.

К наиболее употребляемым символам блоков потоковых блок-схем относятся:

17

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

Процесс, или операция (представляет выполнение операции или группы операций).

Линия потока (указывает последовательность переходов от блока к блоку).

Принятие решения (используется для разветвления процесса вычислений в зависимости от выполнения некоторых условий).

Пуск – останов (представляет операции начала, прерывания и конца схемы).

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

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

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

2.Определить основные действия и представить их в виде блоков.

3.Определить последовательность действий и представить ее в виде стрелок (переходов).

4.Определить условия изменения последовательности и представить их в виде блока ветвления.

Существуют два метода разработки программ по блок-схемам:

Метод логических блоков.

Метод переходов.

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

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

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

Пример.

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

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

Шаг 1. Построение потоковой блок-схемы по словесному описанию.

Вид потоковой блок-схемы представлен на рис. 2.11. В приведенной блок-схеме основной поток начинается на ее вершине. Первая операция заключается в том, чтобы открыть сливной клапан и закрыть наполнительный. Далее используется блок принятия решения, определяющий ветвление процесса в зависимости от состояния кнопки «Пуск». Если кнопка нажата, поток идет по ветви «Да». При этом открывается наполнительный клапан и закрывается сливной. Далее поток идет к двум блокам принятия решения, определяющих наступление событий наполнения цистерны или нажатия кнопки «Стоп». При наступлении одного их этих событий наполнительный клапан закрывается, а сливной – открывается. Далее система возвращается в состояние ожидания повторного нажатия на кнопку «Пуск».

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

18

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

НАЧАЛО

Открыть сливной клапан Закрыть наполнительный клапан

Кнопка «Пуск»

Нет

 

 

нажата ?

 

 

Да

Закрыть сливной клапан Открыть наполнительный клапан

 

 

 

 

 

 

 

 

 

Цистерна

Да

 

Открыть сливной клапан

 

полна ?

 

 

 

Закрыть наполнительный

 

 

 

 

 

 

клапан

 

 

Нет

Да

 

 

 

 

 

 

 

 

 

Кнопка «Стоп»

 

 

 

 

 

 

 

 

 

 

нажата ?

 

 

 

 

 

 

 

Нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.11. Исходная блок-схема алгоритма

Шаг 2. Присвоение имен блокам и переходам потоковой блок-схемы (рис. 2.12).

Как следует из рис. 2.12, каждому блоку схемы соответствует переход, имеющий тот же номер.

19

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

НАЧАЛО

F1

TR1

Открыть сливной клапан Закрыть наполнительный клапан

 

TR2

 

 

F2

Кнопка «Пуск»

Нет

 

 

 

 

 

нажата ?

 

 

 

 

F3

TR3

Да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Закрыть сливной клапан

 

 

 

 

 

 

Открыть наполнительный

 

 

 

 

 

 

 

клапан

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TR4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F6

 

 

F4

 

 

 

 

 

 

Цистерна

Да TR6

Открыть сливной клапан

 

 

 

полна ?

 

 

 

 

Закрыть наполнительный

 

 

 

 

 

 

 

 

 

клапан

 

 

F5

TR5

Нет

 

 

 

 

 

 

 

 

Да

 

 

 

 

Кнопка «Стоп»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нажата ?

 

 

 

 

 

 

 

 

 

 

Нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.12. Доработанная блок-схема алгоритма

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

Пуск – кнопка «Пуск» ( = 1 при нажатии); Стоп – кнопка «Стоп» ( = 1 при нажатии);

Уровень – сигнализатор наполнения цистерны ( = 1 при достижении установленного уровня наполнения);

КлН – наполнительный клапан; КлС – сливной клапан.

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

При составлении уравнений считают, что причиной перехода является выполнение действий предшествующих ему блоков операций и реализация условий выхода из блоков принятия решения, представленных соответствующими переходами:

n

m

TRi = Fj + Fk Ck , где:

j=1

k=1

TRi – логическое условие выполнения i-го перехода;

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

20