
Методы алгоритмизации ч
.3.pdf
Практикум |
5. Решения заданий |
|
|
|
|
Рис. 5.19. Программа управления системой водоснабжения (вариант 1, начало)
71

Практикум |
5. Решения заданий |
|
|
|
|
Рис. 5.20. Программа управления системой водоснабжения (вариант 1, окончание)
Примененный подход позволяет также использовать приведенную программу как основу для составления программ в соответствии с описаниями вариантов 2, 3 и 4.
Процедура сравнения минимального уровня воды в емкости и текущего его значения осуществляется цепочкой Network 5. При полном сливе индикатор наполнения гаснет, устанавливается бит M0.0 и система переходит в состояние ST1 «Ожидание».
Вариант 2
При реализации варианта 2 необходимо производить отсечку наполнения цистерны по уровню 4, а при отказе датчика B4 – по уровню B5 с индикацией отказа миганием лампы H4.
Граф переходов для варианта 2 остается прежним, исключая переход TR2 между состояниями
ST2 и ST3:
TR2 = ST2 · (B4 +B5).
Для реализации режима мигания лампы H4 можно применить код, уже использовавшийся при решении задания «Пешеходный переход со светофорным регулированием» (маска M21, см. раздел 5.3), введя его в программу как дополнительную цепочку (рис. 5.21).
72

Практикум |
5. Решения заданий |
|
|
|
|
Рис. 5.21. Программа управления миганием лампы H4 (вариант 2)
Вариант 3
Реализация возможности выбора нужного уровня наполнения согласно описанию варианта 3 приводит к усложнению графа переходов. С этой целью потребуется ввести более существенные изменения в программу, прежед всего в логику управления индикаторными лампами.
На рис. 5.22 показан граф переходов системы управления для варианта 3. В приведенном графе оставлены состояния и переходы, которые необходимы для реализации нового алгоритма, все остальные изъяты. При этом возможность остановки насоса M1 предусматривается только для режимов наполнения цистерны; управление наполнением цистерны нажатием кнопки S5 не предусматривается. Слив воды из цистерны реализуется аналогично варианту 1.
|
|
|
|
|
FS |
|
|
TR13 |
|
|
|
|
|
||
|
TR11 |
|
S0 |
Ожидание S11 · S4 |
|
|
|
ST7 |
|
||||||
|
|
|
|
|
|
|
|
TR17 |
|
|
|
M1, H4 |
|||
|
|
|
|
|
|
|
|
|
|
|
|||||
ST6 |
|
TR12 |
ST1 |
S11 |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
TR14 |
||||
Y1 |
|
|
|
|
|
|
|
|
S11 · S3 |
|
|
|
|||
Cmp |
TR4 |
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
||||||||
|
|
|
TR18 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
B1 |
|
|
TR20 |
|
|
|
|
|
|
|
ST8 |
||
|
|
TR19 |
|
S11 |
|||||||||||
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
S11 · S2 |
M1, H3 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST4 |
|
|
S11 |
|
|
|
|
|
TR15 |
|
||||
|
|
|
S11 |
|
|
|
|||||||||
M1, Y1 |
|
|
|
|
TR3 |
|
|
|
|
|
|
(B3 + B4 + |
|||
|
|
|
|
S11 · S1 |
|
|
|
|
+ B5) |
||||||
|
|
|
|
|
|
|
|
|
ST9 |
|
|||||
B5 |
|
|
|
|
(B1 + B2 + |
TR16 |
|
|
|||||||
|
|
S0 + B3 + B4 + |
|
M1, H2 |
|
||||||||||
TR10 |
|
|
|
|
+ B5) |
|
|
||||||||
|
|
|
|
|
|
|
|
ST10 |
|
|
|
|
|
||
|
|
ST3 |
TR24 |
|
|
TR23 |
|
|
TR22 |
|
|||||
|
|
M1, H1 |
|
|
|
(B2 + B3 + B4 + B5)
(B4 + B5)
TR21
Рис. 5.22. Граф переходов системы водоснабжения (вариант 3)
73

