
Методы алгоритмизации ч
.3.pdf
Практикум |
5. Решения заданий |
5.3. Пешеходный переход со светофорным регулированием (маска М21)
Контроллер подключают в соответствии с рис. 5.11 и приступают к разработке программы. Задачу решают в следующем порядке.
Шаг 1. Определение режимов работы светофоров и назначение им соответствующих последовательных состояний системы.
Можно выделить следующие режимы работы светофоров:
1.Ожидание (светофоры погашены) – состояние ST1.
2.Дежурный режим (дорожный светофор мигает желтым светом с периодом 2 с, пешеходный светофор не работает) – состояние ST2.
3.Промежуточный режим (на всех светофорах горит красный свет) – состояние ST3.
4.Промежуточный режим (на дорожном светофоре горит красный и желтый свет, на пешеходном – красный) – состояние ST4.
5.Движение автомобилей (на дорожном светофоре горит зеленый свет, на пешеходном – красный) – состояние ST5.
6.Промежуточный режим (на дорожном светофоре горит мигающий зеленый свет, на пешеходном – красный) – состояние ST6.
7.Промежуточный режим (на дорожном светофоре горит желтый свет, на пешеходном – красный) – состояние ST7.
8.Движение пешеходов (на дорожном светофоре горит красный свет, на пешеходном – зеленый) – состояние ST8.
9.Промежуточный режим (на дорожном светофоре горит красный свет, на пешеходном – мигающий зеленый) – состояние ST9.
+24 В |
|
|
|
S0 |
S1 |
S2 |
S3 |
|
|
|
ПЛК
0 В
Рис. 5.11. Схема внешних соединений контроллера
Шаг 2. Определение входных и выходных переменных.
Входные переменные:
Кнопка включения дежурного режима – S2 (= 1 при нажатии); Кнопка включения автоматического режима – S3 (= 1 при нажатии); Кнопка разрешения перехода дороги – S1 (= 1 при нажатии); Кнопка выключения светофоров – S0 (= 0 при нажатии).
61

Практикум |
|
|
|
|
|
|
5. Решения заданий |
Выходные переменные: |
|
|
|
|
|
|
|
Красный свет дорожного светофора – КС; |
|
|
|
|
|||
Желтый свет дорожного светофора – ЖС; |
|
|
|
|
|||
Зеленый свет дорожного светофора – ЗС; |
|
|
|
|
|||
Красный свет пешеходного светофора – КС; |
|
|
|
|
|||
Зеленый свет пешеходного светофора – ЗС. |
|
|
|
|
|||
Шаг 3. Построение графа переходов. |
|
|
|
|
|||
Вид графа переходов светофоров показан на рис. 5.12. |
|
|
|||||
Здесь использованы следующие сокращения: МКС – мигающий красный свет; МЖС – мигаю- |
|||||||
щий желтый свет; МЗС – мигающий зеленый свет. |
|
|
|
|
|||
Символами TRi обозначены переходы между состояниями. У переходов, связанных с заданием |
|||||||
временных интервалов, проставлена их длительность. Режим мигания обеспечивается отдельны- |
|||||||
ми фрагментами программы, окончание работы которых представлено на графе переходов сигна- |
|||||||
лами Таймер 1 и Таймер 2. |
|
|
|
|
|
|
|
|
FS |
|
Кнопка S0 |
|
Дорожный светофор |
||
|
|
|
|
||||
|
|
|
TR11 |
|
|
||
|
|
|
|
|
|
Пешеходный светофор |
|
|
|
ST1 |
Кнопка S2 |
|
ST2 |
|
|
|
TR9 |
|
TR1 |
|
Кнопка S3 |
||
|
|
|
МЖС |
|
|||
|
|
Ожидание |
|
|
|
|
|
|
|
|
|
|
|
─ |
TR2 |
|
|
|
|
|
|
|
|
|
|
|
2 с |
|
|
|
|
Кнопка S0 |
|
|
ST4 |
|
TR3 |
2 с |
ST3 |
TR4 |
|
|
|
|
|||
|
|
|
|
|
|
КС |
|
|
|
|
ЖС + КС |
|
|
||
|
ST5 |
|
КС |
|
|
|
КС |
ЗС |
Кнопка S1 |
|
|
|
|
|
|
КС |
|
TR6 |
2 с |
|
|||
|
|
Таймер 1 |
|
||||
|
TR5 |
|
|
ST7 |
|
||
TR10 |
|
|
|
|
|
TR7 |
|
|
|
ST6 |
|
|
ЖС |
||
|
|
|
|
|
|
||
|
|
|
МЗС (1 Гц) |
|
КС |
|
|
|
|
|
КС |
|
|
|
ST8 |
|
|
|
|
ST9 |
|
10 с |
КС |
|
|
|
|
|
TR8 |
ЗС |
|
|
|
|
|
|
|
||
|
|
Таймер 2 |
КС |
|
|
||
|
|
|
|
|
|
||
|
|
|
МЗС (0,7 Гц) |
|
|||
Рис. 5.12. Граф переходов светофоров |
|
|
|
|
Шаг 4. Написание логических уравнений для состояний графа.
Для написания логических уравнений, соответствующих состояниям графа, необходимо определить его связанные переходы. Связанным переходам соответствуют логические переменные, определяемые как произведение логической переменной, назначенной данному состоянию, на логическое условие выхода из этого состояния. С учетом сказанного система логических уравнений для связанных переходов графа принимает следующий вид:
62

