Упражнение S6. Имитация работы насосной станции
Задание.
Имеется два резервуара, которые управляются с общего
пульта управления.
Выбор управляемого резервуара осуществляется кнопкой с
фиксатором S7.
Актуальный уровень воды имитируется глобальной переменной MW10, состояние которой просматривать в WATCH TBL.
Резервуар наполняется через трубу порционно при нажатии
кнопки S1 - 5 литров /1 импульс.
Вода из резервуара откачивается насосами (имитируется лампами H1 и H2) порционно на
каждый импульс генератора
M0.5 (1 Hz).
Производительность насосов определяется локальной
переменной „pump1“
и „pump2“ (литров /1 импульс) для каждого резервуара
отдельно.
Насос H1 включается, если вода
превышает уровень „kesk“.
Насос H2 включается, если вода
превышает уровень „max“.
Оба насоса выключаются, если уровень меньше или равен „min“.
Характеристики резервуаров и насосов.
Резервуар 1:
Уровни: „min“
– 100, „kesk“ – 120, „max
“
– 140.
Производительность насосов: „pump1“ – 1,
„pump2“ – 3.
Резервуар 2:
Уровни:
„min“ – 200, „kesk“ – 240, „max “ – 280.
Производительность насосов: „pump1“ – 3,
„pump2“ – 4.
Элементы управления.
Входы. S7
– выбор резервуара. S1 – подача воды (5 литров /1 импульс).
Выходы.
H1 – насос 1, H2 – насос 2.
Переменные. MW10 – актуальный уровень воды. Значение наблюдать в WATCH
TBL.
Локальные переменные „min“,
„kesk“, „max
“, „pump1“ , „pump2“ декларируются в подпрограмме
Block_1 (FC
или FB) (в таблице Interface) как локальные переменные. Значение локальным переменным присваивается в
основной программе MAIN.
Принцип решения. Производиться сравнивание (compare) уровня воды MW10 с уровнями включения/ выключения насосов.
Так как управление для обоих резервуаров идентично
(различаются только переменные), то используется одна и та же подпрограмма с
разными параметрами переменных.
Ход работы.
1. Первый шаг. Создается подпрограмма Block_1, в которых декларируются локальные переменные „min“, „kesk“, „max “, „pump1“ , „pump2“ .
Рис. 2. Объявление локальных переменных.
2. Подпрограмма Block_1.
Использовать арифметические операции (в формате
INT) и блоки сравнения (compare).
- Наполнение
резервуара:
MW10=MW10 + 5, если S1→│P│
- Set H1, если │MW10 ≥ “??“│,
reset H1, если │MW10 < “??“│
- Set H2, если │MW10 ≥ „??“│,
reset H2, если │MW10 < “??“│
- Уменьшение уровня
насосом
H1:
MW10=MW10 – „pump1“, если (H1 AND генератор
M0.5)→│P│
- Уменьшение
уровня насосом
H2:
MW10=MW10 – „pump2“, если (H2 AND
генератор M0.5)→│P│
3. Основная программа MAIN.
-
Вызов подпрограммы Block_1 (резервуар 1 с локальными переменными), если S7
- Вызов подпрограммы Block_1 (резервуар 2 с локальными переменными), если noS7.
Рис. 3. Редактирование основной программы.
Вариант 2.
Изменить программу. При удержании кнопки S1 нажатой вода прибывает со скоростью 25 l/s.
Решение. Кнопкой S1 включать генератор 5 Hz (системный генератор M0.1), импульсы которого
использовать для наполнения резервуара.
Вариант 3.
Изменить программу. С помощью аналогового потенциометра R1 изменять ступенчато прибытие воды в диапазоне от 0 до 20 l/s. Размер ступени 5 l/s. Размер порции сохранять в
операнде MW20. Для наполнения
бассейна использовать генератор М0.5 (1Hz).
-
При этом горит лампа Н3, если скорость прибытия воды 5 l/s.
-
Лампа Н4 горит, если скорость прибытия воды 10 l/s.
-
Лампа Н5 горит, если скорость прибытия воды 15 l/s.
- Лампа Н6 горит, если скорость прибытия воды 20 l/s.
Пояснение.
Контроллер CPU 1214C имеет 2 встроенных (12
битовых) аналоговых входа.
Рис. 5. Схема подключения аналогового потенциометра.
IW64
- адрес первого канала, куда записываются данные АЦП
(аналогово – цифровой преобразователь). Операнд
IW64 изменяется в диапазоне 0 … 32767.
Рис. 6. Адрес первого канала аналогового входа по
умолчанию.
Ход работы.
1. Определить диапазоны ступеней.
Таблица. Диапазоны ступеней.
№ |
Диапазон |
Порция, l/s. |
1 |
0 … 7000 |
0 |
2 |
7000 … 14000 |
5 |
3 |
14000 … 21000 |
10 |
4 |
21000 … 28000 |
15 |
5 |
28000 … 36767 |
20 |
2. Загружать соответствующую порцию в переменную MW20 в зависимости от сравнения аналоговой величины с
диапазонами.
5 →MOV→ MW20, если │IW64 ≥ 7000│and │IW64 < 14000│
10
→MOV→ MW20, если │IW64 ≥ 14000│and
│IW64 < 21000│
15
→MOV→ MW20, если │IW64 ≥ 21000│and
│IW64 < 28000│
20 →MOV→
MW20, если │IW64 ≥ 28000│
3. Производить наполнение резервуара.
MW10 = MW10
+ MW20, если М0.5→│P│