Практикум |
5. Решения заданий |
В граф переходов введены состояния ST7, ST8, ST9 и ST10, которые соответствуют наполнению цистерны до уровней 4, 3, 2 и 1 и инициализируются кнопками S4, S3, S2 и S1. Выход из этих состояний осуществляется при срабатывании датчиков соответствующих уровней.
Система логических уравнений для связанных переходов принимает следующий вид: TR3 = ST3 · S0;
TR4 = ST4 · B1;
TR5 = ST5 · B5;
TR8 = ST4 · S11;
TR10 = ST4 · B5 ;
TR11 = ST1 · S0;
TR12 = ST6 · Cmp;
TR13 = ST1 · S11 · S4;
TR14 = ST1 · S11 · S3;
TR15 = ST1 · S11 · S2;
TR16 = ST1 · S11 · S1;
TR17 = ST7 · S11;
TR18 = ST8 · S11;
TR19 = ST9 · S11;
TR20 = ST10 · S11; TR21 = ST7 · (B4 + B5);
TR22 = ST8 · (B3 + B4 + B5); TR23 = ST9 · (B2 + B3 + B4 + B5);
TR24 = ST10 · (B1 + B2 + B3 + B4 + B5).
Для состояний рассматриваемого графа получим следующую систему логических уравнений: ST1 = (ST1 + TR4 + TR12 + TR17 + TR18 + TR19 + TR20) · TR11 · TR13 · TR14 · TR15 · TR16 + FS;
ST3 = (ST3 + TR10 + TR21 + TR22 + TR23 + TR24) · TR3 ;
ST4 = (ST4 + TR3) · TR4 · TR10 ;
ST6 = (ST6 + TR11) · TR12 ;
ST7 = (ST7 + TR13) · TR17 · TR21 ;
ST8 = (ST8 + TR14) · TR18 · TR22 ;
ST9 = (ST9 + TR15) · TR19 · TR23 ;
ST10 = (ST10 + TR16) · TR20 · TR24 .
Система логических уравнений для исполнительных механизмов имеет следующий вид: M1 = ST4 + ST7 + ST8 + ST9 + ST10;
Y1 = ST4 + ST6.
Для решения задачи управления индикаторными лампами необходимо определить режимы включения каждой из них и соответствующие условия реализации этих режимов. Последующая запись определенных условий в виде логических уравнений даст возможность написать составить управления соответствующей лампой.
Например, пусть требуется определить функцию управления лампой H4. Для этой лампы можно выделить следующие режимы работы:
1.Непрерывное включение лампы при нажатии кнопки S4 (выбор уровня наполнения 4) – состояние ST7.
2.Непрерывное включение лампы при наполнении цистерны до уровня 4 – состояние ST3.
3.Мигание лампы, если при выборе наполнения цистерны до уровня 4 сигнализатор этого уровня (B4) неисправен и подача воды прекращена по сигналу датчика B5 – состояние ST3.
4.Непрерывное включение лампы, если выбран один из уровней наполнения ниже уровня 4, но вследствие неисправности соответствующего сигнализатора уровня вода в цистерне достигла уровня 4 – состояние ST3.
74