Практикум |
5. Решения заданий |
TR1 = ST1 · S2;
TR2 = ST2 · S3;
TR3 = ST3 · 2 c;
TR4 = ST4 · 2 c;
TR5 = ST5 · S1;
TR6 = ST6 · Таймер 1;
TR7 = ST7 · 2 c;
TR8 = ST8 · 10 c;
TR9 = ST5 · S0;
TR10 = ST9 · Таймер 2;
TR11 = ST2 · S0.
Следует отметить, что переход TR2 из дежурного режима выполняется независимо от состояния лампы желтого света дорожного светофора (включена она или не включена). При необходимости синхронизировать этот переход с окончанием фазы включения лампы желтого света логическое уравнение для TR2 должно содержать переменную таймера, определяющего длительность фазы включения лампы. На рис. 5.13 показан один из вариантов решения этой задачи.
При появлении единичного сигнала на входе I0.3 контроллера устанавливается бит M1.7, позволяющий снять этот сигнал. Бит перехода будет установлен только при нулевом значении бита T37, т. е. когда таймер T37 сбрасывается, тем самым завершая фазу включения.
Рис. 5.13. Синхронизация перехода с окончанием фазы включения лампы желтого света
Логическое уравнение для переменной i-го состояния имеет вид
n |
m |
||
STi = (STi + ∑ITRij ) · ∏ |
|
, где: |
|
OTRik |
|||
j=1 |
k=1 |
ITRij – связанный переход, входящий в данное состояние STi;
OTRik – связанный переход, выходящий из данного состояния STi.
Для рассматриваемого примера получим следующую систему логических уравнений:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST1 = (ST1 |
+ TR9 + TR11) · TR1 + FS; |
|||||||||||||||
ST2 = (ST2 |
+ TR1) · |
TR2 |
· |
TR11 |
; |
|
|
|||||||||
ST3 = (ST3 |
+ TR2) · |
TR3 |
; |
|
|
|
|
|||||||||
ST4 = (ST4 |
+ TR3) · |
TR4 |
|
|
; |
|
|
|
|
|
|
|
||||
ST5 = (ST5 |
+ TR4 + TR10) · |
TR5 |
· |
TR9 |
; |
|||||||||||
ST6 |
= (ST6 |
+ TR5) · |
TR6 |
|
; |
|
|
|
|
|
|
|
||||
ST7 |
= (ST7 |
+ TR6) · |
TR7 |
; |
|
|
|
|
|
|
|
|||||
ST8 |
= (ST8 |
+ TR7) · |
TR8 |
; |
|
|
|
|
|
|
|
|||||
ST9 |
= (ST9 |
+ TR8) · |
TR10 |
. |
63

