Вход в режим просмотра и редактирования защищённого меню выполняется одновременным нажатием и удержанием двух клавиш «меню» и клавиши «-» в течение 5 секунд. После входа в защищённое меню навигация по нему осуществляется клавишами «+» и «-». Для входа в режим редактирования какого-либо из параметров необходимо нажать клавишу «Ввод».
Список редактируемых параметров может изменяться в зависимости от режима, в котором находится блок управления в момент входа в защищённое меню, для корректного редактирования параметров, защищённого меню перед началом редактирования необходимо перевести котёл в выключенное состояние. Котёл переводится в выключенное состояния по-разному, в зависимости от текущего режима работы. Если котёл работает в режиме сжигания дров, выключение производится нажатием и удержанием в течение 5 секунд клавиши «-», если котёл работает в режиме сжигания пеллет, выключение производится нажатием и удержанием в течение 5 секунд клавиши «+». Для редактирования параметров защищённого меню необходимо выполнить следующую последовательность действий:
Выбрать необходимый для редактирования параметр нажатием клавиш «-» или «+» (на дисплее будет показан код выбранного параметра)
Нажмите клавишу «ввод» при этом на дисплее отобразится текущее значение выбранного параметра, и он станет доступным для редактирования.
установите нужное значение нажатием клавиш «-» и «+»
нажмите клавишу «ввод» для сохранения нового значения.
чтобы выйти без сохранения, нажмите клавишу «вых».
чтобы выйти из режима редактирования параметров защищённого меню нажмите клавишу «вых».
в случае бездействия в течение 60 секунд система сама выйдет из режима редактирования параметров защищённого меню.
Параметры защищённого меню настроек, приведена в
таблице 13.2.
Таблица 13.2 - расширенного меню настроек
|
Наименование |
Обозначение |
Описание |
Время\% |
Мин\макс значение |
|
P00 |
время работы шнека в режиме розжига |
режим1 |
10сек |
0\300сек |
|
|
|
режим2 |
10сек |
|
|
|
|
режим3 |
10сек |
|
|
|
|
дрова |
- |
|
|
P01 |
время работы шнека в режиме стабилизации |
режим 1 |
10сек |
0\300 сек |
|
|
|
режим 2 |
10сек |
|
|
|
|
режим 3 |
10сек |
|
|
|
|
дрова |
- |
|
|
Р02 |
время работы шнека в рабочем режиме |
режим 1 |
10сек |
0\300сек |
|
|
|
режим 2 |
10сек |
|
|
|
|
режим 3 |
10сек |
|
|
|
|
дрова |
- |
|
|
PР00 |
время паузы шнека в режиме розжига |
режим 1 |
10сек |
0\300сек |
|
|
|
режим 2 |
10сек |
|
|
|
|
режим 3 |
10сек |
|
|
|
|
дрова |
- |
|
|
PР01 |
время паузы шнека в режиме стабилизации |
режим 1 |
10сек |
|
|
|
|
режим 2 |
10сек |
|
|
|
|
режим 3 |
10сек |
|
|
|
|
дрова |
- |
|
|
РР02 |
время паузы шнека в рабочем режиме |
режим 1 |
10сек |
0\300сек |
|
|
|
режим 2 |
10сек |
|
|
|
|
режим 3 |
10сек |
|
|
|
|
дрова |
- |
|
|
Uv00 |
процент мощности вентилятора (от полной) в режиме розжига |
режим 1 |
70 % |
100 % |
|
|
|
режим 2 |
70 % |
|
|
|
|
режим 3 |
70 % |
|
|
|
|
дрова |
70 % |
|
Приложение к таблице 13.2
|
Uv01 |
процент мощности вентилятора (от полной) в режиме стабилизации |
режим 1 |
70 % |
100 % |
|
|
|
|
режим 2 |
70 % |
|
|
|
|
|
режим 3 |
70 % |
|
|
|
|
|
дрова |
70 % |
|
|
|
Uv02 |
процент мощности вентилятора (от полной) в рабочем режиме |
режим 1 |
70 % |
100 % |
|
|
|
|
режим 2 |
70 % |
|
|
|
|
|
режим 3 |
70 % |
|
|
|
|
|
дрова |
70 % |
|
|
|
Uv03 |
процент мощности вентилятора (от полной) в режиме дожигания при выключении |
режим 1 |
40 % |
100 % |
|
|
|
|
режим 2 |
40 % |
|
|
|
|
|
режим 3 |
40 % |
|
|
|
|
|
дрова |
40 % |
|
|
|
tg01 |
температура уходящих газов при которой система переводит котёл в режим остановки котла |
- |
45° C |
30\50° C |
|
|
tg02 |
температура уходящих газов для выхода из режима розжига |
- |
100° C |
- |
|
|
tg03 |
температура уходящих газов, при достижении которой котёл переходит в режим стабилизации по уходящим газам. |
- |
280° C |
- |
|
|
tg04 |
температура уходящих газов, при достижении которой котёл переходит в рабочий режим с по уходящим газам. |
- |
280° C |
- |
|
|
tg05 |
температура уходящих газов, при достижении которой котёл переходит в режим стабилизации по уходящим газам. |
- |
250° C |
- |
|
|
tv04 |
температура воды в котле при которой система переходит в режим аварии по перегреву котла |
- |
90° C |
80\95° C |
|
|
tv05 |
нижнее ограничение устанавливаемой температуры воды в котле |
- |
60° C |
50° C |
|
|
tv06 |
верхнее ограничение устанавливаемой температуры воды в котле |
- |
95° C |
95° C |
|
|
tp01 |
температура срабатывания датчика нагрева шнека |
- |
50° C |
50\100° C |
|
|
tg05 |
температура уходящих газов, при достижении которой котёл полностью останавливает работу |
- |
30° C |
20\45° C |
|
Подключение устройств к блоку управления предусмотрена панель подключения.
На задней части блока управления находятся разъёмы для подключения устройств котла, которые имеют следующие графические обозначения. Обозначение на рисунке 13.3.
Рисунок 13.3 - задняя панель блока управления
Назначение:
А - Питание и штекер с плавким предохранителем.
Б -Насос системы отопления.
С -Вентилятор, подающий воздух на горение.
Д -Привод шнека.
Штекер обозначенный символом «А» имеет гнездо в котором установлен плавкий предохранитель номинальным током 6,3 А.
В случае перегорания предохранителя откройте маленькую крышечку, расположенную в гнезде «А» с помощью отвёртки или иного острого предмета, извлеките перегоревший предохранитель и установите на его место новый указанного номинала. При перегорании предохранителя настоятельно рекомендуем обратиться в сервисный центр за выяснением и устранением причин перегорания.
Примечание:Все отслеживающие датчики подключаются к блоку управления внутри корпуса.
Питание электронного блока управления
осуществляется напряжением 220 В,с обязательным использованием стабилизатора
напряжения или источника бесперебойного питания.
ЗАКЛЮЧЕНИЕ
В ходе курсового проекта разработали информационную систему управления отопительного котла для частного дома. разработан алгоритм и программа управления системой. Программа написана для микроконтроллеров фирмы Atmel с архитектурой AVR на языке C.
В ходе проектирования информационной системы управления отопительным котлом для частного дома, одним из главных вопросов стоял в выборе оборудования. Решение данного вопроса стала платформа микроконтроллеров с риск архитектурой, позволяющая без особого труда подобрать и обучить выполнять требуемые задачи проекта.Была выбрана элементная база технического уродования.
Следующим не маловажным аспектом встала задача реализации связующего интерфейса между пользователем и системой. Было принято решение разработать графический интерфейс с поддержкой ввода вывода необходимой информации и передачи данных системе, на базе TFTLCDдисплея с встроенной сенсорной панелью, для удобства коммуникации с системой.
В ходе проектирования возникало множество маленьких, но коварных проблем, связанных с реализацией поставленных задач. К примеру инициализация нестандартных модулей, решались подобные проблемы написанием под них алгоритмов, для корректной инициализации с устройством контроля системы.
Проверка стабильности выполнения системой
поставленных задач показало удовлетворительные результаты.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1) Магда, Ю. С. Программирование и отладка C/C++ приложений для микроконтроллеров AVR / Ю.С. Магда. - Москва.: ДМК Пресс, 2012. - 168 c.
2) Файл pdf. тестирование интерфейсов: <http://delta-course.org/docs/Delta2014S-T2-L7>.
) Мясников, В.А. Микропроцессоры: системы программирования и отладки: моногр. / В.А. Мясников, М.Б. Игнатьев, А.А. Кочкин, и др.. - Москва.:Энергоатомиздат, 1985. - 272 c.
) Предко, М. PIC-микроконтроллеры. Архитектура и программирование / М. Предко. - Москва.: Книга по Требованию, 2009. - 512 c
) официальный сайт для разработчиков платформ ардуино: <http://www.arduino.cc/en/Tutorial/PWM>.
) Мортон Дж. Микроконтроллеры AVR. Вводный курс. /Пер. с англ. - М.: Издательский дом «Додэка-XXI», 2006. - 272 с.: ил. (Серия «Мировая электроника»).
) Гарет П. Аналоговые устройства для микропроцессоров и мини-ЭВМ. - Москва.: Мир,1981
) Гальперин М.В. Практическая схемотехника в промышленной автоматике Москва.: Энергоатомиздат,1987. (с 262- 269).
) российский форум программистов и разработчиков микроконтроллеров: http://forum.avr.ru.
) Анкудинов В.Б. Технические средства автоматизации и управления:ВоГТУ-2012(с 12- 79).
)кибер-форум - раздел микроконтроллеры: http://www.cyberforum.ru/microcontrollers/
)сайт-магазин
радио деталей в Вологде: <http://35radio.ru>.
ПРИЛОЖЕНИЕ А
(справочное приложение)
Программа инициализации LCD дисплея, данная программа написана под конкретный котроллер TFTLCDдисплея без использования в коде специальной библиотеки инициализации LCD дисплея.
реализация отправки команд/данных на С.
#define D0 PORTA //так данные передаются по 16 битной шине,
#define D7 PORTD //под это дело мы используем два порта
#define COMMAND_PORT PORTB //управляющий порт
#definelcd_dc 0 //так же может называться RS(comm - 0; data - 1)
#define lcd_res 1 // (active - 0)
#define lcd_rd 2 // (read_active - 0)
#define lcd_cs 3 // (chip_select_active - 0)
#define lcd_wr 5 // (write_active - 0)_Write_Index(uint16_t index)
{_PORT &= ~(1<<lcd_dc); //будем слать команду_PORT |= (1<<lcd_rd); //выставляем на ножке, отвечающей за чтение 1_PORT &= ~(1<<lcd_cs); //активируемчип= (index& 0X00FF); //через D0 шлем младший байт= (index& 0XFF00)>>8; //затем через D7 старший_PORT &= ~(1<<lcd_wr); //теперь стробируем битом записи
_delay_us(5);_PORT |= (1<<lcd_wr);_PORT |= (1<<lcd_cs); //деактивируем чип
}_Write_Data(uint16_t data) //все то же самое только DC устанавливаем в единицу
{_PORT |= (1<<lcd_dc) ;_PORT |= (1<<lcd_rd);_PORT &= ~(1<<lcd_cs);= (data & 0X00FF);= (data & 0XFF00)>>8;_PORT &= ~(1<<lcd_wr);
_delay_us(5);_PORT |= (1<<lcd_wr);_PORT |= (1<<lcd_cs);
}_Write_Reg(uint16_t lcd_reg, uint16_t lcd_data) //для записи данных
{_PORT &= ~(1<<lcd_cs);_Write_Index(lcd_reg);_Write_Data(lcd_data);
COMMAND_PORT |= (1<<lcd_cs);
}
ПРИЛОЖЕНИЕ Б (справочное приложение)
В приложении Б представлен фрагмент кода рабочей программы информационной системы регулирования отопительным котлом.
#include <UTFT.h>
#include <UTach.h>
#include <OneWire.h>
#include "U8glib.h"
#define nasosKranKotel 47 // Реле 4 - верхнее - НЦ1, КЭ1
#define nasosPotrebiteli44 // Реле 3 - второесверху - НЦ2, НЦ3, НЦ4
#definekranTA 45 // Реле 2 - третье сверху - КЭ2
#definezaslonkaVozduha 46 // Реле 1 - нижнее - МЗ
#definetxa 8 // Аналоговый вход A8 ТХА (Датчик термопары дыма).
UTouchmyTouch( 6, 5, 4, 3, 2);uint8_t BigFont[];x, y;[20]="";=0;[20]="";sensor1Id[] = "1_Dymovaya_Truba"; // ТХАsensor2Id[] = "2_Kotel_Vyhod"; // ДТ2sensor3Id[] = "3_Kotel_Obratka"; // ДТ3[] = {(sensor0Id, strlen(sensor0Id), DATASTREAM_FLOAT), (sensor1Id, strlen(sensor1Id), DATASTREAM_FLOAT),(sensor2Id, strlen(sensor2Id), DATASTREAM_FLOAT),(sensor3Id, strlen(sensor3Id), DATASTREAM_FLOAT),(sensor4Id, strlen(sensor4Id), DATASTREAM_FLOAT),(sensor5Id, strlen(sensor5Id), DATASTREAM_FLOAT),
};
// Finally, wrap the datastreams into a feed(feedId, datastreams, 6/* number of datastreams */);client;(client);GLIB_ST7920_128X64_1X u8g(24, 22, 23); // SPI Com: SCK = en = 24, MOSI = rw = 22, CS = di = 23
//inttempCelsVal[6], tempCelsPre[6], txaCode;;[6], txaTemp;=0, accumulatorWarm=0,systemCRIHot=0, systemVeryHot=0,postplenieGar=0, sensorOnline[5];
OneWire ds1(28); // Неиспользуемый датчикds2(29); // Температура воды Котел подача ДТ2ds3(30); // Температура воды Котел обратка ДТ3
//----------------------------------------draw(void) {g.setFont(u8g_font_freedoomr10r);
//-------------------Котел Подача--------------g.drawFrame(0,15,33,48); // прямоугольник(2, 3, 32); // Определяет положение индикации ds2 "Температура воды Котел подача ДТ2"g.drawVLine(25,0,15); // труба левая частьg.drawVLine(29,0,15); // труба правая часть(!digitalRead(zaslonkaVozduha)) {u8g.drawLine(24,9,30,3);} // вывод изображения заслонки, если она включена
//------------------- --------g.drawEllipse(67,32,4,10,U8G_DRAW_UPPER_LEFT|U8G_DRAW_LOWER_LEFT);g.drawEllipse(110,32,4,10);g.drawHLine(69,21,41); // верхняялинияg.drawHLine(69,42,41); // нижняя линия
tempOutGraph(4, 79, 21); // Определяет положение индикации ds4 "Температура воды ТА Верхняя часть ДТ4"
//----------------Аккумулятор Низ----------(5, 79, 59); // Определяет положение индикации ds5 "Температура воды ТА Нижняя часть ДТ5"
//--------------------Трубы-------------g.drawHLine(33,17,16); // выход котлаg.drawHLine(33,48,16); // вход котлаg.drawFrame(50,2,74,62); // рамка ТАg.drawVLine(80,2,20); // вход аккумулятораg.drawDisc(122,26,3); // насос системаg.drawDisc(49,26,3); // насос обраткаg.drawCircle(42,48,2); // кран обраткаg.drawCircle(79,2,2); // кран аккумулятора(3, 3, 62); // Определяет положение индикации ds3 "Температура воды Котел обратка ДТ3"
//--------------------------------------(!digitalRead(nasosKranKotel)) u8g.drawHLine(39,21,6);g.drawVLine(44,21,10); // обраткаg.drawHLine(39,31,6);g.drawLine(39,31,41,29);g.drawLine(39,31,41,33);
}
//------------(!digitalRead(nasosPotrebiteli))
{ // рисуемg.drawHLine(104,5,14); // g.drawLine(118,5,116,3);g.drawLine(118,5,116,7);
//------------g.drawVLine(119,37,12); g.drawLine(119,49,117,47);g.drawLine(119,49,121,47);
//------------
/* u8g.drawVLine(66,40,12); g.drawLine(66,40,64,42);g.drawLine(66,40,68,42);*/(!digitalRead(nasosKranKotel))
{ // рисуем
u8g.drawVLine(46,3,12); // выход в меню
u8g.drawLine(46,3,44,5);g.drawLine(46,3,48,5);
//------------g.drawHLine(59,5,14); g.drawLine(73,5,71,3);g.drawLine(73,5,71,7);
//------------g.drawHLine(51,34,12); g.drawLine(51,34,53,36);(!digitalRead(kranTA)) g.drawVLine(110,15,12); g.drawLine(110,27,108,25);g.drawLine(110,27,112,25);
}
}if (!digitalRead(kranTA))
{ // рисуемg.drawVLine(110,15,12); g.drawLine(110,15,108,17);g.drawLine(110,15,112,17);
}
}
//--------------------------------------g.setPrintPos(0, 12); // Вывод показаний датчикаg.print((int)txaTemp); // температуры дыма
//--------------------------------------
}
//----------------------------------------setup()
{(zaslonkaVozduha, OUTPUT); // Назначаемпорт "Выходом"
pinMode(kranTA, OUTPUT); // Назначаем порт "Выходом"(nasosPotrebiteli, OUTPUT); // Назначаем порт "Выходом"(nasosKranKotel, OUTPUT); // Назначаем порт "Выходом"(zaslonkaVozduha, HIGH); // Назначаем первичное состояние ячейки Воздушой заслонки "HIGH" - подача воздуха включена(kranTA, HIGH); // Назначаем первичное состояние ячейки Крана ТА "HIGH"(nasosPotrebiteli, HIGH); // Назначаем первичное состояние ячейки Насос "HIGH"(nasosKranKotel, HIGH); // Назначаем первичное состояние ячейки Насоса "HIGH"
u8g.setRot180();g.setColorIndex(1); // pixel on.begin(9600);.println("Starting single datastream upload to Xively...");.print("IP address: ");(byte thisByte = 0; thisByte< 4; thisByte++)
{.print(Ethernet.localIP()[thisByte], DEC);.print(".");
}.println();.println();
}()
{=analogRead(8); // считывание показаний ТХА (код от 0 до 1023, 4.9 мВ/ед)=txaCode*1.0+1; // вычисление температуры дыма и добавление примерной температуры холодного спая 1 гр.С[1] = txaTemp;