Практикум |
5. Решения заданий |
Для обеспечения мигания лампы в режиме 3 можно применить код, использованный в программе для варианта 2, запуская его на исполнение в состоянии ST3.
Как следует из описания приведенных режимов, алгоритм включения индикаторной лампы зависит от выбора того или иного уровня с помощью кнопок S1 – S4. Состояния этих кнопок не фиксируются и, следовательно, не могут быть напрямую использованы для управления режимами работы ламп. Поэтому в программе необходимо задействовать биты памяти M для запоминания событий, связанных с нажатием кнопок S1 – S4:
S1 → M5.0, S2 → M5.1, S3 → M5.2, S4 → M5.3.
Каждый из этих битов устанавливается нажатием соответствующей кнопки S1 – S4 в состоянии ST1 и сбрасывается при нажатии кнопки S0 в состоянии ST3. Условия реализации режимов включения лампы H4 и соответствующие логические функции можно определить следующим образом.
Режим 1
Если включен режим наполнения цистерны до уровня 4 (состояние ST7), то лампа H4 горит непрерывно:
H4 = ST7.
Режим 2
Если сработал датчик B4 при наполнении цистерны до уровня 4 и насос M1 остановлен (состояние ST3), то лампа H4 горит непрерывно:
H4 = ST3 · B4 · M5.3.
Режим 3
Если при наполнении цистерны до уровня 4 датчик B4 не сработал и насос M1 остановлен по достижении следующего уровня, датчик которого исправен (состояние ST3), то лампа H4 мигает:
H4 = ST3 · B4 · T40 · T41 · M5.3.
Режим 4 Если при наполнении цистерны до уровня 1, или уровня 2, или уровня 3 соответствующий дат-
чик уровня не сработал и насос M1 остановлен по достижении уровня 4 (состояние ST3), то лампа H4 горит непрерывно:
H4 = ST3 · B4 · (M5.2 · B3 + M5.2 · B2 + M5.1 · B1).
Программа управления индикаторной лампой H4 приведена на рис. 5.23.
Рис. 5.23. Программа управления лампой H4 (вариант 3)
Аналогичным образом можно синтезировать управляющую логику и для остальных индикаторных ламп. Полностью управляющая программа для варианта 3 приведена на компакт-диске.
75

Практикум |
5. Решения заданий |
Вариант 4
Вариант 4 предусматривает наполнение цистерны до одного из заранее установленных уровней, выбираемых с помощью кнопок S1 – S4. При последующем открывании сливного клапана Y1 контроллер поддерживает заданный уровень воды в цистерне путем изменения производительности насоса M1. То есть ПЛК выполняет роль регулятора в системе автоматического регулирова-
ния (рис. 5.24).
Заданный |
Контроллер |
Цистерна |
h |
|
|||
уровень |
Рассогласование |
U1in |
|
(уставка) |
|
||
|
|
Регулятор |
|
|
|
U1out |
P |
|
|
|
|
|
|
Имитатор |
U |
|
|
|
|
Рис. 5.24. Схема автоматического регулирования уровня воды в цистерне |
|
Основой системы регулирования уровня является логический автомат, обеспечивающий наполнение цистерны до определенного уровня и слив воды. На рис. 5.25 представлен граф переходов логического автомата.
|
|
FS |
|
|
|
|
TR3 |
|
||||||
|
TR1 |
S0 |
Ожидание S11 · S1 |
ST3 |
||||||||||
|
|
|
|
|
|
TR4 |
|
|
|
|
|
M1, |
||
ST2 |
|
|
|
|
|
S11 |
||||||||
TR2 |
ST1 |
|
|
|
|
Уставка 1 |
||||||||
|
|
|
|
S11 · S2 |
TR5 |
|||||||||
Y1 |
M5.0 |
TR4 |
|
|
||||||||||
|
|
|
|
TR6 |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|||||
|
|
TR10 |
|
|
|
|
|
|
|
|
|
ST4 |
||
|
|
TR8 |
|
|
S11 |
|||||||||
|
|
|
|
M1, |
||||||||||
|
TR15 |
|
|
|
|
S11 · S3 |
||||||||
|
S0 |
|
|
|
|
|
|
|
|
|
|
|
|
Уставка 2 |
|
|
S11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S11 |
|
|
TR7 |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
S11 · S4 |
|
|
|
|
|
M5.2 |
|||
|
|
|
|
|
|
|
ST5 |
|
||||||
|
|
|
|
|
TR9 |
|
M1, |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
M5.4 |
|
|
Уставка 3 |
|
||||||||
|
|
ST6 |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
TR13 |
|
|||||
|
ST7 |
TR14 |
|
|
|
|
|
|||||||
|
M1, Уставка 4 |
|
|
|
|
|
M5.1 |
|||||||
|
|
|
|
|
|
|
|
|
|
|||||
|
M1, Y1 |
|
|
|
TR12 |
|
M5.3 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
TR11 |
|
|
|
|
|
|
|
|
|
Рис. 5.25. Граф переходов логического автомата
76