Практикум |
5. Решения заданий |
Шаг 5. Написание логических уравнений для выходов системы управления.
Система логических уравнений имеет следующий вид.
Дорожный светофор:
КС = ST3 + ST4 + ST8 + ST9; ЖС = ST4 + ST7;
ЗС = ST5.
Пешеходный светофор:
КС = ST3 + ST4 + ST5 + ST6 + ST7; ЗС = ST8.
Примечание
Для обеспечения режима мигания света соответствующие уравнения управляющей логики должны быть дополнены условиями реализации режима мигания.
Шаг 6. Назначение адресов переменным.
S0 → I0.0, S1 → I0.1, S2 → I0.2, S3 → I0.3;
Дорожный светофор: КС → Q0.0, ЖС → Q0.1, ЗС → Q0.2; Пешеходный светофор: КС → Q0.3, ЗС → Q0.4;
TR1 – TR11 → M0.0 – M1.2; ST1 – ST4 → M10.0 – M11.0.
Шаг 7. Создание программ формирования временных интервалов.
Реализация режима мигания ламп светофора и задание временных интервалов в его работе осуществляется с помощью таймеров программируемого логического контроллера. Как следует из описания задачи, необходимо обеспечить временные интервалы 2 с и 10 с, а также режимы мигания ламп с частотой 0,5 Гц, 0,7 Гц и 1,0 Гц.
Для формирования временных интервалов 2 с и 10 с необходимо запускать таймеры с задержкой включения (для CPU S7-222 – инструкция TON) с соответствующими уставками в состояниях ST3, ST4, ST7 и ST8. Несмотря на то что в состояниях ST3, ST4 и ST7 формируются одинаковые временные интервалы, использовать один и тот же таймер в состояниях ST3 и ST4 нельзя, т. к. в противном случае не будет реализовано состояние ST4. С учетом сказанного логические уравнения управления таймерами принимают следующий вид:
Таймер (2 с) = ST3;
Таймер (2 c) = ST4 + ST7.
Выбор конкретного таймера производится согласно правилам применения инструкции TON.
Всветофоре реализованы два режима мигания ламп: непрерывный в дежурном режиме работы
ив виде серии конечного числа вспышек при смене света.
Для непрерывного генерирования световых вспышек можно использовать, например, два таймера TON, работающих в режиме управления, с помощью сигналов их состояний: первый формирует интервал включения лампы, второй – интервал паузы.
Временные диаграммы работы таймеров представлена на рис. 5.14 (Т1 и Т2 – биты окончания счета таймеров).
Из приведенной диаграммы следует, что интервал включения лампы ∆t1 формируется таймером Т2, а интервал паузы ∆t2 – таймером Т1. Длительность этих интервалов определяется соответствующими уставками таймеров и отсчитываются от момента запуска таймера до момента установки бита окончания счета.
64

Практикум 5. Решения заданий
T1 |
|
|
|
|
∆t2 |
||||
|
|
|
|
|
|
|
|
t |
|
|
|
|
|
|
|
|
|
|
|
T2 |
∆t1 |
|
|
|
|
|
∆t1 |
||
|
|
|
|
|
|
|
|
|
t
Лампа
t
Рис. 5.14. Временные диаграммы формирования импульсов таймерами TON
Учитывая то, что режим непрерывного мигания реализуется в состоянии ST2, запуск таймеров должен осуществляться при выполнении следующих условий:
Таймер 1 = ST2 · T2 ;
Таймер 2 = ST2 · Т1.
Условие включения лампы в соответствии с диаграммой имеет следующий вид: Лампа = Т1 · T2 .
В качестве таймеров Т1 и Т2 можно использовать любой таймер TON с соответствующей уставкой.
На рис. 5.15, а) приведена программа генератора импульсов с шириной импульса, равной длительности паузы.
Здесь бит M10.1 соответствует состоянию ST2, а в качестве таймеров T1 и T2 взяты таймеры T37 и T38 с дискретой 100 мс. При выбранных значениях уставок периодичность импульсов составляет 2 с (1 с – ширина импульса и 1 с – длительность паузы).
65

Практикум |
5. Решения заданий |
|
|
|
|
Рис. 5.15. Программы генератора импульсов:
а) непрерывная серия импулсьов; б) конечное число импульсов
Применение общего начала отсчета для всех таймеров позволяет изменять параметры серии вспышек, т. к. таймеры работают независимо друг от друга. Начало серии вспышек определяется условием разрешения счета для всех таймеров, конец серии – единичным значением бита последнего таймера (в данном случае T6).
Иной подход применяется при генерировании конечного числа импульсов. На рис. 5.16 представлены временные диаграммы работы таймеров при формировании трех вспышек. Здесь для формирования серии небольшого числа вспышек применен метод общего начала отсчета таймеров TON. Количество используемых таймеров должно быть равно числу изменений состояния лампы в режиме генерации вспышек. Как следует из рис. 5.16, для формирования трех вспышек необходимо использовать 6 таймеров. При этом логическая функция, реализующая режим мигания лампы, принимает следующий вид:
Лампа = T1 · T2 + T3 · T4 + T5 · T6 , где
T1 – T6 – биты окончания счета таймеров.
66

Практикум 5. Решения заданий
T1 |
∆t |
||||||
|
|
|
|
|
|
t |
|
|
|
|
|
|
|
|
|
T2 |
|
2∆t |
|||||
|
|
|
|
|
|
t |
|
|
|
|
|
|
|
|
|
T3 |
|
|
3∆t |
||||
|
|
|
|
|
|
t |
|
|
|
|
|
|
|
|
|
T4 |
|
|
|
4∆t |
|||
|
|
|
|
|
|
t |
|
|
|
|
|
|
|
|
|
T5 |
|
|
|
|
5∆t |
||
|
|
|
|
|
|
t |
|
|
|
|
|
|
|
|
|
T6 |
|
|
|
|
|
6∆t |
|
|
|
|
|
|
|
t |
|
|
|
|
|
|
|
|
Лампа
t
Рис. 5.16. Принцип формирования серии конечного числа импульсов
На рис. 5.15, б) приведена программа формирования серии из трех вспышек лампы зеленого света на дорожном светофоре. Длительность вспышки равна длительности паузы (0,5 с). В качестве таймеров T1 – T6 здесь применены таймеры TON с дискретой ∆t = 100 мс (T47 – T52). Уставки таймеров обеспечивают одинаковую длительность вспышек и пауз между ними (0,5 с).
Шаг 8. Написание программы для контроллера.
Полностью программа управления светофорами приведена на прилагаемом компакт-диске.
67

Практикум |
|
|
|
|
|
|
|
|
|
|
5. Решения заданий |
5.4. Управление наполнением водонапорной башни (маска М40) |
|
||||||||||
Контроллер подключают в соответствии с рис. 5.17 и приступают к разработке программы. |
|||||||||||
Задачу решают в следующем порядке. |
|
|
|
|
|
|
|||||
+24 В |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S11 |
|
S0 |
S1 |
S2 |
S3 |
S4 |
S5 |
B1 |
B2 |
B3 |
B4 |
B5 |
10 В |
|
|
|
|
|
|
|
ПЛК |
|
|
|
|
|
|
|
|
|
|
|
|
0...10 В |
|
|
|
0 В |
|
|
|
|
|
|
|
|
|
|
|
Рис. 5.17. Схема внешних соединений контроллера |
|
|
|
|
Вариант 1
Шаг 1. Определение режимов работы системы водоснабжения и назначение им соответствующих последовательных состояний системы.
Можно выделить следующие режимы работы системы водоснабжения:
1.Ожидание (насос M1 выключен, клапан Y1 закрыт) – состояние ST1.
2.Наполнение цистерны (включен насос M1, клапан Y1 закрыт) – состояние ST2.
3.Цистерна наполнена водой (насос M1 выключен, клапан Y1 закрыт) – состояние ST3.
4.Слив воды из цистерны при одновременной подаче воды насосом M1 (включен насос M1, клапан Y1 открыт) – состояние ST4.
5.Цистерна пуста (насос M1 выключен, клапан Y1 закрыт) – состояние ST5.
6.Слив воды из цистерны (насос M1 выключен, клапан Y1 открыт) – состояние ST6.
Шаг 2. Определение входных и выходных переменных.
Входные переменные (часть сигналов в варианте 1 не используется): Тумблер включения системы – S11 (= 1 в положении «включено»); Кнопка наполнения цистерны – S5 (= 1 при нажатии);
Кнопка наполнения цистерны до уровня 4 – S4 (= 1 при нажатии); Кнопка наполнения цистерны до уровня 3 – S3 (= 1 при нажатии); Кнопка наполнения цистерны до уровня 2 – S2 (= 1 при нажатии); Кнопка наполнения цистерны до уровня 1 – S1 (= 1 при нажатии); Кнопка слива воды из цистерны – S0 (= 1 при нажатии); Сигнализатор предельного уровня – B5 (= 1 при срабатывании); Сигнализатор уровня 4 – B4 (= 1 при срабатывании); Сигнализатор уровня 3 – B3 (= 1 при срабатывании); Сигнализатор уровня 2 – B2 (= 1 при срабатывании); Сигнализатор уровня 1 – B1 (= 1 при срабатывании).
68

Практикум |
5. Решения заданий |
Выходные переменные:
Лампа индикации уровня 4 – H4; Лампа индикации уровня 3 – H3; Лампа индикации уровня 2 – H2; Лампа индикации уровня 1 – H1; Включить насос M1 – M1; Открыть клапан Y1 – Y1.
Шаг 3. Построение графа переходов.
Вид графа переходов системы водоснабжения показан на рис. 5.18.
Здесь обозначение FS означает бит первого скана (SM0.1), а Cmp – бит сравнения значений текущего сигнала наполнения цистерны U1 и сигнала, соответствующего пустой цистерне. Символами TRi обозначены переходы между состояниями.
|
|
|
Ожидание |
TR12 |
|
Cmp |
|||||||
|
|
|
|
|
|
|
|||||||
FS |
ST1 |
S0 |
|
|
ST6 |
||||||||
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
TR11 |
Y1 |
|
|
TR9 |
|
|
|
|
|
|
|
|
||||
|
|
|
|
TR6 |
|
S5 · S11 |
|||||||
|
|
|
|
|
|
|
|
|
|
TR1 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TR8 |
|
TR7 |
|
|
|
|
|
|||
|
|
|
S11 |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
ST2 |
|
|
S11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
M1 |
|
|
|
|
|
|
|
|
|
S11 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
B5 |
||
ST5 |
|
|
|
|
|
|
|
|
|||||
|
S11 |
|
|
|
|
|
|
TR2 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TR4 |
|
|
|
|
S0 |
ST3 |
|
|||||
|
|
|
|
|
TR3 |
|
|||||||
|
|
|
|
|
|
|
|
|
|
TR5 |
|||
|
|
|
B1 |
|
|
ST4 |
|
|
|
||||
|
|
|
|
|
|
|
B5 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
TR10 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
M1, Y1
S5
Рис. 5.18. Граф переходов системы водоснабжения (вариант 1)
Основная последовательность событий представлена состояниями ST1 – ST5. Состояние ST6 введено специально для возможности обнулить индикатор наполнения цистерны, если он находится между контролируемыми уровнями. В этом состоянии открывается клапан Y1 и слив воды из цистерны производится не до уровня 4, а полностью.
Шаг 4. Написание логических уравнений для состояний графа.
Для написания логических уравнений, соответствующих состояниям графа, необходимо определить его связанные переходы. Связанным переходам соответствуют логические переменные, определяемые как произведение логической переменной, назначенной данному состоянию, на логическое условие выхода из этого состояния. С учетом сказанного система логических уравнений для связанных переходов графа принимает следующий вид:
69

Практикум |
5. Решения заданий |
TR1 = ST1 · S5 · S11;
TR2 = ST2 · B5;
TR3 = ST3 · S0;
TR4 = ST4 · B1;
TR5 = ST5 · B5;
TR6 = ST2 · S11;
TR7 = ST3 · S11;
TR8 = ST4 · S11;
TR9 = ST5 · S11;
TR10 = ST4 · B5;
TR11 = ST1 · S0;
TR12 = ST6 · Cmp.
Логическое уравнение для переменной i-го состояния имеет вид
n |
m |
||
STi = (STi + ∑ITRij ) · ∏ |
|
, где: |
|
OTRik |
|||
j=1 |
k=1 |
ITRij – связанный переход, входящий в данное состояние STi;
OTRik – связанный переход, выходящий из данного состояния STi.
Система логических уравнений для рассматриваемого примера имеет следующий вид:
ST1 = (ST1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ TR6 + TR7 + TR8 + TR9 + TR12) · TR1 · TR11 + FS; |
||||||||||||||||||||||
ST2 = (ST2 |
+ TR1) · |
TR2 |
· |
|
TR6 |
; |
|
|
||||||||||||||
ST3 |
= (ST3 |
+ TR2 + TR5) · |
TR3 |
· |
TR7 |
; |
||||||||||||||||
ST4 |
= (ST4 |
+ TR3) · |
TR4 |
|
|
· |
TR8 |
; |
||||||||||||||
ST5 |
= (ST5 |
+ TR4) · |
TR5 |
|
· |
|
TR9 |
; |
||||||||||||||
ST6 |
= (ST6 |
+ TR11) · |
TR12 |
. |
Шаг 5. Составление логических уравнений для выходов системы управления.
Система логических уравнений имеет следующий вид:
M1 = ST2 + ST4;
Y2 = ST4 + ST6.
Шаг 6. Назначение адресов переменным.
S0 → I0.0, S1 → I0.1, S2 → I0.2, S3 → I0.3, S4 → I0.4, S5 → I0.5, S11 → I1.0; B1 → I1.1, B2 → I1.2, B3 → I1.3, B4 → I1.4, B5 → I1.5;
H1 → Q0.1, H2 → Q0.2, H3 → Q0.3, H4 → Q0.4; Y1 → Q0.0, M1 → Q0.5;
TR1 – TR12 → M0.1 – M1.4; ST1 – ST6 → M10.1 – M10.6; Cmp → M0.0.
Шаг 7. Написание программы для контроллера.
На рис. 5.19 и 5.20 приведена программа управления системой водоснабжения согласно описанию варианта 1.
70