Skip to content

Commit 9641899

Browse files
committed
возможность исключить тэн бойлера из расчета COP
1 parent 8d36e82 commit 9641899

File tree

14 files changed

+464
-439
lines changed

14 files changed

+464
-439
lines changed

Control/Config.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
//#define CONFIG_4 // dobrinia инвертор+ЭРВ + с РТО и датчиком давления испарителя
3333
//#define CONFIG_5 // pav2000inv Инвертор BLDC с шаговым ЭРВ и РТО
3434
//#define CONFIG_6 // NTC Частотник PWM, 1 фаза, 4 реле, ЭРВ, NTC
35-
#define CONFIG_7 // vad7 Частотник Vacon, 3 фазы, ЭРВ, РТО, 2 датчика давления
35+
#define CONFIG_7 // vad7 Частотник Vacon, 3 фазы, ЭРВ, 2 датчика давления, РТО, СК, ВаттРоутер
3636

3737
// -----------------------------------------------------------------------------------------------------------------------------------
3838
// =============================================== C O N F I G 1 ===================================================================
@@ -3701,9 +3701,11 @@ const char *noteTemp[] = {"Температура улицы",
37013701

37023702
//#define RELAY_WAIT_SWITCH 11 // Заморозить выполнение задач на это время после переключения реле, ms
37033703

3704-
#define CORRECT_POWER220 // Корректировка потребляемой мощности из электросети (и для расчета COP), если включены указанные реле, Вт
3704+
#define NOLINK_SUM_POWER_PUMP 200 // Мощность потребления насосов, для добавления к мощности компрессора, если нет связи со электро-счетчиком, Вт
3705+
#define CORRECT_POWER220 // Корректировка потребляемой мощности из электросети (и для расчета COP), если включены указанные реле, Вт при 220V
37053706
#ifdef CORRECT_POWER220
37063707
CORRECT_POWER220_STRUCT correct_power220[] = { {RPUMPFL, 25} }; // Обороты: III = 45 Вт, II = 22 Вт, ТП-4 = 25
3708+
#define CORRECT_POWER220_EXCL_RBOILER// Вычитание мощности бойлера, включая данные ваттроутера, Вт при 220V
37073709
#endif
37083710
#define STATS_SKIP_COP_WHEN_RELAY_ON RBOILER // Пропускать логирование COP при включенном реле
37093711

Control/Constant.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
#include "Util.h"
2525

2626
// ОПЦИИ КОМПИЛЯЦИИ ПРОЕКТА -------------------------------------------------------
27-
#define VERSION "1.099" // Версия прошивки
27+
#define VERSION "1.100" // Версия прошивки
2828
#define VER_SAVE 148 // Версия формата сохраняемых данных в I2C память
2929
#ifndef UART_SPEED
3030
#define UART_SPEED 115200 // Скорость отладочного порта

Control/Control.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -838,7 +838,7 @@ void vWeb0(void *)
838838

839839
#ifdef WR_CurrentSensor_4_20mA
840840
HP.sADC[IWR].Read();
841-
int pnet = HP.sADC[IWR].get_Value() * (int)HP.dSDM.get_Voltage();
841+
int pnet = HP.sADC[IWR].get_Value() * HP.dSDM.get_voltage();
842842
#elif WR_PowerMeter_Modbus
843843
int pnet = round_div_int32(WR_PowerMeter_Power, 10);
844844
#else
@@ -861,7 +861,7 @@ void vWeb0(void *)
861861
int pnet = atoi(fld);
862862
#endif
863863
//
864-
if(GETBIT(WR.Flags, WR_fLogFull)) journal.printf("WR: Pnet=%d\n", pnet);
864+
if(GETBIT(WR.Flags, WR_fLogFull)) journal.jprintf("WR: P=%d\n", pnet);
865865
#ifdef WR_TestAvailablePowerForRelayLoads
866866
if(WR_TestLoadStatus) { // Тестирование нагрузки
867867
if(++WR_TestLoadStatus > WR_TestAvailablePowerTime) {

Control/Hardware.h

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -505,9 +505,8 @@ class devSDM
505505
uint16_t get_numErr(){return numErr;} // Получить число ошибок чтения счетчика
506506
char* get_note(){return note;} // Получить описание датчика
507507
char* get_name(){return name;} // Получить имя датчика
508-
float get_power(){return AcPower;}
509-
__attribute__((always_inline)) inline float get_Voltage(){return Voltage;} // Напряжение
510-
__attribute__((always_inline)) inline float get_Power(){return AcPower;} // Aктивная мощность
508+
__attribute__((always_inline)) inline int16_t get_voltage(){return Voltage;} // Напряжение, V
509+
__attribute__((always_inline)) inline int32_t get_power(){return AcPower;} // Aктивная мощность, Вт
511510

512511
boolean uplinkSDM(); // Проверить связь со счетчиком (связь дейстивтельно проверяется - чтение регистра скорости счетчика)
513512
boolean progConnect(); // перепрограммировать счетчик на требуемые параметры связи SDM_SPEED SDM_MODBUS_ADR c DEFAULT_SDM_SPEED DEFAULT_SDM_MODBUS_ADR
@@ -521,8 +520,8 @@ class devSDM
521520
uint16_t numErr; // число ошибок чтение по модбасу
522521
byte flags; // флаги 0 - наличие счетчика,
523522
// Управление по 485
524-
float AcPower; // активная мощность, Вт
525-
float Voltage; // Напряжение в вольтах
523+
int32_t AcPower; // активная мощность, Вт
524+
int16_t Voltage; // Напряжение, V
526525
type_settingSDM settingSDM; // Настройки
527526
char *note; // Описание
528527
char *name; // Имя

Control/Hardware.ino

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1565,15 +1565,15 @@ int8_t devSDM::get_readState(uint8_t group)
15651565
uint16_t tmp16[2];
15661566
};
15671567
#else
1568-
static float tmp;
1568+
float tmp;
15691569
#endif
15701570
if(!GETBIT(flags,fSDM) || !GETBIT(flags,fSDMLink)
15711571
#ifdef USE_UPS
15721572
|| HP.NO_Power
15731573
#endif
15741574
) { // Если нет счетчика или нет связи выходим
1575-
AcPower = 0.0f;
1576-
Voltage = 0.0f;
1575+
AcPower = 0;
1576+
Voltage = 0;
15771577
return err;
15781578
}
15791579
// Чтение состояния счетчика
@@ -1584,7 +1584,7 @@ int8_t devSDM::get_readState(uint8_t group)
15841584
if(group == 0) {
15851585
#ifdef USE_PZEM004T
15861586
Modbus.readInputRegisters32(SDM_MODBUS_ADR, SDM_AC_POWER, &tmp);
1587-
if(_err == OK) AcPower = (float)tmp / 10.0f; else goto xErr;
1587+
if(_err == OK) AcPower = tmp / 10; else goto xErr;
15881588
#else
15891589
_err = Modbus.readInputRegistersFloat(SDM_MODBUS_ADR, SDM_AC_POWER, &tmp);
15901590
if(_err == OK) AcPower = tmp; else goto xErr;
@@ -1610,7 +1610,7 @@ int8_t devSDM::get_readState(uint8_t group)
16101610
if(_err==OK) { Voltage = tmp16[0] / 10; group = 1; } else goto xErr;
16111611
#else
16121612
_err = Modbus.readInputRegistersFloat(SDM_MODBUS_ADR, SDM_VOLTAGE, &tmp); // Напряжение
1613-
if(_err==OK) { Voltage=tmp; group = 1; } else goto xErr;
1613+
if(_err==OK) { Voltage = tmp; group = 1; } else goto xErr;
16141614
#endif
16151615
#endif
16161616
}

0 commit comments

Comments
 (0)