» » » Блок автоматичного керування регенерацією фільтрів

Блок автоматичного керування регенерацією фільтрів

03.10.2011

Постановка задачі

Установка фільтрації повітря застосовується у складі асфальтобетонного заводу та складається з десяти однакових фільтрувальних секцій. Регенерація фільтрів здійснюється методом продування при досягненні встановленого максимального перепаду тиску. Перепад тиску визначається різницею тиску повітря на вході та виході фільтрувальної установки. Досягнення максимального перепаду тиску фіксується одним дискретним сигналом. Поява цього сигналу повинна викликати очищення фільтрувальних секцій. При цьому очищенню повинна бути піддана секція, з моменту продування якої пройшло максимум часу. Після кожної продування повинна витримуватися пауза, після якої знову дозволяється аналіз стану дискретного сигналу про максимальний перепад тиску. Значення тривалості продування та паузи мають бути змінними. Вони визначаються параметрами асфальтобетонного заводу та умовами експлуатації.

Реалізація

Якщо для зберігання часу продування і паузи використовувати змінні типу Word (це 16 біт) і відлік часу вести в секундах, то отримуємо широкий діапазон для регулювання паузи і часу продування. Для підрахунку секунд також можна використовувати змінну типу Word, що зберігається. Наступна необхідна змінна повинна містити поточний номер останньої продутої фільтрувальної секції. Ці останні дві змінні забезпечують вирішення питання продування наступної секції, з моменту продування якої пройшло максимум часу (навіть якщо електроживлення відключалося).

Усього маємо три стани:

  • продування;
  • пауза;
  • пауза закінчилася і немає максимального перепаду тиску.

Для фіксації цих станів достатньо двох бітових змінних.

Оскільки циклічне виконання в програмовних логічних контролерах (PLC) та інтелектуальних логічних реле організовано власними засобами цих пристроїв, необхідна лише програма-додаток з виконанням “на прохід”.

Враховуючи викладене вище, можемо відобразити процес автоматичного керування регенерацією фільтрів як блок-схеми алгоритму (див. малюнок наприкінці). Оскільки час вважається завжди, то цей блок повинен бути в основній гілки (до розгалуження або після того, як розпаралелені гілки знову сходяться в одну). Число основних гілок блок-схеми визначається кількістю станів фільтрувальної установки. Ще потрібні гілки запуску/зупинки продування та запуску/закінчення паузи. Після припинення продування відразу ж починається відлік паузи, тож для оптимізації ці дві гілки можна замінити однією.

Якщо для вирішення цього завдання використовувати інтелектуальне реле, то для підрахунку чаових інтервалів доведеться використовувати вбудовані таймери. Для встановлення інших значень часу потрібно змінювати конфігурацію таймерів, що незручно. З іншого боку, зниження вартості в інтелектуальних реле застосовуються джерела вторинного електроживлення без гальванічної розв'язки, що різко знижує надійність роботи цих пристроїв у мережах первинного електроживлення з нестабільними параметрами. Використання інтелектуального реле з електроживленням 24ВDC вимагає додаткового вторинного джерела електроживлення з вихідною напругою 24ВDC. Два ці пристрої можна замінити одним ПЛК. Якщо паузи маленькі, то використання релейних виходів ПЛК швидко зменшуватиме ресурс реле. З іншого боку, для включення продування на кожну секцію потрібен окремий дискретний вихід. На користь ПЛК схиляє також і кількість необхідних дискретних виходів (загалом їх 10), оскільки кількість дискретних виходів у базових модулях інтелектуальних логічних реле не перевищує 8 і потрібен додатковий модуль розширення, який також коштує грошей. Тому система автоматичного керування побудована на платформі компактного програмовного контролера Twido марки Schneider Electric. Для зміни часу продування та паузи в цей ПЛК вставлено панельку клавіатури з дисплеєм TWD XCP ODC, яка має низьку вартість.

Список змінних у символьному вигляді (у середовищі програмування TwidoSoft він доступний в Symbol Editor) має вигляд:

Symbol Address
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
BLINC_1S
BLOW_TAG
BLOW_TIME
CLOCK_1S
COLD_START
CURRENT_SECTION
FIRST_SCAN
MAX_PRESSURE
MAX_SECTION_TAG
PAUSE_TIME
PAUSE_TAG
SECTION_10_BLOWING
SECTION_1_BLOWING
SECTION_2_BLOWING
SECTION_3_BLOWING
SECTION_4_BLOWING
SECTION_5_BLOWING
SECTION_6_BLOWING
SECTION_7_BLOWING
SECTION_8_BLOWING
SECTION_9_BLOWING
TIME_COUNTER
WARM_START
%M9
%M10
%MW17
%S6
%S0
%MW15
%S13
%I0.0
%M12
%MW16
%M11
%Q0.9
%Q0.0
%Q0.1
%Q0.2
%Q0.3
%Q0.4
%Q0.5
%Q0.6
%Q0.7
%Q0.8
%MW14
%S1

Крім зазначених вище, у списку присутні додаткові бітові системні змінні, опис призначення яких доступний у середовищі Help програмування TwidoSoft. Ще введена бітова змінна BLINC_1S для виключення інкремента TIME_COUNTER на кожному проході програми-додатку, оскільки одиниця повинна додаватися до вмісту TIME_COUNTER лише один раз на секунду.

Мова програмування Instruction List (IL) дозволяє використовувати імена змінних символьному вигляді. Це значно покращує розуміння програми-додатку.

Текст програми-додатку мовою IL у символьному вигляді наведено нижче.

0 LD
FIRST_SCAN
1 OR
COLD_START
2 OR WARM_START
3 R BLOW_TAG
4 R PAUSE_TAG
5 R MAX_SECTION_TAG
6 [TIME_COUNTER := 0]
7 [CURRENT_SECTION := 0]
8 SR0
9 LD [TIME_COUNTER > 30000]
10 [TIME_COUNTER := 0]
—- (FOR TIME COUNTING *)
11 LD
BLINK_1S
12 ANDN
CLOCK_1S
13 R
BLINK_1S
14 LDN
BLINK_1S
15 AND CLOCK_1S
16 S
BLINK_1S
17 [INC TIME_COUNTER]
—- (* START FILTER BLOWING *)
18 LDN
BLOW_TAG
19 ANDN
PAUSE_TAG
20 AND
MAX_PRESSURE
21 S
BLOW_TAG
22 [TIME_COUNTER := 0]
23 SR1
24 LDN
BLOW_TAG
25 AND
PAUSE_TAG
26 AND
[TIME_COUNTER > PAUSE_TIME]
27 R
PAUSE_TAG
28 LD
BLOW_TAG
29 AND
[TIME_COUNTER > BLOW_TIME]
30 R
BLOW_TAG
31 S
PAUSE_TAG
32 [TIME_COUNTER := 0]
33 SR0
34 END
—- (* END MAIN PROGRAM *)
—- (* SUBROUTINES *)
—- (* SUBROUTINE OF RESET *)
35 SR0:
36 LD
1
37 R
MAX_SECTION_TAG
38 R
SECTION_1_BLOWING
39 R
SECTION_2_BLOWING
40 R
SECTION_3_BLOWING
41 R
SECTION_4_BLOWING
42 R
SECTION_5_BLOWING
43 R SECTION_6_BLOWING
44 R
SECTION_7_BLOWING
45 R
SECTION_8_BLOWING
46 R
SECTION_9_BLOWING
47 R
SECTION_10_BLOWING
48 RET
—- (* SUBROUTINE OF BLOWING SET *)
49 SR1:
50 LD
[CURRENT_SECTION > 9]
51 [CURRENT_SECTION := 1]
52 S
MAX_SECTION_TAG
53 LDN
MAX_SECTION_TAG
54 [INC CURRENT_SECTION]
55 LD
[CURRENT_SECTION = 1]
56 S
SECTION_1_BLOWING
57 LD
[CURRENT_SECTION = 2]
58 S
SECTION_2_BLOWING
59 LD
[CURRENT_SECTION = 3]
60 S
SECTION_3_BLOWING
61 LD
[CURRENT_SECTION = 4]
62 S
SECTION_4_BLOWING
63 LD
[CURRENT_SECTION = 5]
64 S
SECTION_5_BLOWING
65 LD
[CURRENT_SECTION = 6]
66 S
SECTION_6_BLOWING
67 LD
[CURRENT_SECTION = 7]
68 S
SECTION_7_BLOWING
69 LD
[CURRENT_SECTION = 8]
70 S
SECTION_8_BLOWING
71 LD
[CURRENT_SECTION = 9]
72 S
SECTION_9_BLOWING
73 LD
[CURRENT_SECTION = 10]
74 S
SECTION_10_BLOWING
75 RET
—-

Загальний алгоритм керування регенерацією фільтрів: