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

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

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

  1. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231
    Адрес:
    Псков
    Что то недосмотрел видимо, то есть корректировка должна по обратке и в режиме бойлер.
    Точно, что то не подумал.
     
  2. Альтермолог
    Регистрация:
    29.03.11
    Сообщения:
    8.499
    Благодарности:
    6.236

    Альтермолог

    Живу здесь

    Альтермолог

    Живу здесь

    Регистрация:
    29.03.11
    Сообщения:
    8.499
    Благодарности:
    6.236
    Адрес:
    Москва
    Стерлитамакстрянка;)
     
  3. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231
    Адрес:
    Псков
    Код:
     FC> 76.30
    FC> 76.26
    Stop control EEV
    Vacon[Hp3] OFF
    20:06:51 Relay R3WAYOPEN: OFF
    20:06:52 Relay R3WAYCLOS: OFF
    20:06:52 Relay RPUMPOS1: OFF
    pump SO speed 2->1
    Delay: stop IN pump.
    20:07:02 Relay RPUMPI: OFF
    Delay: stop OUT pump.
    20:07:22 Relay RPUMPO: OFF
    Pause before closing EEV 5 sec . . .
    EEV closed
    vUpdate: Pumps in pause ON. . .
    20:08:35 Relay RPUMPO: ON
    20:10:36 Relay RPUMPO: OFF
    Как бы улучшить алгоритм, работы насоса отопления в паузе.
    По идее, первый раз включится после остановки он должен через время заданное в настройках
    upload_2020-12-2_20-14-47.png
    а запускается почти сразу же (не всегда конечно, но часто так совпадает).
    Лишняя ненужная движуха.
     
  4. fotyaa
    Регистрация:
    25.05.14
    Сообщения:
    558
    Благодарности:
    538

    fotyaa

    Живу здесь

    fotyaa

    Живу здесь

    Регистрация:
    25.05.14
    Сообщения:
    558
    Благодарности:
    538
    Адрес:
    Коломна
    Это я еще в прошлом сезоне заметил по графику потребления ЭЭ. Разбираться не стал.
     
  5. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231
    Адрес:
    Псков
    Может static uint16_t pump_in_pause_timer = 0; вынести в Heatpump. h
    B задаче остановки компрессора или насосов подставить
    pump_in_pause_timer = HP. get_workPump()
     
  6. dimex2015
    Регистрация:
    25.10.15
    Сообщения:
    1.947
    Благодарности:
    372

    dimex2015

    Живу здесь

    dimex2015

    Живу здесь

    Регистрация:
    25.10.15
    Сообщения:
    1.947
    Благодарности:
    372
    Адрес:
    Минск
    Поясни что это значит.
     
  7. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.305
    Благодарности:
    5.023

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.305
    Благодарности:
    5.023
    Адрес:
    МО
    Работа задачи для насосов просто приостанавливается на время работы компрессора.
    Там еще есть один нюанс, если настроена постоянная работа насосов отопления в паузе, то насосы после останова компрессора будут остановлены и сразу запущены.
     
  8. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231
    Адрес:
    Псков
    @vad711, а вот из последних доработок
    Код:
    // проверка на паузу между включениями, возврат true - в паузе
    boolean HeatPump::check_compressor_pause()
    {
        uint16_t pause = (Status.modWork & (pHEAT | pCOOL)) ? Prof.Heat.CompressorPause : Option.pause;
        if(stopCompressor && rtcSAM3X8.unixtime() - stopCompressor < pause) {
            if(!compressor_in_pause) journal.jprintf_time("Waiting compressor, pause %d s...\n", pause - (rtcSAM3X8.unixtime() - stopCompressor));
            return compressor_in_pause = true;
        }
        return compressor_in_pause = false;
    }
    какую цель преследовало?
    А то выход из разморозки у меня стал некорректный.
    иногда пишет
    а таких пауз у меня и нету нигде...
     
  9. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.305
    Благодарности:
    5.023

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.305
    Благодарности:
    5.023
    Адрес:
    МО
    В настройках ТН - минимальная пауза компрессора, а в настройках отопления пауза именно для отопления.
    Так более комфортно ТН работает, и если нужно ГВС нагреть сразу после отопления, то ждет минимальную паузу, которую позволяет производитель компрессора.

    Ну так подправь, делов то!
     
  10. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231
    Адрес:
    Псков
    Делов то- это когда пройдешься по всей цепочке.
    Её видно не сразу.
    Уже неделю переезжаю с 88 на последнюю.
    Сегодня ночью запорол файлы статистики, жалко.

    Непонял, так отопление отключится по достижении цели, пройдет эта новая пауза включится если нужно ГВС.
    А если работает отопление и нужно гвс? Тоже будет остановка на эту новую паузу...
     
  11. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231
    Адрес:
    Псков
    По таймеру насоса СО идея такая.
    @vad711, Впишется в задуманную изначально логику?
    Код:
                if(HP.startPump) {  // Если разрешена работа насоса( 0 - останов задачи, 1 - запуск, 2 - в работе (выкл), 3 - в работе (вкл))
                    if(HP.startPump == 1 && HP.get_pausePump() == 0 && HP.get_workPump()) { // Постоянно работают
                        goto xPumpsOn;
                    } else if(HP.get_workPump()) {
                        if(pump_in_pause_timer <= 1 && rtcSAM3X8.unixtime()-HP.get_stopCompressor()>HP.get_pausePump()) {
                            if(HP.startPump <= 2) {               // включить
                                pump_in_pause_timer = HP.get_workPump();
    xPumpsOn:            HP.dRelay[PUMP_OUT].set_ON();                          // включить насос отопления
                                HP.startPump = 3;
                            } else {                              // выключить
                                HP.dRelay[PUMP_OUT].set_OFF();                         // выключить насос отопления
                                pump_in_pause_timer = HP.get_pausePump();
                                HP.startPump = 2;
                            }
                        } else if(pump_in_pause_timer > 1) pump_in_pause_timer--;
                    }
                }
                STORE_DEBUG_INFO(76);
     
  12. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.305
    Благодарности:
    5.023

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.305
    Благодарности:
    5.023
    Адрес:
    МО
    Не, криво.

    Нет, паузы это чисто для пауз в работе компрессора, когда он уже остановился.

    Файлы статистики текстовые, в конце забиты нулями.
    Лечится просто - переводом даты на год вперед НК обрезает файл, ждем пока НК создаст файл пустышку, далее старый файл редактируется как нужно, и командой "copy /b <старый> + <пустышка> <новый>" делается новый файл, который потом переписывается на место старого.
     
    Последнее редактирование: 03.12.20
  13. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231
    Адрес:
    Псков
    Искал, сам не нашел...
    СOP, не считает на этих страницах теперь?
    upload_2020-12-6_10-45-9.png
    upload_2020-12-6_10-45-52.png
     
  14. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.305
    Благодарности:
    5.023

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.305
    Благодарности:
    5.023
    Адрес:
    МО
    Все норм:
    upload_2020-12-6_13-26-50.png
     
  15. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.500
    Благодарности:
    1.231
    Адрес:
    Псков
    Попробовал, кривую задумку по задаче насоса, вроде работает неплохо.
    А можно сделать проще?
    Код:
                if(HP.startPump) {  // Если разрешена работа насоса( 0 - останов задачи, 1 - запуск, 2 - в работе (выкл), 3 - в работе (вкл))
                    if(HP.startPump == 1 && HP.get_pausePump() == 0 && HP.get_workPump()) { // Постоянно работают
                        goto xPumpsOn;
                    } else if(HP.get_workPump()) {
                        if(pump_in_pause_timer <= 1) {
                        if(HP.startPump <= 2) {                   // включить
                                pump_in_pause_timer = HP.get_workPump();
    xPumpsOn:            HP.dRelay[PUMP_OUT].set_ON();                          // включить насос отопления
                                HP.startPump = 3;
                            } else {                                  // выключить
                                HP.dRelay[PUMP_OUT].set_OFF();                         // выключить насос отопления
                                pump_in_pause_timer = HP.get_pausePump();
                                HP.startPump = 2;
                            }
                        } else pump_in_pause_timer--;
                    }
                } else pump_in_pause_timer = HP.get_pausePump();
                STORE_DEBUG_INFO(76);