From 1360095f8d64cf607d333d2fc7fd1dcd81d1bd7b Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Fri, 24 May 2024 16:35:10 +0800
Subject: [PATCH] 修改报警相关处理
---
Function/VALVE/valve_control.c | 106 +++++++++++++++++++++++++++++++++++------------------
1 files changed, 70 insertions(+), 36 deletions(-)
diff --git a/Function/VALVE/valve_control.c b/Function/VALVE/valve_control.c
index 0c57aa3..70ff2b3 100644
--- a/Function/VALVE/valve_control.c
+++ b/Function/VALVE/valve_control.c
@@ -1,6 +1,8 @@
#include "valve_control.h"
#include "gpio.h"
#include "system_mem_para.h"
+#include "power_manage.h"
+#include "linked_list.h"
__IO VALVE_CTRL_PARA_T valve_ctrl_para_g;
@@ -33,13 +35,25 @@
CloseIO(VALVE_FORCE_OPEN_PORT,VALVE_FORCE_OPEN_PIN);
}
+void Valve_CTRL_GPIO_Init(void)
+{
+ Motor_AB_GPIO_Init();
+ Motor_A_LOW;
+ Motor_B_LOW;
+ Motor_OP_CL_GPIO_Init_sleep_mode();
+
+}
+
+
+
+
void ValveMotorOpenRun(void)
{
Motor_AB_GPIO_Init();
Motor_OP_CL_GPIO_Init();
Motor_A_HIGH;
- Motor_B_HIGH;
+ Motor_B_LOW;
GPIO_EXTI_Init( Motor_OP_PORT, Motor_OP_PIN, EXTI_FALLING, ENABLE);
GPIO_EXTI_Init( Motor_CL_PORT, Motor_CL_PIN, EXTI_FALLING, ENABLE);
}
@@ -49,7 +63,7 @@
Motor_AB_GPIO_Init();
Motor_OP_CL_GPIO_Init();
Motor_A_LOW;
- Motor_B_LOW;
+ Motor_B_HIGH;
GPIO_EXTI_Init( Motor_OP_PORT, Motor_OP_PIN, EXTI_FALLING, ENABLE);
GPIO_EXTI_Init( Motor_CL_PORT, Motor_CL_PIN, EXTI_FALLING, ENABLE);
}
@@ -61,7 +75,7 @@
GPIO_EXTI_Init( Motor_OP_PORT, Motor_OP_PIN, EXTI_FALLING, DISABLE);
GPIO_EXTI_Init( Motor_CL_PORT, Motor_CL_PIN, EXTI_FALLING, DISABLE);
Motor_A_LOW;
- Motor_B_HIGH;
+ Motor_B_LOW;
}
@@ -95,10 +109,10 @@
-void ValveRunParaInit(void)
+void ValveRunParaInit(VALVE_TYPE valve_type_in)
{
// VALVE_STATUS valve_status;
- switch (save_valve_para_g.valve_type){
+ switch (valve_type_in){
case VM_PENGSHENG: ;
case VM_HADE:
save_valve_para_g.valve_status = Read_OP_CL_VALVE_Status(0);
@@ -116,20 +130,20 @@
uint16_t GetValveRunMaxTime(CALIBER_TYPE caliber_type_l)
{
switch (caliber_type_l){
- case DN25_TYPE: return VALVE_HADE_RUN_TIME_DN25 ;break;
- case DN32_TYPE: return VALVE_HADE_RUN_TIME_DN32 ;break;
- case DN40_TYPE: return VALVE_HADE_RUN_TIME_DN40 ;break;
- case DN50_TYPE: return VALVE_HADE_RUN_TIME_DN50 ;break;
- case DN80_TYPE: return VALVE_HADE_RUN_TIME_DN80 ;break;
- case DN100_TYPE: return VALVE_HADE_RUN_TIME_DN100 ;break;
- case DN150_TYPE: return VALVE_HADE_RUN_TIME_DN150 ;break;
- case DN200_TYPE: return VALVE_HADE_RUN_TIME_DN200 ;break;
- default: return VALVE_HADE_RUN_TIME_DN200 ;break;
+ case DN25_TYPE: return VALVE_HADE_RUN_TIME_DN25 ;
+ case DN32_TYPE: return VALVE_HADE_RUN_TIME_DN32 ;
+ case DN40_TYPE: return VALVE_HADE_RUN_TIME_DN40 ;
+ case DN50_TYPE: return VALVE_HADE_RUN_TIME_DN50 ;
+ case DN80_TYPE: return VALVE_HADE_RUN_TIME_DN80 ;
+ case DN100_TYPE: return VALVE_HADE_RUN_TIME_DN100 ;
+ case DN150_TYPE: return VALVE_HADE_RUN_TIME_DN150 ;
+ case DN200_TYPE: return VALVE_HADE_RUN_TIME_DN200 ;
+ default: return VALVE_HADE_RUN_TIME_DN200 ;
}
}
-void ValveCtrlHade(CALIBER_TYPE caliber_type_l)
+void ValveCtrlHade(CALIBER_TYPE caliber_type_l,FUN_START_CTRL_PARA_T * sys_fun_run_ctrl_p)
{
if(valve_ctrl_para_g.valve_ctrl_order == VC_OPEN){
if(Read_OP_CL_VALVE_Status(0) == VALVE_OPEN){
@@ -139,8 +153,8 @@
valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
}else{
- if(0){ //?Զ����485�ɼ���������ӳ�ִ�з��Ŷ���
-
+ if(sys_fun_run_ctrl_p->rs485_ctrl_flag.running_flag==SET||sys_fun_run_ctrl_p->wrc_ctrl_flag.running_flag==SET){ //?Զ����485�ɼ���������ӳ�ִ�з��Ŷ���
+ ;
}else{
valve_ctrl_para_g.open_time_cnt = GetValveRunMaxTime(caliber_type_l);
@@ -148,12 +162,8 @@
save_valve_para_g.valve_status = VALVE_OPENING;
valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
-
}
-
}
-
-
}else if(valve_ctrl_para_g.valve_ctrl_order == VC_CLOSE){
if(Read_OP_CL_VALVE_Status(0) == VALVE_CLOSE){
ValveMotorStop();
@@ -162,24 +172,20 @@
valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
}else{
- if(0){ //?Զ����485�ɼ���������ӳ�ִ�з��Ŷ���
-
+ if(sys_fun_run_ctrl_p->rs485_ctrl_flag.running_flag==SET||sys_fun_run_ctrl_p->wrc_ctrl_flag.running_flag==SET){ //?Զ����485�ɼ���������ӳ�ִ�з��Ŷ���
+ ;
}else{
valve_ctrl_para_g.close_time_cnt = GetValveRunMaxTime(caliber_type_l);
ValveMotorCloseRun();
save_valve_para_g.valve_status = VALVE_CLOSING;
- valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
-
+ valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
}
-
}
}else if(valve_ctrl_para_g.valve_ctrl_order == VC_LOCK){
- save_valve_para_g.valve_lock_state = VL_LOCK;
-
+ save_valve_para_g.valve_lock_state = VL_LOCK;
}
-
//?�жϿ��ط��Ƿ�λ
if(save_valve_para_g.valve_status==VALVE_OPENING){
@@ -196,9 +202,6 @@
//��������������ǿ�����ر�����
ValveMotorStop();
}
-
-
-
}else if(save_valve_para_g.valve_status==VALVE_CLOSING){
if(valve_ctrl_para_g.close_time_cnt==0){
//?��ʱ����
@@ -217,17 +220,43 @@
}
}
+
+ if((save_valve_para_g.valve_status==VALVE_OPENING)||(save_valve_para_g.valve_status==VALVE_CLOSING))
+ sys_fun_run_ctrl_p->valve_ctrl_flag.running_flag = SET;
+ else
+ sys_fun_run_ctrl_p->valve_ctrl_flag.running_flag = RESET;
+
+
+ //״̬�ִ���
+ if(save_valve_para_g.valve_lock_state == VL_UNLOCK)
+ system_status_word_g.status_word.valve_lock = RESET;
+ else
+ system_status_word_g.status_word.valve_lock = SET;
+
+ if(save_valve_para_g.valve_status == VALVE_ERROR){
+ if(system_status_word_g.status_word.valve_state != VALVE_ERROR){
+ //���������쳣����
+ if(__SYS_ALARM_REPORT_CTL_BYTES_GET(valve_error) == SET)
+ __SYS_ALARM_BYTES_SET(valve_error, ALARM_ID_VALVE_ABNORMAL);
+
+ system_alarm_word_for_valve_g.alarm_word.valve_error = SET; //�ط�����״̬��λ
+ }
+ }else{
+ system_status_word_g.status_word.valve_state = save_valve_para_g.valve_status;
+ }
+
}
-//����������
-ErrorStatus ValveCtrlOrder(VALVE_CTEL_TYPE_T valve_ctrl_order_l)
+//���Ų�������������������������У������ط�������Ҫֹͣ������ת�����йط�
+ErrorStatus ValveCtrlOrder(VALVE_CTRL_TYPE_T valve_ctrl_order_l)
{
switch(valve_ctrl_order_l){
case VC_NONE:break;
case VC_OPEN:
if((save_valve_para_g.valve_status == VALVE_CLOSE)&&(valve_ctrl_para_g.force_open_status==RESET)){
valve_ctrl_para_g.valve_ctrl_order = VC_OPEN;
+ pwr_vol_g.alka_flag = AMS_VALVE_CTRL_BEFORE;
return PASS;
}
break;
@@ -235,6 +264,7 @@
case VC_CLOSE:
if((save_valve_para_g.valve_status != VALVE_CLOSE)&&(valve_ctrl_para_g.force_open_status==RESET)){
valve_ctrl_para_g.valve_ctrl_order = VC_CLOSE;
+ pwr_vol_g.alka_flag = AMS_VALVE_CTRL_BEFORE;
return PASS;
}
break;
@@ -270,6 +300,7 @@
if(valve_ctrl_para_g.force_open_status !=SET){
valve_ctrl_para_g.force_open_status =SET;
//��ʼ����ǿ��
+
}
@@ -284,16 +315,19 @@
if((valve_ctrl_para_g.force_open_status ==SET)&&(Read_OP_CL_VALVE_Status(0)==VALVE_OPEN)){
//?��ǿ�������Ƿ���״̬��ȡ�Ѿ�����λ����ʾ�Ƴ�ǿ����Դ��
+ //
+
+
}
}
-void valveCtrlPro(void) //? ���Ҫ������������ú���ValveCtrlOrder��VC_OPEN��;��δ����������
+void valveCtrlPro(FUN_START_CTRL_PARA_T * sys_fun_run_ctrl_p) //? ���Ҫ������������ú���ValveCtrlOrder��VC_OPEN��;��δ����������
{
ValveForceOpenSignalCheck();//?ǿ���жϴ���
- ValveCtrlHade(equipment_basic_inf_g.caliber_type);//���·��Ų���������
+ ValveCtrlHade(equipment_basic_inf_g.caliber_type,sys_fun_run_ctrl_p);//���·��Ų���������
}
--
Gitblit v1.9.3