Практикум |
5. Решения заданий |
На графе переходов логического автомата бит M5.0 соответствует условию полного слива воды из цистерны, а биты M5.1 – M5.4 – условиям наполнения цистерны до уровня, определяемого с помощью кнопок S1 – S4.
Система логических уравнений для связанных переходов имеет следующий вид: TR1 = ST1 · S0;
TR2 = ST2 · M5.0; TR3 = ST1 · S11 · S1;
TR4 = ST3 · S11;
TR5 = ST1 · S11 · S2;
TR6 = ST4 · S11;
TR7 = ST1 · S11 · S3;
TR8 = ST5 · S11;
TR9 = ST1 · S11 · S4;
TR10 = ST6 · S11;
TR11 = ST3 · M5.1;
TR12 = ST4 · M5.2;
TR13 = ST5 · M5.3;
TR14 = ST6 · M5.4;
TR15 = ST7 · S0.
Соответствующая система логических уравнений для переходов графа выглядит следующим образом:
ST1 = (ST1 + TR2 + TR4 + TR6 + TR8 + TR10) · TR1 · TR3 · TR5 · TR7 · TR9 ;
ST2 = (ST2 + TR1 + TR15) · TR2 ;
ST3 = (ST3 + TR3) · TR4 · TR11 ;
ST4 = (ST4 + TR5) · TR6 · TR12 ;
ST5 = (ST5 + TR7) · TR8 · TR13 ;
ST6 = (ST6 + TR9) · TR10 · TR14 ;
ST7 = (ST7 + TR11 + TR12 + TR13 + TR14) · TR15 .
Система уравнений для исполнительных механизмов имеет следующий вид:
M1 = ST3 + ST4 + ST5 + ST6 + ST7; Y1 = ST2 + ST7.
Режим регулирования уровня включается в состоянии ST7. Его алгоритм прост: из значения уставки вычитается текущее значение уровня наполнения, которое представлено напряжением постоянного тока, поступающим с выхода U1out имитатора ASIMA на аналоговый вход контроллера. Полученная разность умножается на постоянный коэффициент и подается на аналоговый выход контроллера, а оттуда – на вход U1in имитатора. То есть реализуется алгоритм пропорционального регулирования.
На рис. 5.26 приведена программа регулирования уровня воды в цистерне системы водоснабжения.
Уровни регулирования задаются в программе инструкциями MOV_W для состояний ST3 – ST6. Для этих же состояний определена производительность насоса (примерно 30%). Ее числовое значение передается на аналоговый выход контроллера и в виде напряжения постоянного тока поступает на вход U1in имитатора. Значения регулируемых уровней и производительности насоса можно изменять.
Цепь регулирования уровня включается в состоянии ST7 (бит M10.7). Значение коэффициента пропорционального регулирования выбрано равным 10. При его увеличении точность регулирования уровня повышается. Полностью программа регулирования уровня воды в цистерне приведена на компакт-диске.
77

Практикум |
5. Решения заданий |
|
|
|
|
Рис. 5.26. Программа регулирования уровня воды в цистерне
78

Практикум |
5. Решения заданий |
5.5. Грузовой лифт (маска М42)
Контроллер подключают в соответствии с рис. 5.27.
В качестве контактов путевых и конечных выключателей B6 – B11 выбраны размыкающие контакты, т. к. при их срабатывании лифт должен останавливаться.
Вариант 1
Шаг 1. Определение режимов работы грузового лифта и назначение им соответствующих последовательных состояний системы.
Можно выделить следующие режимы работы лифта:
1.Ожидание (привод выключен, индикаторные лампы не горят, платформа лифта находится в крайнем нижнем положении) – состояние ST1.
2.Движение платформы лифта вверх, к 4-ой станции (включен привод «вверх», непрерывно горит лампа H1) – состояние ST2.
3.Движение платформы лифта вверх, к 3-ей станции (включен привод «вверх», непрерывно горит лампа H2) – состояние ST3.
4.Движение платформы лифта вверх, ко 2-ой станции (включен привод «вверх», непрерывно горит лампа H3) – состояние ST4.
5.Движение платформы лифта вверх, к 1-ой станции (включен привод «вверх», непрерывно горит лампа H4) – состояние ST5.
6.Останов (платформа лифта остановлена на станции вызова, лампа которой продолжает гореть) – состояние ST6.
7.Движение платформы лифта вниз (включен привод «вниз», все лампы погашены) – состояние ST7.
+24 В |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B6 |
B7 |
B8 |
B9 |
B10 |
B11 |
S0 |
S1 |
S2 |
S3 |
S4 |
S5 |
|
|
|
|
|
|
|
|
|
|
ПЛК |
|
|
|
|
|
0 В |
|
|
|
|
|
|
|
|
|
|
Вверх |
|
Вниз |
|
|
|
|
|
|
|
|
Рис. 5.27. Схема внешних соединений контроллера |
|
|
|
|
|
79

