Дипломная (вкр): Разработка информационной системы управления отопительным котлом для частного дома

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Вход в режим просмотра и редактирования защищённого меню выполняется одновременным нажатием и удержанием двух клавиш «меню» и клавиши «-» в течение 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;

Источник: https://www.bibliofond.ru/detail.aspx?id=897069