1 2 3 4 5 6 7 8 9 10 9/10 9,00оценок: 6

"Народный контроллер" для теплового насоса - 2

Тема в разделе "Геотермальные тепловые насосы", создана пользователем kmvtgn, 13.03.18.

Статус темы:
Закрыта.
  1. Sheeny
    Регистрация:
    25.05.10
    Сообщения:
    740
    Благодарности:
    881

    Sheeny

    Живу здесь

    Sheeny

    Живу здесь

    Регистрация:
    25.05.10
    Сообщения:
    740
    Благодарности:
    881
    Адрес:
    Ивантеевка
    + верстку поправить в оболочке
     
  2. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.504
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.504
    Благодарности:
    1.231
    Адрес:
    Псков
    Отцы, пока все тут.
    Давайте разморозку то допилим.
    Пока вот так
    Код:
    // РАЗМОРОЗКА ВОЗДУШНИКА ----------------------------------------------------------
    #ifdef DEFROST
    #define TEMP_NO_DEFROST      0   // температура выше которой разморозка не включается
    #define TEMP_STEAM_DEFROST 200   // температура ниже которой оттаиваем паром
    #define TEMP_END_DEFROST   1500  // температура окончания отттайки
    void HeatPump::defrost()
    {
      if (get_State() == pOFF_HP) return;                                     // если ТН не работает то выходим
      if (sTemp[TEVAIN].get_Temp()>TEMP_NO_DEFROST) return;                   // Температура испарителя выше 0С ТН не обмерзает
      if (is_compressor_on() && rtcSAM3X8.unixtime()-startCompressor<15*60) return;   // компрессор работает, но прошло менее 15 минут - размораживать не надо
      if (sTemp[TEVAIN].get_Temp()-sTemp[TOUT].get_Temp()>-1200) {startDefrost=0;return;  }   // размораживать не надо - условие не наступило
      journal.jprintf("Next step, defrost . . .\n");
      // организация задержки перед включением
      if (startDefrost==0) startDefrost=xTaskGetTickCount();                   // первое срабатывание датчика - запоминаем время (тики)// Наступило условие, средняя температура испарителя ниже воздуха, более чем 15С - запоминаем время (тики)
      if (xTaskGetTickCount()-startDefrost<Option.delayDefrostOn*125)  return; // Еще рано размораживать
      journal.jprintf("Start defrost\n");                                      // Пошла оттайка
    
      if (is_compressor_on()&&(dRelay[RTRV].get_Relay()==true)) ChangesPauseTRV(); // Компрессор рабатает и 4-х ходовой стоит на тепле то хитро переключаем 4-х ходовой в положение холод
      if (sTemp[TOUT].get_Temp()<=TEMP_STEAM_DEFROST)                              // Если температура на улице ниже или равна "TEMP_STEAM_DEFROST" то оттаиваем паром
      {
    //     dRelay[RTRV].set_OFF();                                                 // Снимаем питание с 4 ходового и с коммутации реле 220в на вентиляторы. паралельно реле задействует альтернативный ПИД и задание на ЧРП.
    //    _delay(2*1000);                                                          // немного ждем пока поднапрет давление
    //     dEEV.set_EEV(dEEV.get_StartPos());                                      // разморозка с фиксированным положение ЭТРВ, шагов 70 задатьв конфиге.
    //  lastEEV=dEEV.get_StartPos();                                               // или так ???
        dRelay[RDFPAL].set_ON();                                                // Подогрев поддона
        dRelay[RALTIR].set_ON();                                                // Переключить ЧРП на альтернативное задание, для разморозки.
        compressorON(pDEFROST);                                                 // Запуск компрессора в режим холод.
    //  dFC.set_targetFreq (dFC.get_minFreqCool());                             // Установить минимальную частоту для режима охлаждения в разморозке.
        while (sADC[PCON].get_Press()<2050)                                     // Ждем поднятия давления в оттаивающем испарителе.
        {
          _delay(5*1000);                                                      // Задержка на 10 сек
          journal.jprintf(" Wait process HEAT GAS defrost . . .\n");
          if ((get_State() == pOFF_HP) || (get_State() == pSTARTING_HP) || (get_State() == pSTOPING_HP)) break; // ТН выключен или включается или выключается выходим из разморозки
        }
        journal.jprintf(" Finish defrost, wait delay Defrost Off min.\n");
        compressorOFF();                                                         // выключить компрессор
        dRelay[RALTIR].set_OFF();                                                // Выключить альтернативное задание.
        _delay(Option.delayDefrostOff*1000);                                     // Задержка пусть стекут остатки воды
        dRelay[RDFPAL].set_OFF();                                                // Выключить обогрев поддона
      }
      else                                                                       // А, если температура на улице выше 2С то оттаиваем вентиляторами
        while (sTemp[TOUT].get_Temp()-100>sTemp[TEVAIN].get_Temp())              // Ждем оттаивания, т.е поднятия температууры входа испарителя.  До температуры улицы - 1С
        {
        _delay(10*1000);                                                         // Задержка на 10 сек
        journal.jprintf("FANs defrost wait process   . . .\n");
        if ((get_State() == pOFF_HP) || (get_State() == pSTARTING_HP) || (get_State() == pSTOPING_HP)) break; // ТН выключен или включается или выключается выходим из разморозки
        }
        journal.jprintf("Finish defrost\n");                                     // выходим ТН сам определит что надо делать
    }
    #endif
     
  3. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.310
    Благодарности:
    5.028

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.310
    Благодарности:
    5.028
    Адрес:
    МО
    Если так, то не так и легко - на каждом экране, а их там 8, нужно прокликать каждый элемент и задать размер и положение.
     
  4. Sheeny
    Регистрация:
    25.05.10
    Сообщения:
    740
    Благодарности:
    881

    Sheeny

    Живу здесь

    Sheeny

    Живу здесь

    Регистрация:
    25.05.10
    Сообщения:
    740
    Благодарности:
    881
    Адрес:
    Ивантеевка
    мне вот не легко код писать, а поправить 8 экранов - легко :aga:
    под 2 размера экрана верстка ест, если кому-то будет нужна под 7' - сделаю.
     
  5. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.310
    Благодарности:
    5.028

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.310
    Благодарности:
    5.028
    Адрес:
    МО
    Тут с наскока не получится.

    С какой-то версии алгоритм работы с экраном немного менялся, как и сам экран.
    Если не было правки, то старая верстка под 3.5" не будет работать.
     
  6. Sheeny
    Регистрация:
    25.05.10
    Сообщения:
    740
    Благодарности:
    881

    Sheeny

    Живу здесь

    Sheeny

    Живу здесь

    Регистрация:
    25.05.10
    Сообщения:
    740
    Благодарности:
    881
    Адрес:
    Ивантеевка
    так под 3.5" я для тебя делал https://www.forumhouse.ru/posts/19370101/
    если ты не используешь, то, наверное, ни кто не использует.
     
  7. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.310
    Благодарности:
    5.028

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.310
    Благодарности:
    5.028
    Адрес:
    МО
    у меня в итоге стоит стандарт - 4.5".
     
  8. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.504
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.504
    Благодарности:
    1.231
    Адрес:
    Псков
    Да какой тут наскок, с лета молю Павла...
    Монетами змей не берет.
    Думаю, пусть будет заинтересованность, прикупил плат.
    Говорю же, платы нужны для воздушников. Нужна будет разморозка.
    Да. да. да там это можно, и это можно, все можно...

    Но, прошло уже пара месяцев зимы, я запорол ПТО.
    Ребята пилят прошивку...

    Оно так, что жизненно необходимо? Все эти мега улучшения.
    Тут тупо тепла нет, обмерзает. Нервы неспокойны, разорвать может...

    Говорю же помогайте.
    Деньгу наскребу.

    Но, ни у кого интереса нету...
    Вроде, как что нужно, все ходы расписал...

    Тут, думать то с вашими мощностями, пол часа.
     
    Последнее редактирование: 06.12.18
  9. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.310
    Благодарности:
    5.028

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.310
    Благодарности:
    5.028
    Адрес:
    МО
    Я беру. :)
    А то с моим энерджилексом одно попадалово, хоть как-то нивелировать...
     
  10. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.504
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.504
    Благодарности:
    1.231
    Адрес:
    Псков
    Кто б сомневался.
    Но хочется, чтоб это сделал человек или под его руководством, у которого к этому делу есть интерес. Я честно, кроме вопроса сколько... Интереса у тебя не увидел.
    То есть, тебя ломает слегка заглянуть внутрь проблемы, прикинуть, найти варианты, согласовать их. Получить гонорар и сделать.
     
  11. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.310
    Благодарности:
    5.028

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.310
    Благодарности:
    5.028
    Адрес:
    МО
    Потому что, мне и так есть чем заняться.
    Как сделать мысль есть, чтобы начать ее проверять и реализовывать нужно время, которого свободного нет.
    А чтобы найти для этого время из других задач нужна мотивация.
    Так же, как ты понимаешь, на доработку и исправление ошибок тоже затрачиваются ресурсы, которые ни кто не компенсирует. Долго так продолжаться тоже не может. Коммунизм так и не построили.
     
  12. Igoryok
    Регистрация:
    13.05.12
    Сообщения:
    1.703
    Благодарности:
    1.141

    Igoryok

    Живу здесь

    Igoryok

    Живу здесь

    Регистрация:
    13.05.12
    Сообщения:
    1.703
    Благодарности:
    1.141
    Адрес:
    Иваново
    В ходе запуска и первой недели работы столкнулся со следующим:
    1. Датчик высокого давления накрылся в первый день. Калибровка по манометру дала нереальные коэффициенты (не совпали с погрешностью датчика, указанной в документации). В результате датчик был демонтирован, и на открытом воздухе показывал 3.67 бар.
    2. Один температурный датчик 1-wire после недели работы стал периодически показывать на 3 градуса больше, иногда даёт выбросы по 30 градусов.

    Предложения по доработке НК.
    1. Уверен, что 99% дублируют датчик ВД и датчик НД температурными датчиками. Предлагаю сделать контроль разности показаний и при заданной дельте показаний с учетом корректировки, накопленной в течение заданного времени, выдавать ошибку.
    Т. е. задаются 3 параметра:
    - корректировка (у меня датчик НД, установленный на выходе испарителя, показывает на 1 градус меньше, чем температурный, установленный на входе в испаритель. Возможно причина в потерях давления на испарителе);
    - дельта, при которой фиксируется разовое событие "разность показаний";
    - время, в течение которого должны непрерывно произойти события "разность показаний".
    2. Сделать возможность дублирования датчиков температуры с контролем дельты по аналогии с п. 1. Затраты невелики, второй датчик можно крепить не так ответственно, как основной.
     
    Последнее редактирование: 07.12.18
  13. Альтермолог
    Регистрация:
    29.03.11
    Сообщения:
    8.499
    Благодарности:
    6.236

    Альтермолог

    Живу здесь

    Альтермолог

    Живу здесь

    Регистрация:
    29.03.11
    Сообщения:
    8.499
    Благодарности:
    6.236
    Адрес:
    Москва
    Перегрев, переохлаждение
    А перегрев какой задан?
     
  14. Igoryok
    Регистрация:
    13.05.12
    Сообщения:
    1.703
    Благодарности:
    1.141

    Igoryok

    Живу здесь

    Igoryok

    Живу здесь

    Регистрация:
    13.05.12
    Сообщения:
    1.703
    Благодарности:
    1.141
    Адрес:
    Иваново
    Перегрев и переохлаждение не имеют отношения к тому, что я предлагаю.

    Какое это имеет значение?
     
  15. Igoryok
    Регистрация:
    13.05.12
    Сообщения:
    1.703
    Благодарности:
    1.141

    Igoryok

    Живу здесь

    Igoryok

    Живу здесь

    Регистрация:
    13.05.12
    Сообщения:
    1.703
    Благодарности:
    1.141
    Адрес:
    Иваново
    Возможно я изложил неясно.
    Привожу рисунок, красным и синим выделены дублируемые датчики.
     

    Вложения:

    • Дублирование датчиков.png
Статус темы:
Закрыта.