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

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

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

Статус темы:
Закрыта.
  1. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    На плате два 3-х контактных разъема запараллелены, чтобы удобно было много датчиков подключать.
    Вторая шина это 2-х контактный разъем для паразитного питания, но можно и обычные датчики подключать - для этого +5 берется с любого 3-х контакного разъема.
    Если к шине подключен только один датчик, то в опциях нужно включить "На второй шине 1-Wire только один датчик температуры".

    upload_2019-6-24_9-15-14.png

    Один длинный либо глючный датчик может сажать всю шину.
    Первое - вынести его на отдельную шину.
    Помехи могут быть такие, что ничего не поможет, если с ними не бороться.
    Плата питает датчики от 5V, в отличии от 3.3V при подключении на прямую к DUE, также имеет защиту от статики и помех.
     
    Последнее редактирование: 24.06.19
  2. dimex2015
    Регистрация:
    25.10.15
    Сообщения:
    1.947
    Благодарности:
    372

    dimex2015

    Живу здесь

    dimex2015

    Живу здесь

    Регистрация:
    25.10.15
    Сообщения:
    1.947
    Благодарности:
    372
    Адрес:
    Минск
    Идея ясна. Разнесу датчики по 2м шинам. Буду смотреть какой датчик гонит помехи.

    А поскажите по чекам находящимся во вкладке привязка датчиков. Там 3 чеки. Игнорить crc и т. д.
     
  3. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    upload_2019-6-24_9-59-50.png

    игнор - при критических ошибках датчика (подряд больше NUM_READ_TEMP_ERR) не будет останавливаться ТН по ошибке.
    лог - не логировать ошибки датчика в журнал.
    crc - не проверять CRC ответа датчика, неверные подряд GAP_NUMBER_CRC раз значения будут отбрасываться если разница от предыдущего показания больше GAP_TEMP_VAL_CRC, если опция не активна, то разница - GAP_TEMP_VAL, а число подряд - GAP_NUMBER.
     
    Последнее редактирование: 24.06.19
  4. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    Тестирую разморозку. В ней есть выключение компрессора. После разморозки НК не вернутся на бойлер.
    Код:
    Run command: START
    24/06/2019 22:05:02   Start . . .
    EEV: Set zero
    Start modWork:4[Bp2]
    Set Vacon[Bp2]: 70.00%
    22:05:02 Relay RPUMPI: ON
    22:05:03 Relay RSUPERBOILER: ON
    EEV go preStartPos: 160
    22:05:04 Pause 5 s before start compressor
    Vacon[Bp2] ON
    Pause 40 second before go starting position EEV . . .
    EEV go StartPos: 182
    Start task UpdateEEV
    Start task UpdateHP
    22:05:57 Heat Pump ON . . .
    FC> 75.00
    FC> 80.00
    FC> 85.00
    FC> 90.00
    FC> 95.00
    FC> 100.00
    Next step, defrost...
    Pre-Start defrost
    Config system start DEFROST
    22:15:19 Relay RPUMPO: ON
    22:15:21 Relay RSUPERBOILER: OFF
    Stop operate EEV
    EEV closed
    Vacon[Bp14] OFF
    Pause pressure equalization . . .
    22:16:22 Relay RPUMPO: OFF
    Wait, FAN defrost.
    Wait, FAN defrost.
    Wait, FAN defrost.
    Wait, FAN defrost.
    Wait, FAN defrost.
    Wait, FAN defrost.
    Wait, FAN defrost.
    Finish defrost . . .
    Stop Boiler [Bp5]
    EEV closed
    Delay: stop IN pump.
    22:18:12 Relay RPUMPI: OFF
    Stop Boiler [Bp5]
    MODE, after defrosting set...
    Stop Boiler [Bp5]
    Stop Boiler [Bp5]
    Stop Boiler [Bp5]
    Stop Boiler [Bp5]
    а в бойлере температура даже ниже гистрейзиса...
    Код:
            else if(!(dFC.isfOnOff())) {Status.ret=pBp5; return pCOMP_OFF; }                                                          // Если компрессор не рабоатет то ничего не делаем и выходим
    как то тута не очень...
     
    Последнее редактирование: 24.06.19
  5. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    Да не, тут как раз норм.
    В каком состоянии onBoiler?
     
  6. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    В конце разморозки сделанно так
    Код:
      // ******************* Завершение разморозки ************************************
       
      if ((get_errcode()==OK) && (get_State()!=pSTOPING_HP) && (get_State()!= pOFF_HP))  {
      journal.jprintf("Finish defrost . . .\n");  // Если ОШИБОК нет, завершаем defrost.
      if(get_Work()==pOFF) { Status.modWork=pOFF; dEEV.Pause();  // Поставить на паузу ЭРВ
      dEEV.set_EEV(EEV_CLOSE_STEP); journal.jprintf(" EEV closed\n"); } // Закрыть ЭРВ
      else if(onBoiler==false) Status.modWork=pHEAT;  // Если не в ожидании и нет признака нагрева бойлера, ставим отопление
      else Status.modWork=pBOILER;  // Иначе нагрев бойлера.
      configHP(get_modWork());  // Cтавим все как было до разморозки и возможно останавливаемся.
       
      if((get_Work()!=pOFF) && (get_State()!=pSTOPING_HP) && (get_State()!= pOFF_HP)) compressorON();
      else if(!startPump && get_modeHouse()!= pOFF) {
      startPump = true;  // Поставить признак запуска задачи насос
      journal.jprintf(" %s: Pumps in pause %s. . .\n", (char*) __FUNCTION__, "ON");  // Включить задачу насос кондесатора выключение в переключении насосов
      }
      command_completed = rtcSAM3X8.unixtime();  // поменялся режим
      journal.jprintf("MODE, after defrosting set...\n");
      } else journal.jprintf("Defrosting not completed. Stop, or Error...\n");  //  Есть ошибки, выходим из разморозки.
    }
        
    если работал бойлер, то после разморозки он onBoiler true
     
  7. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    @Pskovsat, А должен быть false, чтобы потом он включился.
    Уже говорил, что для тестирования таких доработок есть спец дефайн - DEBUG_MODWORK.
     
  8. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    А как бы по лучше придумать?
    Ведь если будет false, то бойлер не включится, если допустим в разморозке попал в гистерезис.
    Задание 50С, гистерезис 15С. Включился нагрел до 40, ушел в разморозку. И больше не включился пока, не остынет до 35С...
     
    Последнее редактирование: 25.06.19
  9. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    Если такая ситуация критична, то нужно завести переменную, которая будет отражать, что прервали нагрев бойлера, или переменную, отражающую прерванную разморозкой операцию.
    И в updateBoiler в проверках на начало нагрева бойлера учесть эту переменную.
     
  10. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    #define DEBUG_MODWORK / Вывод в консоль состояние HP при работе
    он в журнал не пишет, только в порт?
     
  11. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    Да.
     
  12. Pav2000
    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705

    Pav2000

    Живу здесь

    Pav2000

    Живу здесь

    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705
    Адрес:
    Москва
    Наконец пришли набитые 5 плат 2 версии для НК. Сейчас проверяем.
    Основной косяк разводки (который уже нашли) - переставлены разъемы для сетевой карты. Придется перепаивать на ней (сетевая карта) гребенки на сторону Ethernet разъема (зато высота уменьшиться :)]).

    Основные характеристики платы что вспомнил.
    1. Число силовых выходов (на симисторах) - 8
    2. Число логических выходов с опто-развязкой - 4
    3. Число логических входов с опто-развязкой 6
    4. Число подключаемых ЭРВ - 1 шт
    5. Один прямой выход для подключения датчиков температуры ds18b20 - 1 шт
    6. Два моста для подключения датчиков температуры ds18b20 6 (клемников для 1 моста)+2 (клемников для 2 моста) Проверятся будет основной мост.
    7. Гальванически развязанный 485 1 шт
    8. Выход на Дисплей Нехтион (можно сконфигурировать 485 (пока не поддерживает НК) или serial) 1 шт
    9. Часы на плате - 1 шт
    10. i2c память 64 кб - 1 шт
    11. SPI флеш 16 мбайт - 1 шт
    12. Разъем для SD карты - 1 шт
    13. Датчик давления (аналоговый вход) - 2 шт
    14. Аналоговые входы - 2 шт
    15. Возможность крепления платы на DIN рейку или на стойках
    16. Разъем для подключения 2 кнопок и 2 светодиодов
    17. Размер платы 252*110mm толщина 2 мм
    18. CAN интерфейс - 1 шт. (можно использовать не только для НК)
    19. Напряжение питания 12 вольт

    Если есть интерес пишите в личку.
    Всего 5 плат 1 - уже зарезервирована.
     

    Вложения:

    • 04.jpg
    • 03.jpg
    • 02.jpg
    • 01.jpg
  13. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    В версии 1.027 изменился номер некоторых команд для дисплея Nextion,
    по этому необходимо обязательно прошить дисплей новой версией.

    Еще добавлена страница с профилями:

    upload_2019-6-27_10-16-39.png

    Возможности - вкл/выкл расписания, выбор профиля при выключенном расписании.
     
    Последнее редактирование: 27.06.19
  14. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    Страница 4 Nextion.
    Интересно было бы, при нажатии на любую температуру этой страницы, попадать на страницу с графиком этой температуры.
    Сложно мудрить с графиком?
     
  15. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    Графики у Nextion так себе - мороки много, чтобы вид хоть какой-то был.
    Пересчитывать данные нужно, сам он их не маштабирует, подписи координат нет и т. п.
     
Статус темы:
Закрыта.