Упражнение S6. Имитация работы насосной станции

Задание.

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

Выбор управляемого резервуара осуществляется кнопкой с фиксатором S7.

Актуальный уровень воды имитируется глобальной переменной MW10, состояние которой просматривать в WATCH TBL.

 

Рис. 1. Схема устройства.

 

Резервуар наполняется через трубу порционно при нажатии кнопки 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).

  1. Наполнение резервуара: MW10=MW10 + 5, если S1→│P│
  2. Set H1, если │MW10 “??“│,

reset H1, если │MW10 < “??“│

  1. Set H2, если │MW10 „??“│,

reset H2, если │MW10 < “??“│

  1. Уменьшение уровня насосом H1:

MW10=MW10 – „pump1“, если (H1 AND генератор M0.5)→│P│

  1. Уменьшение уровня насосом H2:

MW10=MW10 – „pump2“, если (H2 AND генератор M0.5)→│P│

 

3. Основная программа MAIN.

  1. Вызов подпрограммы Block_1 (резервуар 1 с локальными переменными), если S7
  2. Вызов подпрограммы 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│

20MOV MW20, если IW64 ≥ 28000│

 

3. Производить наполнение резервуара.

MW10 = MW10 + MW20, если М0.5→│P│