代码暂存 参数调整及微泄漏优化

This commit is contained in:
常正强 2025-05-30 13:10:21 +08:00
parent 6032d61ead
commit 7603947fd1
1 changed files with 23 additions and 24 deletions

View File

@ -722,12 +722,12 @@ BMP390_ProcessEvent(uint8_t task_id, uint16_t events)
void VALVE_SetInfo() void VALVE_SetInfo()
{ {
ValveInfo.over_press = 6200; ValveInfo.over_press = 6200;
ValveInfo.low_press = 800; ValveInfo.low_press = 680;
ValveInfo.over_temp = 65; ValveInfo.over_temp = 65;
ValveInfo.over_flow_press_diff_1kpa = 500; ValveInfo.over_flow_press_diff_1kpa = 650;
ValveInfo.over_flow_press_diff_2kpa = 500; ValveInfo.over_flow_press_diff_2kpa = 650;
ValveInfo.over_flow_press_diff_3kpa = 500; ValveInfo.over_flow_press_diff_3kpa = 650;
} }
void BSP_PRESS_Init(void) void BSP_PRESS_Init(void)
@ -957,16 +957,16 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events)
stopAutoCloseTimer(); stopAutoCloseTimer();
} }
// 欠压检测 // 欠压检测
// else if (ValveRawData.in_press <= ValveInfo.low_press) else if (ValveRawData.in_press <= ValveInfo.low_press)
// { {
// BSP_VALVE_Close(kValveCmdUnderPressure); // 使用欠压关阀原因 BSP_VALVE_Close(kValveCmdUnderPressure); // 使用欠压关阀原因
// fault_state = 2; fault_state = 2;
// // 欠压关阀时停止延时关阀功能 // 欠压关阀时停止延时关阀功能
// stopAutoCloseTimer(); stopAutoCloseTimer();
// logError("******************************"); logError("******************************");
// logError("欠压关阀"); logError("欠压关阀");
// } }
#if 1 #if 1
// 1、过流自动关闭 // 1、过流自动关闭
// 进气端压力2kpa时额定流量调到0.9 // 进气端压力2kpa时额定流量调到0.9
@ -985,7 +985,7 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events)
{ {
logDebug("keydown_time !%d", keydown_time); logDebug("keydown_time !%d", keydown_time);
keydown_time++; keydown_time++;
if (keydown_time > 25) if (keydown_time > 30)
{ {
keydown_time = 0; keydown_time = 0;
keydown_flag = 0; keydown_flag = 0;
@ -1177,28 +1177,27 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events)
// 微泄漏检测事件处理 // 微泄漏检测事件处理
if (events & MICRO_LEAK_CHECK_EVT) if (events & MICRO_LEAK_CHECK_EVT)
{ {
// 只在阀门开启状态下检测微泄漏 // 只在阀门关闭状态下检测微泄漏
if (gValveData.switch_status == kOpened && !fault_state) if (gValveData.switch_status == kClosed)
{ {
logDebug("微泄漏趋检测!!!!"); logDebug("微泄漏趋检测!!!!");
// 记录当前压差值 // 记录当前压差值
static int last_press_diff = 0; static int last_press = 0;
// 比较当前值与上次值 // 比较当前值与上次值
if (ValveRawData.in_out_press_diff > last_press_diff && if (ValveRawData.out_press < last_press)
ValveRawData.in_out_press_diff > SAFETY_MICRO_LEAK_PRESS_DIFF)
{ {
// 压差逐渐增大,可能是微泄漏 // 出口压力逐渐增小,可能是微泄漏
valve_safety.micro_leak_count++; valve_safety.micro_leak_count++;
logDebug("微泄漏检测: 压差增大 %d -> %d (第%d次/共需%d次)", logError("微泄漏检测: 出口压力减小 %d -> %d (第%d次/共需%d次)",
last_press_diff, ValveRawData.in_out_press_diff, last_press, ValveRawData.out_press,
valve_safety.micro_leak_count, MICRO_LEAK_CHECK_COUNT); valve_safety.micro_leak_count, MICRO_LEAK_CHECK_COUNT);
// 连续6次检测到压差增大判定为微泄漏 // 连续6次检测到压差增大判定为微泄漏
if (valve_safety.micro_leak_count >= MICRO_LEAK_CHECK_COUNT) if (valve_safety.micro_leak_count >= MICRO_LEAK_CHECK_COUNT)
{ {
logError("******************************"); logError("******************************");
logError("检测到微泄漏,自动关闭阀门"); logError("检测到微泄漏");
BSP_VALVE_Close(kValveCmdMicroLeak); // 使用微泄漏关阀原因 BSP_VALVE_Close(kValveCmdMicroLeak); // 使用微泄漏关阀原因
valve_safety.micro_leak_count = 0; // 重置计数器 valve_safety.micro_leak_count = 0; // 重置计数器
@ -1218,7 +1217,7 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events)
} }
// 更新上次压差值 // 更新上次压差值
last_press_diff = ValveRawData.in_out_press_diff; last_press = ValveRawData.out_press;
} }
else else
{ {