1. Дорогие друзья! Если Ваш дом украшает и обогревает финская печь Туликиви, у вас есть отличная возможность пригласить съёмочную группу FORUMHOUSE для съёмок обзорного сюжета о вашем доме и об этой классной печи! Впереди зима, согреемся от теплой истории!) Пишите нам! expert@forumhouse.ru
    Скрыть объявление
1 2 3 4 5 6 7 8 9 10 8.5/10 8,50оценок: 6

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

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

  1. Альтермолог
    Регистрация:
    29.03.11
    Сообщения:
    8.492
    Благодарности:
    6.212

    Альтермолог

    Живу здесь

    Альтермолог

    Живу здесь

    Регистрация:
    29.03.11
    Сообщения:
    8.492
    Благодарности:
    6.212
    Адрес:
    Москва
     

    Вложения:

  2. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.468
    Благодарности:
    1.214

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.468
    Благодарности:
    1.214
    Адрес:
    Псков
    Переделываю режим разморозка, чтобы можно было допустим после ошибки запустить и оттаять в ручную.
    Сделал кнопку на экран.
    Залил, а экран тупо моргает.
    Залил старый, все равно моргает.
    Навешал кондеров на длинные провода до экрана, работает.
    Три года работал, а тут поле прошивки стал больше потреблять тока?
     
  3. Igoryok
    Регистрация:
    13.05.12
    Сообщения:
    1.636
    Благодарности:
    1.075

    Igoryok

    Живу здесь

    Igoryok

    Живу здесь

    Регистрация:
    13.05.12
    Сообщения:
    1.636
    Благодарности:
    1.075
    Адрес:
    Иваново
    У меня всегда моргает). Раньше помогал нормированный удар, думал контакт плохой (я тач менял).
    А тут недавно померял напряжение - 4.64...
     
  4. dimex2015
    Регистрация:
    25.10.15
    Сообщения:
    1.946
    Благодарности:
    367

    dimex2015

    Живу здесь

    dimex2015

    Живу здесь

    Регистрация:
    25.10.15
    Сообщения:
    1.946
    Благодарности:
    367
    Адрес:
    Минск
    Удар повышал напряжение до 5 вольт!
     
  5. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.468
    Благодарности:
    1.214

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.468
    Благодарности:
    1.214
    Адрес:
    Псков
    @vad711, Если есть желание.
    Ткни пальцем откуда вызывается check_blockFC()
    чтобы скинуть ошибку number_err = 0; когда ошибки нет err = OK

    Вот в VaconFC. ino есть тройка таких функций.
    Ни из одной, при err = OK перехода в check_blockFC() для сброса не произойдет.
    Код:
    // Запись данных (2 байта) в регистр cmd возвращает код ошибки
    // Реализовано FC_NUM_READ попыток чтения/записи в инвертор
    int8_t devVaconFC::write_0x06_16(uint16_t cmd, uint16_t data)
    {
        uint8_t i;
        if(!get_present() || state == ERR_LINK_FC) return err; // выходим если нет инвертора или он заблокирован по ошибке
        for (i = 0; i < FC_NUM_READ; i++) // делаем FC_NUM_READ попыток записи
            {
                err = Modbus.writeHoldingRegisters16(FC_MODBUS_ADR, cmd - 1, data); // послать запрос, Нумерация регистров с НУЛЯ!!!!
                if(err == OK) break; // Записали удачно
                numErr++; // число ошибок чтение по модбасу
                journal.jprintf_time(cErrorRS485, name, __FUNCTION__, err); // Выводим сообщение о повторном чтении
                if(check_blockFC()) break; // проверить необходимость блокировки
                _delay(FC_DELAY_REPEAT);
            }
            return err;
    }
    #endif // FC_ANALOG_CONTROL    // НЕ АНАЛОГОВОЕ УПРАВЛЕНИЕ
    Я все про то, что ошибки идущие не подряд не скидываются...
     
  6. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.184
    Благодарности:
    4.890

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.184
    Благодарности:
    4.890
    Адрес:
    МО
    Так в самой devVaconFC: check_blockFC() и скидываются:
    Код:
    bool devVaconFC::check_blockFC()
    {
    #ifndef FC_ANALOG_CONTROL // Не аналоговое управление
        if(err != OK) {
            if(xTaskGetSchedulerState() == taskSCHEDULER_NOT_STARTED || ++number_err >= FC_NUM_READ) { // если не запущена free rtos то блокируем с первого раза
                SETBIT1(flags, fErrFC); // Установить флаг
                note = (char*)noteFC_NO;
                set_Error(err, (char*)name); // Подъем ошибки на верх и останов ТН
                return true;
            }
        } else {
            SETBIT0(flags, fErrFC);
    >>>        number_err = 0;
            note = (char*)noteFC_OK;
        }
    #endif
        return false;
    }
    
     
  7. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.468
    Благодарности:
    1.214

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.468
    Благодарности:
    1.214
    Адрес:
    Псков
    Да...
    Но, кто посылает к number_err = 0;
    Если при if (err = OK) break;

    Код:
    // Запись данных (2 байта) в регистр cmd возвращает код ошибки
    // Реализовано FC_NUM_READ попыток чтения/записи в инвертор
    int8_t devVaconFC::write_0x06_16(uint16_t cmd, uint16_t data)
    {
        uint8_t i;
        if(!get_present() || state == ERR_LINK_FC) return err; // выходим если нет инвертора или он заблокирован по ошибке
        for (i = 0; i < FC_NUM_READ; i++) // делаем FC_NUM_READ попыток записи
            {
                err = Modbus.writeHoldingRegisters16(FC_MODBUS_ADR, cmd - 1, data); // послать запрос, Нумерация регистров с НУЛЯ!!!!
      >>>       if(err == OK) break; // Записали удачно
                numErr++; // число ошибок чтение по модбасу
                journal.jprintf_time(cErrorRS485, name, __FUNCTION__, err); // Выводим сообщение о повторном чтении
                if(check_blockFC()) break; // проверить необходимость блокировки
                _delay(FC_DELAY_REPEAT);
            }
            return err;
    }
    То есть, если сделать допустим так.
    Код:
    int8_t devVaconFC::write_0x06_16(uint16_t cmd, uint16_t data)
    {
        uint8_t i;
        if(!get_present() || state == ERR_LINK_FC) return err; // выходим если нет инвертора или он заблокирован по ошибке
        for (i = 0; i < FC_NUM_READ; i++) // делаем FC_NUM_READ попыток записи
            {
                err = Modbus.writeHoldingRegisters16(FC_MODBUS_ADR, cmd - 1, data); // послать запрос, Нумерация регистров с НУЛЯ!!!!
      >>>       if(err == OK) {check_blockFC(); break;} // Записали удачно
                numErr++; // число ошибок чтение по модбасу
                journal.jprintf_time(cErrorRS485, name, __FUNCTION__, err); // Выводим сообщение о повторном чтении
                if(check_blockFC()) break; // проверить необходимость блокировки
                _delay(FC_DELAY_REPEAT);
            }
            return err;
    }
    то ошибки идущие не подряд, скидываются.

    Правда вот попытался для проверки сэмитировать подряд ошибки. Получаю перезагрузку, зависает видимо.
    Код:
     Start task UpdateHP
    09:58:02 Heat Pump ON . . .
    10:00:33 Relay RSUPERBOILER: ON
    10:00:33 Relay R3WAYCLOS: OFF
    10:00:33 Relay R3WAYOPEN: ON
    Modbus reg #2106 - 10:01:14 Vacon: Read error read_0x03_16, code=-47 repeat . . .
    10:01:17 Relay R3WAYOPEN: OFF
    Modbus reg #2101 - 10:01:23 Vacon: Read error read_0x03_16, code=-47 repeat . . .
    Modbus reg #2101 - 10:01:24 Vacon: Read error read_0x03_16, code=-47 repeat . . .
    10:01:24 Relay R3WAYCLOS: ON
    Modbus reg #2101 - 10:01:24 Vacon: Read error read_0x03_16, code=-47 repeat . . .
    $Compressor protection 10:01:24 Vacon: Read error write_0x06_16, code=-47 repeat . . .
    $Compressor protection 10:01:24 Vacon: Read error write_0x06_16, code=-47 repeat . . .
    $Compressor protection 10:01:24 Vacon: Read error write_0x06_16, code=-47 repeat . . .
    $Compressor protection 10:01:24 Vacon: Read error write_0x06_16, code=-47 repeat . . .
    
    START ---
    Found I2C journal: size 57344 bytes, head=0x0, tail=0x58d
    Firmware version: 1.110
    Chip ID EXID: 677251680
    Chip ID SAM3X8E: 51203120-38383050-32303131-31113031
    Last reason for reset SAM3x: MEM ReadSensor
    Last FreeRTOS task + error: 0x0103 (78) Web(45)
    Power +5V, +3.3V on board: ON
    Supply Controller Register [SUPC_SR]: 0x00001080
    Supply monitor ON, voltage: 3.0V
     
    Последнее редактирование: 13.05.22
  8. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.184
    Благодарности:
    4.890

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.184
    Благодарности:
    4.890
    Адрес:
    МО
    Этот баг у меня исправлен давно в версии 1.120.
    Сейчас у меня версия 1.175.
     
  9. Igoryok
    Регистрация:
    13.05.12
    Сообщения:
    1.636
    Благодарности:
    1.075

    Igoryok

    Живу здесь

    Igoryok

    Живу здесь

    Регистрация:
    13.05.12
    Сообщения:
    1.636
    Благодарности:
    1.075
    Адрес:
    Иваново
    @vad711 ,1.175 в открытом доступе?
     
  10. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.468
    Благодарности:
    1.214

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.468
    Благодарности:
    1.214
    Адрес:
    Псков
    Вадим, шибко умным не доверяет свое творчество...
     
  11. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.184
    Благодарности:
    4.890

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.184
    Благодарности:
    4.890
    Адрес:
    МО
    Не, товарищам, которые начали продавать платы, да еще подменяя в исходнике авторов.
    Кстати, они были с Украины.
     
  12. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.468
    Благодарности:
    1.214

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.468
    Благодарности:
    1.214
    Адрес:
    Псков
  13. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.184
    Благодарности:
    4.890

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.184
    Благодарности:
    4.890
    Адрес:
    МО
    А это к чему? Разговор поддержать?
     
  14. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.468
    Благодарности:
    1.214

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.468
    Благодарности:
    1.214
    Адрес:
    Псков
  15. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.184
    Благодарности:
    4.890

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.184
    Благодарности:
    4.890
    Адрес:
    МО
    @Pskovsat, Скинь свой полный исходник в личку, исправлю ошибки.