hy协议添加软件是否启动
This commit is contained in:
parent
fbd83bed35
commit
176c26834a
|
@ -46,7 +46,6 @@
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
void uartCommonInit(void);
|
void uartCommonInit(void);
|
||||||
|
|
||||||
uint16_t checkModebusCrc(uint8_t *arr_buff, uint8_t len);
|
uint16_t checkModebusCrc(uint8_t *arr_buff, uint8_t len);
|
||||||
|
@ -54,5 +53,4 @@ uint16_t checkModebusCrc(uint8_t *arr_buff, uint8_t len);
|
||||||
void gw485DataAnalysis(device_handle device);
|
void gw485DataAnalysis(device_handle device);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -14,6 +14,8 @@ typedef struct _config_parameter{
|
||||||
|
|
||||||
uint32_t gw485_Baud; /* 串口波特率 */
|
uint32_t gw485_Baud; /* 串口波特率 */
|
||||||
uint32_t bat485_Baud; /* 串口波特率,为0代表bms不支持通信 */
|
uint32_t bat485_Baud; /* 串口波特率,为0代表bms不支持通信 */
|
||||||
|
uint32_t supportProtocolTypes; /* 支持协议类型 */
|
||||||
|
|
||||||
uint8_t powerBoxType; /* 是否只充当电源板:0x00:不是;0xFF:是*/
|
uint8_t powerBoxType; /* 是否只充当电源板:0x00:不是;0xFF:是*/
|
||||||
float constantVoltageV; /* 恒压充电阈值电压(V) */
|
float constantVoltageV; /* 恒压充电阈值电压(V) */
|
||||||
float floatI; /* 浮充充电阈值电流(A) */
|
float floatI; /* 浮充充电阈值电流(A) */
|
||||||
|
@ -42,6 +44,9 @@ typedef struct _config_parameter{
|
||||||
float FloatChargeV; /* 浮充充电时的输出电压(V) */
|
float FloatChargeV; /* 浮充充电时的输出电压(V) */
|
||||||
uint16_t collectOpenCircuitVoltageTime; /* 充电时采集开路电压的间隔时间 */
|
uint16_t collectOpenCircuitVoltageTime; /* 充电时采集开路电压的间隔时间 */
|
||||||
float reverseChargProtectionCurr; /* 反向充电保护电流 */
|
float reverseChargProtectionCurr; /* 反向充电保护电流 */
|
||||||
|
float softStartVolt; /* 软启动阈值电压 */
|
||||||
|
float MPPTConstantVoltage; /* MPPT恒定输出电压 */
|
||||||
|
float MPPTReduceConstantVoltage; /* MPPT降功率运行时控制输入电压稳定值 */
|
||||||
|
|
||||||
/* SL */
|
/* SL */
|
||||||
uint16_t Access_Node_Type; /* 接入节点类型 */
|
uint16_t Access_Node_Type; /* 接入节点类型 */
|
||||||
|
|
|
@ -490,7 +490,6 @@ void DSG_PROT_Interrupt(void)
|
||||||
* @retval
|
* @retval
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void EXCHG_PROT_Interrupt(void)
|
void EXCHG_PROT_Interrupt(void)
|
||||||
{
|
{
|
||||||
setShortCircuit();
|
setShortCircuit();
|
||||||
|
@ -503,6 +502,7 @@ void EXCHG_PROT_Interrupt(void)
|
||||||
/* 一定时间内第二次进入输出短路保护,关闭输出 */
|
/* 一定时间内第二次进入输出短路保护,关闭输出 */
|
||||||
else if (getShortCircuit() >= 2) {
|
else if (getShortCircuit() >= 2) {
|
||||||
stopShortCircuitProtection();
|
stopShortCircuitProtection();
|
||||||
|
zeroShortCircuit();
|
||||||
insertEventsOrderRecord(hardwareInputProtection);
|
insertEventsOrderRecord(hardwareInputProtection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -390,9 +390,10 @@ void mppt_readJust(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getMosTemperState() == mosTemperReduce) {
|
if (getMosTemperState() == mosTemperReduce) {
|
||||||
SolarInCircuitV = 20;
|
SolarInCircuitV = g_cfgParameter.MPPTReduceConstantVoltage;
|
||||||
|
mppt_constantVoltage(SolarInCircuitV);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
flag = 0;
|
flag = 0;
|
||||||
// Power = totalPower / 30.0f;
|
// Power = totalPower / 30.0f;
|
||||||
|
@ -417,9 +418,9 @@ void mppt_readJust(void)
|
||||||
// hysteresisValue1 = getChargCurrent() * 1.7f;
|
// hysteresisValue1 = getChargCurrent() * 1.7f;
|
||||||
// hysteresisValue2 = getChargCurrent() * 12;
|
// hysteresisValue2 = getChargCurrent() * 12;
|
||||||
currMinFlag++;
|
currMinFlag++;
|
||||||
if (currMinFlag == 8) {
|
if (currMinFlag == 5) {
|
||||||
currMinFlag = 0;
|
currMinFlag = 0;
|
||||||
SolarInCircuitV = 18.0f;
|
SolarInCircuitV = g_cfgParameter.MPPTConstantVoltage;
|
||||||
currMinFlag1 = 1;
|
currMinFlag1 = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -428,7 +429,7 @@ void mppt_readJust(void)
|
||||||
|
|
||||||
// else if (getChargCurrent() < 3 && currMinFlag1) {
|
// else if (getChargCurrent() < 3 && currMinFlag1) {
|
||||||
else if (totalChargeCurr < 150 && currMinFlag1) {
|
else if (totalChargeCurr < 150 && currMinFlag1) {
|
||||||
currMinFlag1 = 0;
|
// currMinFlag1 = 0;
|
||||||
currMinFlag = 0;
|
currMinFlag = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -533,7 +534,7 @@ void mppt_readJust(void)
|
||||||
/* 一段时间内都未调节 */
|
/* 一段时间内都未调节 */
|
||||||
if (numFlag == 10) {
|
if (numFlag == 10) {
|
||||||
if (Power < 300) {
|
if (Power < 300) {
|
||||||
SolarInCircuitV = 17.0f;
|
SolarInCircuitV = g_cfgParameter.MPPTConstantVoltage;
|
||||||
}
|
}
|
||||||
else if (flag1) {
|
else if (flag1) {
|
||||||
SolarInCircuitV -= stepV2;
|
SolarInCircuitV -= stepV2;
|
||||||
|
@ -557,6 +558,8 @@ void mppt_readJust(void)
|
||||||
// lLLPower = lLPower;
|
// lLLPower = lLPower;
|
||||||
lLPower = lPower;
|
lLPower = lPower;
|
||||||
lPower = Power;
|
lPower = Power;
|
||||||
|
|
||||||
|
mppt_constantVoltage(SolarInCircuitV);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -631,13 +634,13 @@ BOOL stopChargConditions(void)
|
||||||
/* 异常情况关闭充电 */
|
/* 异常情况关闭充电 */
|
||||||
static uint16_t flag = 0;
|
static uint16_t flag = 0;
|
||||||
if ((getSolarInCircuitVoltage() < (g_cfgParameter.stopSolarOutputCircuitV + 1)
|
if ((getSolarInCircuitVoltage() < (g_cfgParameter.stopSolarOutputCircuitV + 1)
|
||||||
|
// || getSolarInCircuitVoltage() > (g_cfgParameter.startSolarOpenCircuitV))
|
||||||
|| getSolarInCircuitVoltage() > 18.5f)
|
|| getSolarInCircuitVoltage() > 18.5f)
|
||||||
&& getChargCurrent() < 0.1f
|
&& getChargCurrent() < 0.1f
|
||||||
&& getMPPT_Mode() == MPPT) {
|
&& getMPPT_Mode() == MPPT) {
|
||||||
// return TRUE;
|
// return TRUE;
|
||||||
flag++;
|
flag++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if ((getSolarInCircuitVoltage() < 17.8f
|
// if ((getSolarInCircuitVoltage() < 17.8f
|
||||||
// || getSolarInCircuitVoltage() > 20)
|
// || getSolarInCircuitVoltage() > 20)
|
||||||
// && getChargCurrent() < 0.1f
|
// && getChargCurrent() < 0.1f
|
||||||
|
@ -645,11 +648,11 @@ BOOL stopChargConditions(void)
|
||||||
// // return TRUE;
|
// // return TRUE;
|
||||||
// flag++;
|
// flag++;
|
||||||
// }
|
// }
|
||||||
// else {
|
else {
|
||||||
// flag = 0;
|
flag = 0;
|
||||||
// }
|
}
|
||||||
|
|
||||||
if (flag > 20000) {
|
if (flag > 10000) {
|
||||||
flag = 0;
|
flag = 0;
|
||||||
insertEventsOrderRecord(abnormalControl);
|
insertEventsOrderRecord(abnormalControl);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#define HY_communicationIDStartAddr (HY_hardWordIDStartAddr + HY_hardWordIDSize)
|
#define HY_communicationIDStartAddr (HY_hardWordIDStartAddr + HY_hardWordIDSize)
|
||||||
#define HY_communicationIDSize 4
|
#define HY_communicationIDSize 4
|
||||||
static uint8_t HY_hardWordID[HY_hardWordIDSize] = {0x48, 0x59, 0x30, 0x30, 0x30, 0x31};
|
static uint8_t HY_hardWordID[HY_hardWordIDSize] = {0x48, 0x59, 0x30, 0x30, 0x30, 0x31};
|
||||||
static uint8_t HY_communicationID[HY_communicationIDSize] = {0x00, 0x00, 0x00, 0x01};
|
static uint8_t HY_communicationID[HY_communicationIDSize] = {0x00, 0x00, 0x00, 0x02};
|
||||||
static uint8_t HY_startFlag = 0x68;
|
static uint8_t HY_startFlag = 0x68;
|
||||||
static uint8_t HY_endFlag = 0x16;
|
static uint8_t HY_endFlag = 0x16;
|
||||||
|
|
||||||
|
@ -479,8 +479,9 @@ uint8_t HY_CheckFunc(uint8_t *arr_buff, uint8_t len)
|
||||||
{
|
{
|
||||||
uint8_t temp = 0x00;
|
uint8_t temp = 0x00;
|
||||||
uint32_t sum = 0x00;
|
uint32_t sum = 0x00;
|
||||||
|
arr_buff++;
|
||||||
|
|
||||||
for(uint8_t i = 0; i < len; i++) {
|
for(uint8_t i = 1; i < len; i++) {
|
||||||
sum += *arr_buff++;
|
sum += *arr_buff++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -568,92 +569,95 @@ void stateMachine(device_handle device)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HY_ChargeControlBox_PROTOCOL_ENABLE
|
#ifdef HY_ChargeControlBox_PROTOCOL_ENABLE
|
||||||
else if (state == startFlagHY) {
|
else if (g_cfgParameter.supportProtocolTypes & 0x01)
|
||||||
analysisStartFlagHY();
|
{
|
||||||
}
|
if (state == startFlagHY) {
|
||||||
|
analysisStartFlagHY();
|
||||||
else if (state == hardWordIDHY) {
|
}
|
||||||
analysisHardWordIDHY();
|
|
||||||
}
|
else if (state == hardWordIDHY) {
|
||||||
|
analysisHardWordIDHY();
|
||||||
else if (state == communicationIDHY) {
|
}
|
||||||
analysisCommunicationIDHY();
|
|
||||||
}
|
else if (state == communicationIDHY) {
|
||||||
|
analysisCommunicationIDHY();
|
||||||
else if (state == controlWordHY) {
|
}
|
||||||
analysisControlWordHY();
|
|
||||||
}
|
else if (state == controlWordHY) {
|
||||||
|
analysisControlWordHY();
|
||||||
else if (state == dataLengthHY) {
|
}
|
||||||
analysisDataLengthHY();
|
|
||||||
}
|
else if (state == dataLengthHY) {
|
||||||
|
analysisDataLengthHY();
|
||||||
else if (state == batteryStatusHY) {
|
}
|
||||||
analysisBatteryStatusHY();
|
|
||||||
}
|
else if (state == batteryStatusHY) {
|
||||||
|
analysisBatteryStatusHY();
|
||||||
else if (state == electricityStatisticsHY) {
|
}
|
||||||
analysisElectricityStatisticsHY();
|
|
||||||
}
|
else if (state == electricityStatisticsHY) {
|
||||||
|
analysisElectricityStatisticsHY();
|
||||||
else if (state == sensorNumberConfigurationHY) {
|
}
|
||||||
analysisSensorNumberConfigurationHY();
|
|
||||||
}
|
else if (state == sensorNumberConfigurationHY) {
|
||||||
|
analysisSensorNumberConfigurationHY();
|
||||||
else if (state == sensorNumberInquiryHY) {
|
}
|
||||||
analysisSensorNumberInquiryHY();
|
|
||||||
}
|
else if (state == sensorNumberInquiryHY) {
|
||||||
|
analysisSensorNumberInquiryHY();
|
||||||
else if (state == resetInstructionHY) {
|
}
|
||||||
analysisResetInstructionHY();
|
|
||||||
}
|
else if (state == resetInstructionHY) {
|
||||||
|
analysisResetInstructionHY();
|
||||||
|
}
|
||||||
|
|
||||||
else if (state == chargeControlConfigurationHY) {
|
else if (state == chargeControlConfigurationHY) {
|
||||||
analysisChargeControlConfigurationHY();
|
analysisChargeControlConfigurationHY();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (state == chargeControlQueryHY) {
|
else if (state == chargeControlQueryHY) {
|
||||||
analysisChargeControlQueryHY();
|
analysisChargeControlQueryHY();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (state == configureTimeHY) {
|
else if (state == configureTimeHY) {
|
||||||
analysisConfigureTimeHY();
|
analysisConfigureTimeHY();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (state == queryTimeHY) {
|
else if (state == queryTimeHY) {
|
||||||
analysisQueryTimeHY();
|
analysisQueryTimeHY();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (state == configureProtocolTypeHY) {
|
else if (state == configureProtocolTypeHY) {
|
||||||
analysisConfigureProtocolTypeHY();
|
analysisConfigureProtocolTypeHY();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (state == queryControlBoxConfigurationHY) {
|
else if (state == queryControlBoxConfigurationHY) {
|
||||||
analysisQueryControlBoxConfigurationHY();
|
analysisQueryControlBoxConfigurationHY();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (state == querySoftwareVersionHY) {
|
else if (state == querySoftwareVersionHY) {
|
||||||
analysisQuerySoftwareVersionHY();
|
analysisQuerySoftwareVersionHY();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (state == enterConfigurationModeHY) {
|
else if (state == enterConfigurationModeHY) {
|
||||||
analysisEnterConfigurationModeHY();
|
analysisEnterConfigurationModeHY();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (state == configureHardwareIDHY) {
|
else if (state == configureHardwareIDHY) {
|
||||||
analysisConfigureHardwareIDHY();
|
analysisConfigureHardwareIDHY();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (state == hardwareID_communicationIDQueryHY) {
|
else if (state == hardwareID_communicationIDQueryHY) {
|
||||||
analysisHardwareID_communicationIDQueryHY();
|
analysisHardwareID_communicationIDQueryHY();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (state == modifyCommunicationIDHY) {
|
else if (state == modifyCommunicationIDHY) {
|
||||||
analysisModifyCommunicationIDHY();
|
analysisModifyCommunicationIDHY();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (state == checkMotherboardTemperatureHY) {
|
else if (state == checkMotherboardTemperatureHY) {
|
||||||
analysisCheckMotherboardTemperatureHY();
|
analysisCheckMotherboardTemperatureHY();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -4672,7 +4676,7 @@ BOOL analysisModifyCommunicationIDHY(void)
|
||||||
{
|
{
|
||||||
/* 解析帧 */
|
/* 解析帧 */
|
||||||
if (gw485RxBufferIndex >= frameLength) {
|
if (gw485RxBufferIndex >= frameLength) {
|
||||||
log_info("analysisSensorNumberConfigurationHY \n");
|
// log_info("analysisSensorNumberConfigurationHY \n");
|
||||||
|
|
||||||
/* 比较校验位和结束标志 */
|
/* 比较校验位和结束标志 */
|
||||||
if (gw485RxBuffer[frameLength - 2] != HY_CheckFunc(gw485RxBuffer, frameLength - 2)
|
if (gw485RxBuffer[frameLength - 2] != HY_CheckFunc(gw485RxBuffer, frameLength - 2)
|
||||||
|
@ -4787,7 +4791,7 @@ BOOL analysisCheckMotherboardTemperatureHY(void)
|
||||||
{
|
{
|
||||||
/* 解析帧 */
|
/* 解析帧 */
|
||||||
if (gw485RxBufferIndex >= frameLength) {
|
if (gw485RxBufferIndex >= frameLength) {
|
||||||
log_info("analysisCheckMotherboardTemperatureHY \n");
|
// log_info("analysisCheckMotherboardTemperatureHY \n");
|
||||||
|
|
||||||
/* 比较校验位和结束标志 */
|
/* 比较校验位和结束标志 */
|
||||||
if (gw485RxBuffer[frameLength - 2] != HY_CheckFunc(gw485RxBuffer, frameLength - 2)
|
if (gw485RxBuffer[frameLength - 2] != HY_CheckFunc(gw485RxBuffer, frameLength - 2)
|
||||||
|
@ -4925,13 +4929,20 @@ void HY_readHardWordID_Flash(void)
|
||||||
HY_hardWordID[i] = temp[i];
|
HY_hardWordID[i] = temp[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HY_hardWordID[0] = g_cfgParameter.uniqueDeviceID[0];
|
||||||
|
// HY_hardWordID[1] = g_cfgParameter.uniqueDeviceID[1];
|
||||||
|
// HY_hardWordID[2] = g_cfgParameter.uniqueDeviceID[2];
|
||||||
|
// HY_hardWordID[3] = g_cfgParameter.uniqueDeviceID[3];
|
||||||
|
// HY_hardWordID[4] = g_cfgParameter.uniqueDeviceID[4];
|
||||||
|
// HY_hardWordID[5] = g_cfgParameter.uniqueDeviceID[5];
|
||||||
|
|
||||||
log_info("HY_hardWordID[0]:%x\n", HY_hardWordID[0]);
|
// log_info("HY_hardWordID[0]:%x\n", HY_hardWordID[0]);
|
||||||
log_info("HY_hardWordID[1]:%x\n", HY_hardWordID[1]);
|
// log_info("HY_hardWordID[1]:%x\n", HY_hardWordID[1]);
|
||||||
log_info("HY_hardWordID[2]:%x\n", HY_hardWordID[2]);
|
// log_info("HY_hardWordID[2]:%x\n", HY_hardWordID[2]);
|
||||||
log_info("HY_hardWordID[3]:%x\n", HY_hardWordID[3]);
|
// log_info("HY_hardWordID[3]:%x\n", HY_hardWordID[3]);
|
||||||
log_info("HY_hardWordID[4]:%x\n", HY_hardWordID[4]);
|
// log_info("HY_hardWordID[4]:%x\n", HY_hardWordID[4]);
|
||||||
log_info("HY_hardWordID[5]:%x\n", HY_hardWordID[5]);
|
// log_info("HY_hardWordID[5]:%x\n", HY_hardWordID[5]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -4957,7 +4968,7 @@ void HY_readCommunicationID_Flash(void)
|
||||||
for (; i < HY_communicationIDSize; i++) {
|
for (; i < HY_communicationIDSize; i++) {
|
||||||
if (temp[0] != 0xFF) {
|
if (temp[0] != 0xFF) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i != HY_communicationIDSize) {
|
if (i != HY_communicationIDSize) {
|
||||||
|
@ -4967,10 +4978,10 @@ void HY_readCommunicationID_Flash(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log_info("HY_communicationID[0]:%x\n", HY_communicationID[0]);
|
// log_info("HY_communicationID[0]:%x\n", HY_communicationID[0]);
|
||||||
log_info("HY_communicationID[1]:%x\n", HY_communicationID[1]);
|
// log_info("HY_communicationID[1]:%x\n", HY_communicationID[1]);
|
||||||
log_info("HY_communicationID[2]:%x\n", HY_communicationID[2]);
|
// log_info("HY_communicationID[2]:%x\n", HY_communicationID[2]);
|
||||||
log_info("HY_communicationID[3]:%x\n", HY_communicationID[3]);
|
// log_info("HY_communicationID[3]:%x\n", HY_communicationID[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -228,7 +228,9 @@ void config_info_start(void)
|
||||||
g_cfgParameter.Communication_Methods = RS485;
|
g_cfgParameter.Communication_Methods = RS485;
|
||||||
|
|
||||||
g_cfgParameter.gw485_Baud = temp_configInfo.gw485_Baud;
|
g_cfgParameter.gw485_Baud = temp_configInfo.gw485_Baud;
|
||||||
|
// g_cfgParameter.gw485_Baud = 9600;
|
||||||
g_cfgParameter.bat485_Baud = temp_configInfo.bat485_Baud;
|
g_cfgParameter.bat485_Baud = temp_configInfo.bat485_Baud;
|
||||||
|
g_cfgParameter.supportProtocolTypes = 0x01;
|
||||||
// g_cfgParameter.bat485_Baud = 115200;
|
// g_cfgParameter.bat485_Baud = 115200;
|
||||||
// static volatile uint32_t tempBatBaud;
|
// static volatile uint32_t tempBatBaud;
|
||||||
// tempBatBaud = temp_configInfo.bat485_Baud;
|
// tempBatBaud = temp_configInfo.bat485_Baud;
|
||||||
|
@ -276,6 +278,10 @@ void config_info_start(void)
|
||||||
g_cfgParameter.collectOpenCircuitVoltageTime= temp_configInfo.collectOpenCircuitVoltageTime;
|
g_cfgParameter.collectOpenCircuitVoltageTime= temp_configInfo.collectOpenCircuitVoltageTime;
|
||||||
g_cfgParameter.reverseChargProtectionCurr = temp_configInfo.reverseChargProtectionCurr;
|
g_cfgParameter.reverseChargProtectionCurr = temp_configInfo.reverseChargProtectionCurr;
|
||||||
|
|
||||||
|
g_cfgParameter.softStartVolt = 18.5f;
|
||||||
|
g_cfgParameter.MPPTConstantVoltage = 17.0f;
|
||||||
|
g_cfgParameter.MPPTReduceConstantVoltage = 20.0f;
|
||||||
|
|
||||||
/* 读取的回路阻抗无效则回路阻抗设置为0 */
|
/* 读取的回路阻抗无效则回路阻抗设置为0 */
|
||||||
float fTemp;
|
float fTemp;
|
||||||
// fTemp = 0.01f;
|
// fTemp = 0.01f;
|
||||||
|
|
|
@ -304,8 +304,9 @@ void Task_refreshJudgeData(void)
|
||||||
// debug_printf("get_OUT_VOLT_IN:%f \n", tempOutV);
|
// debug_printf("get_OUT_VOLT_IN:%f \n", tempOutV);
|
||||||
|
|
||||||
/* 判断有无电池 */
|
/* 判断有无电池 */
|
||||||
if (getBatteryState() == FALSE && (getChargBatteryCurrent() > 1 || getChargBatteryCurrent() < -1)
|
if (getBatteryState() == FALSE && (getChargBatteryCurrent() > 0.5f || getChargBatteryCurrent() < -0.5f)
|
||||||
&& getOutputVoltage() < 14.2f) {
|
&& getBatteryVoltage() < 14.2f) {
|
||||||
|
// && getOutputVoltage() < 14.2f) {
|
||||||
setBatteryState(TRUE);
|
setBatteryState(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -476,7 +477,7 @@ void Task_softStart(void)
|
||||||
// debug_printf("getSolarInCircuitVoltage : %f", getSolarInCircuitVoltage());
|
// debug_printf("getSolarInCircuitVoltage : %f", getSolarInCircuitVoltage());
|
||||||
|
|
||||||
//电压过低时不启动
|
//电压过低时不启动
|
||||||
if (getSolarInCircuitVoltage() < 18.5f) {
|
if (getSolarInCircuitVoltage() < g_cfgParameter.softStartVolt) {
|
||||||
TimeSliceOffset_Register(&m_startControl, Task_startControl, startControl_reloadVal, startControl_offset);
|
TimeSliceOffset_Register(&m_startControl, Task_startControl, startControl_reloadVal, startControl_offset);
|
||||||
setDutyRatioToZero();
|
setDutyRatioToZero();
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue