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

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

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

Статус темы:
Закрыта.
  1. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    Еще такая фишка.
    Греем бойлер насосом. Достигли температуры догрева, включился тэн.
    Кто то, пошел в ванную и температура стала падать, упала ниже температуры догрева и тэн выключился. :hello:
    Бойлер остывает до гистрейзиса, потом включается ТН и далее опять тэн.
    Может уж фиг с ним, пусть тэн продолжает греть до упора невзирая, что температура падает?
     
  2. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    Что то тута, упростил немного насос заработал как нужно.
    Код:
    // Переключение на бойлер или обратно (true-бойлер false-отопление/охлаждение) возврат onBoiler
    // в зависимости от режима, не забываем менять onBoiler по нему определяется включение ГВС
    boolean HeatPump::switchBoiler(boolean b)
    {
        if(b == onBoiler) return onBoiler;        // Нечего делать выходим
    #ifdef DEBUG_MODWORK
        journal.printf(" swBoiler(%d): %X, mW:%d\n", b, onBoiler, get_modWork());
    #endif
    #ifdef R3WAY
        dRelay[R3WAY].set_Relay(b);    // Установить в нужное полежение 3-х ходового
        Pump_HeatFloor(b);
    #else                            // Нет трехходового - схема с двумя насосами
                  // ставим сюда код переключения ГВС/отопление в зависимости от onBoiler=true - ГВС
        if(b) {                        // переключение на ГВС
        Pump_OutSpeed(false);        // Pskovsat переключить на 1 скорость
            Pump_HeatFloor(false);           // выключить насос ТП
            dRelay[RPUMPO].set_OFF();    // файнкойлы выключить
            }
                          // Переключение с ГВС на Отопление/охлаждение идет анализ по режиму работы дома
    
        else if((Status.modWork!=pOFF) && (get_modeHouse()!=pOFF) && (get_State()!=pSTOPING_HP)) {
                dRelay[RPUMPO].set_ON();     // файнкойлы
                Pump_HeatFloor(true);
        } else {                       // пауза, ИЛИ работа дома не задействована - выключить
                Pump_HeatFloor(false);
          Pump_OutSpeed(false);        // Pskovsat переключить на 1 скорость
                dRelay[RPUMPO].set_OFF();    // файнкойлы
            }
    #endif
                                       // Если грели бойлер и ТН работает, то обеспечить дополнительное время
        if(onBoiler && get_State() == pWORK_HP) {
            journal.jprintf(" Pause %ds, Boiler->House\n", HP.Option.delayBoilerSW);
            _delay(HP.Option.delayBoilerSW * 1000); // выравниваем температуру в контуре отопления/ГВС что бы сразу защиты не сработали
        }
        offBoiler = b ? 0 : rtcSAM3X8.unixtime(); // запомнить время выключения ГВС (нужно для переключения)
        return onBoiler = b;
    }
     
  3. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    Ты не изменил алгоритм, кроме своих вставленных функций. Так что дело было в другом.

    Мне так не удавалось уменьшить температуру в бойлере, да и не только мне. Если только бойлер слишком маленький.

    Да, есть такая опция: "Включать догрев, если компрессор не нагрел бойлер до температуры догрева".
    Она также не будет выключать тэн, раз он уже включился.
     
    Последнее редактирование: 31.05.19
  4. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    Еще в секции бойлер, конфигурирования клапанов менял флаг работы бойлера. Щас не дома... вечером покажу. Но, вроде это место не должно при таом режиме общитываться.
     
  5. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    Плата получается приблизительно такой - пайки минимум,
    платы SD, часов, сети, RS485, serial, датчиков температуры впаиваются или вставляются прям на нее.
    На самой плате 2 токовых входа (4..20mA), 3 аналоговых входа и 2 аналоговых выхода.
    Выход на текстовый дисплей LCD1602 / 2004.
    upload_2019-5-31_13-23-8.png

    Размер 100x100 мм, поэтому стандартная Arduino DUE не влезла.
    Поставил мини плату Arduino DUE-Core.
    upload_2019-5-31_13-29-2.png

    Минусы - дороже ($19), плюсы - ничего паять на ней не нужно и на ней уже память EEPROM 512K есть.
    Для реле рисую еще одну плату (на ней еще ULN (драйвер ЭРВ), развязка входов),
    либо можно использовать китайскую плату реле и ULN.
     
    Последнее редактирование: 31.05.19
  6. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    В этой HeatPump: configHP (MODE_HP conf) функции, БОЙЛЕР переделал так.
    Код:
          } else if((conf & pBOILER)) {                                // Бойлер
              if(Switch_R4WAY(false)) return false;                                     // 4-х ходовой на нагрев
          if(is_compressor_on()) {switchBoiler(true); }              // включить бойлер
          else { if(Status.ret < pBp5) dFC.set_target(dFC.get_startFreqBoiler(),true,dFC.get_minFreqBoiler(),dFC.get_maxFreqBoiler()); }
                                                                     // установить стартовую частоту
    
            #ifdef SUPERBOILER                                           // Бойлер греется от предкондесатора
            dRelay[PUMP_IN].set_ON();                                    // Реле включения насоса входного контура  (геоконтур)
        _delay(DELAY_AFTER_SWITCH_RELAY);                            // Задержка
        dRelay[RSUPERBOILER].set_ON();                               // Евгений добавил
        Pump_OutSpeed(false);                                        // Скинуть скорость насоса на 1
        dRelay[PUMP_OUT].set_OFF();                                  // Евгений добавил
        _delay(DELAY_AFTER_SWITCH_RELAY);                            // Задержка
            #else
        PUMPS_ON;                                                    // включить насосы
            #endif
     
            #ifdef RHEAT
            if (dRelay[RHEAT].get_present()) dRelay[RHEAT].set_OFF();    // Выключить ТЭН отопления
            #endif
     
        }
    больше ничего не переделывал...
    Насос СО работает правильно.
     
  7. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    @Pskovsat, надо бы по уму #супербойлер убрать в PUMPS_*...
     
  8. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    Тоже так думал. управление насосом superboiler делать в месте с остальными насосами.
     
  9. fotyaa
    Регистрация:
    25.05.14
    Сообщения:
    558
    Благодарности:
    538

    fotyaa

    Живу здесь

    fotyaa

    Живу здесь

    Регистрация:
    25.05.14
    Сообщения:
    558
    Благодарности:
    538
    Адрес:
    Коломна
    Как сделать в НК управление частотником по аналогу (напряжением), без контроля по Modbus и SDM.
     
  10. dimex2015
    Регистрация:
    25.10.15
    Сообщения:
    1.947
    Благодарности:
    372

    dimex2015

    Живу здесь

    dimex2015

    Живу здесь

    Регистрация:
    25.10.15
    Сообщения:
    1.947
    Благодарности:
    372
    Адрес:
    Минск
    Это для обеззжелезивания?
     
  11. Pav2000
    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705

    Pav2000

    Живу здесь

    Pav2000

    Живу здесь

    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705
    Адрес:
    Москва
    Есть дефайн аналогового управления, при этом в морде появляется настройка для аналогового управления. Мод бас отключается при этом.
    1. В дуньке есть цап. Но сигнал у него от 0 до 3.3 вольта т. Е. Надо его нормировать (усилить) до нужного значения обычно 0-10 или - 10... +10 вольт. Код под такое управление написан, но не проверялся и мог быть попорчен в результате переделок т. Е надо проверять. Скорее всего потребуется доработка и проверка.
    2. Неплохо сделать выход для команды ход для этого отлично подойдёт rcomp. Код под него есть и он работает
    3. Надо сделать вход ошибка инвертора. Такой вход есть и код под него написан.
    4. Крайне желательно сделать выход сброс инвертора после ошибки. Такой выход есть код под него написан.

    Вижу только минимальные проблемы только с п. 1 все остальное есть.
     
  12. fotyaa
    Регистрация:
    25.05.14
    Сообщения:
    558
    Благодарности:
    538

    fotyaa

    Живу здесь

    fotyaa

    Живу здесь

    Регистрация:
    25.05.14
    Сообщения:
    558
    Благодарности:
    538
    Адрес:
    Коломна
    С железом все понятно, это не проблема. Вроде все правильно, но в файле VaconFC. ino жалуется на необъявленную переменную "dac", при том что Vacon в конфиге не упоминается.
     
  13. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    В том числе, еще умягчение. Но основное - интеллектуальный контроль работоспособности системы водоснабжения. Как показала практика, у дозатора может забиться эжектор, закончится вода в баке для удаления сероводорода, реле включения насосной станции засоряется и т. п. Защита от протечек еще.
    Но контроллер подойдет и для ТН. Для ТН меньше датчиков нужно.

    В DUE ЦАП выдает от 0.5 до 2.8V, по этому его в топку. Можно аналоговый выход с помощью PWM и операционного усилителя сделать - диапазон хоть 0-5V, или 0-24V, если нужно.
    Я так на своей плате планирую сделать.

    Этот режим не тестировался и до сего момента ни кому был не нужен, насколько знаю.
     
  14. Gaunt
    Регистрация:
    14.06.12
    Сообщения:
    14.700
    Благодарности:
    10.089

    Gaunt

    Живу здесь

    Gaunt

    Живу здесь

    Регистрация:
    14.06.12
    Сообщения:
    14.700
    Благодарности:
    10.089
    Адрес:
    Стерлитамак Уфимской Губернии
    @vad711, Ну вот и пятый вариант НК, теперь уже ближе к правде. В смысле денег.

    Сколько труда идет в холостую.
     
  15. fotyaa
    Регистрация:
    25.05.14
    Сообщения:
    558
    Благодарности:
    538

    fotyaa

    Живу здесь

    fotyaa

    Живу здесь

    Регистрация:
    25.05.14
    Сообщения:
    558
    Благодарности:
    538
    Адрес:
    Коломна
    Напоминает обсуждение в другой теме,(НК лайт версия) и двухэтажная конструкция. Именно он и получится, иначе зачем было набивать плату теми-же датчиками и устройствами, что уже есть в "НК".

    Согласен, PWM интересней, операционник не нужен, лишняя запчасть.

    Надо протестировать режим прямого управления, частотников много появилось.
     
Статус темы:
Закрыта.