Практикум |
5. Решения заданий |
Шаг 2. Определение входных и выходных переменных.
Входные переменные:
Кнопка вызова 1-ой станции – S4 (= 1 при нажатии);
Кнопка вызова 2-ой станции – S3 (= 1 при нажатии);
Кнопка вызова 3-ей станции – S2 (= 1 при нажатии);
Кнопка вызова 4-ой станции – S1 (= 1 при нажатии);
Кнопка аварийного останова – S0 (= 0 при нажатии); Кнопка опускания платформы лифта – S5 (= 1 при нажатии); Путевой выключатель 1-ой станции – B6 (= 1 при нажатии); Путевой выключатель 2-ой станции – B7 (= 1 при нажатии); Путевой выключатель 3-ей станции – B8 (= 1 при нажатии); Путевой выключатель 4-ой станции – B9 (= 1 при нажатии);
Конечный выключатель крайней точки подъема – B11 (= 1 при нажатии);
Конечный выключатель крайней точки опускания – B10 (= 1 при нажатии).
Выходные переменные:
Лампа вызова 1-ой станции – H4;
Лампа вызова 2-ой станции – H3;
Лампа вызова 3-ей станции – H2;
Лампа вызова 4-ой станции – H1; Включение привода «вверх» – Привод ; Включение привода «вниз» – Привод.
Шаг 3. Построение графа переходов.
Вида графа переходов грузового лифта показан на рис. 5.28.
Здесь FS означает бит первого скана (SM0.1), а PO – бит перехода в режим RUN после подачи питания на контроллер (SM0.3). Символами TRi обозначены переходы между состояниями.
|
|
|
|
TR10 |
B10 |
|
|
|
|
|
|
|
|
||
FS · |
PO |
|
ST1 |
|
ST7 |
Привод |
|
|
|
|
Ожидание |
|
|||
|
|
|
|
|
|
|
|
Кнопка |
Кнопка S1 |
|
|
|
|||
S4 |
|
Кнопка S0 |
|||||
|
TR1 |
|
|||||
|
|
|
|
|
|||
TR4 |
|
|
|
|
|||
|
|
|
Кнопка |
|
|||
|
|
|
|
|
H1, |
|
|
|
Кнопка |
ST2 |
S5 |
|
|||
|
Привод |
PO |
|||||
|
|
|
S3 |
|
|
|
|
|
|
|
Кнопка S2 |
(B9 · H1 + |
TR9 |
TR11 |
|
|
|
|
|
|
|
|
|
ST5 |
TR3 |
|
+ B11 + S0) |
|
|
||
|
TR5 |
|
|||||
H4, |
TR2 |
ST3 |
ST6 |
||||
|
H2, |
(B8 · H2 + B11 + S0) |
|||||
Привод |
|
Останов |
|||||
|
|
|
|
Привод |
TR6 |
||
|
|
|
|
|
|||
|
|
|
ST4 |
(B7 · H3 + B11 + S0) |
TR7 |
|
|
|
|
|
|
|
|
H3, |
TR8 |
|
|
Привод |
|
|
|
|
|
|
|
(B6 · H4 + B11 + S0) |
|
|
|
|
|
|
|
|
|
|
|
Рис. 5.28. Граф переходов грузового лифта (вариант 1) |
|
|
|
|
|
|
|
|
|
|
80