From d352b1982dc9b4fb2135c64cd909bb9cecc62139 Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Fri, 14 Jun 2024 15:58:03 +0800
Subject: [PATCH] 添加.gitignore
---
Function/VALVE/valve_control.c | 143 +++++++++++++++++++++++++++++++++++++----------
1 files changed, 112 insertions(+), 31 deletions(-)
diff --git a/Function/VALVE/valve_control.c b/Function/VALVE/valve_control.c
index e76a010..0685746 100644
--- a/Function/VALVE/valve_control.c
+++ b/Function/VALVE/valve_control.c
@@ -2,6 +2,9 @@
#include "gpio.h"
#include "system_mem_para.h"
#include "power_manage.h"
+#include "linked_list.h"
+#include "sizhu_alarm_record.h"
+#include "sizhu_event_record.h"
__IO VALVE_CTRL_PARA_T valve_ctrl_para_g;
@@ -53,18 +56,26 @@
Motor_OP_CL_GPIO_Init();
Motor_A_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);
}
void ValveMotorCloseRun(void)
{
+
+ //�ж��Ƿ���Ҫ���ط�,����磬����������Ƴ�״̬�½�㣬﮵�Ҫ������״̬
+ if(__SYS_STATUS_BYTES_GET(alka_remove) == SET || __SYS_STATUS_BYTES_GET(alka_down) == SET){
+ if(__SYS_STATUS_BYTES_GET(lith_low) == RESET && __SYS_STATUS_BYTES_GET(lith_down) == RESET && __SYS_STATUS_BYTES_GET(lith_remove) == RESET){
+ if(__SYS_STATUS_BYTES_GET(power_state) == RESET){
+ borrow_Pwr_GPIO_Clk_Init();
+ BORROW_PWR_ON;
+ delay_ms(1);
+ }
+ }
+ }
+
Motor_AB_GPIO_Init();
Motor_OP_CL_GPIO_Init();
Motor_A_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);
}
void ValveMotorStop(void)
@@ -75,6 +86,10 @@
GPIO_EXTI_Init( Motor_CL_PORT, Motor_CL_PIN, EXTI_FALLING, DISABLE);
Motor_A_LOW;
Motor_B_LOW;
+
+ //���ر�
+ borrow_Pwr_GPIO_Clk_Init();
+ BORROW_PWR_OFF;
}
@@ -144,11 +159,24 @@
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(valve_ctrl_para_g.force_open_status ==SET){
+ //ǿ�����ȼ��ߣ���ǿ����ִ�з��ſ���,�ر��жϼ�⡣ ��ⷧ��״̬���������λ��״̬���Ϊ��������״̬Ϊ������
+ GPIO_EXTI_Init( Motor_CL_PORT, Motor_CL_PIN, EXTI_FALLING, DISABLE);
+ if(Read_OP_CL_VALVE_Status(0) !=VALVE_OPEN){
+ save_valve_para_g.valve_status = VALVE_OPENING;
+ ValveMotorStop();
+ }else{
+ save_valve_para_g.valve_status = VALVE_OPEN;
+ }
+
+ return ; //ǿ���ź���Чʱ��ֱ���������������жϺ�����
+ }else if(valve_ctrl_para_g.valve_ctrl_order == VC_OPEN){
if(Read_OP_CL_VALVE_Status(0) == VALVE_OPEN){
ValveMotorStop();
save_valve_para_g.valve_status = VALVE_OPEN;
valve_ctrl_para_g.close_time_cnt = 0;
+ sizhuValveActionLogHandle(valve_ctrl_para_g.valve_ctrl_source, valve_ctrl_para_g.valve_ctrl_order,ALARM_ID_NORMAL);
valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
}else{
@@ -160,15 +188,24 @@
ValveMotorOpenRun();
save_valve_para_g.valve_status = VALVE_OPENING;
+ sizhuValveActionLogHandle(valve_ctrl_para_g.valve_ctrl_source, valve_ctrl_para_g.valve_ctrl_order,ALARM_ID_NORMAL);
valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
+ delay_ms(10); //�Ӻ���ն�
+ GPIO_EXTI_Init( Motor_OP_PORT, Motor_OP_PIN, EXTI_FALLING, ENABLE);
}
}
- }else if(valve_ctrl_para_g.valve_ctrl_order == VC_CLOSE){
+ }else if((valve_ctrl_para_g.valve_ctrl_order == VC_CLOSE)||(valve_ctrl_para_g.valve_ctrl_order == VC_CLOSE_AND_LOCK )){
if(Read_OP_CL_VALVE_Status(0) == VALVE_CLOSE){
ValveMotorStop();
save_valve_para_g.valve_status = VALVE_CLOSE;
valve_ctrl_para_g.open_time_cnt = 0;
+ if((save_valve_para_g.valve_lock_state == VL_UNLOCK)&&(valve_ctrl_para_g.valve_ctrl_order == VC_CLOSE_AND_LOCK))
+ {
+ save_valve_para_g.valve_lock_state = VL_LOCK ;
+ }
+ sizhuValveActionLogHandle(valve_ctrl_para_g.valve_ctrl_source, valve_ctrl_para_g.valve_ctrl_order,save_valve_para_g.valve_close_ID);
valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
+
}else{
if(sys_fun_run_ctrl_p->rs485_ctrl_flag.running_flag==SET||sys_fun_run_ctrl_p->wrc_ctrl_flag.running_flag==SET){ //?Զ����485�ɼ���������ӳ�ִ�з��Ŷ���
@@ -179,16 +216,44 @@
ValveMotorCloseRun();
save_valve_para_g.valve_status = VALVE_CLOSING;
+
+ if((save_valve_para_g.valve_lock_state == VL_UNLOCK)&&(valve_ctrl_para_g.valve_ctrl_order == VC_CLOSE_AND_LOCK))
+ {
+ save_valve_para_g.valve_lock_state = VL_LOCK ;
+ }
+
+ sizhuValveActionLogHandle(valve_ctrl_para_g.valve_ctrl_source, valve_ctrl_para_g.valve_ctrl_order,save_valve_para_g.valve_close_ID);
valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
+
+ delay_ms(10); //�Ӻ���ն�
+ GPIO_EXTI_Init( Motor_CL_PORT, Motor_CL_PIN, EXTI_FALLING, ENABLE);
}
}
}else if(valve_ctrl_para_g.valve_ctrl_order == VC_LOCK){
- save_valve_para_g.valve_lock_state = VL_LOCK;
+ if(save_valve_para_g.valve_lock_state == VL_UNLOCK)
+ {
+ save_valve_para_g.valve_lock_state = VL_LOCK ;
+ sizhuValveActionLogHandle(valve_ctrl_para_g.valve_ctrl_source, valve_ctrl_para_g.valve_ctrl_order,ALARM_ID_NORMAL);
+ }
+ valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
+
+ }else if(valve_ctrl_para_g.valve_ctrl_order == VC_UNLOCK){
+ if(save_valve_para_g.valve_lock_state == VL_LOCK)
+ {
+ save_valve_para_g.valve_lock_state = VL_UNLOCK;
+ sizhuValveActionLogHandle(valve_ctrl_para_g.valve_ctrl_source, valve_ctrl_para_g.valve_ctrl_order,ALARM_ID_NORMAL);
+ }
+ valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
+ }else{
+
}
//?�жϿ��ط��Ƿ�λ
if(save_valve_para_g.valve_status==VALVE_OPENING){
- if(valve_ctrl_para_g.open_time_cnt==0){
+ if(Read_OP_CL_VALVE_Status(0) ==VALVE_OPEN){
+ ValveMotorStop();//�ر�����
+ save_valve_para_g.valve_status = VALVE_OPEN;
+ }else if(valve_ctrl_para_g.open_time_cnt==0){
//?��ʱ����
ValveMotorStop();
save_valve_para_g.valve_status = VALVE_ERROR;
@@ -197,12 +262,15 @@
valve_ctrl_para_g.open_time_cnt--;
}
- if(valve_ctrl_para_g.force_open_status ==SET){
- //��������������ǿ�����ر�����
- ValveMotorStop();
- }
+// if(valve_ctrl_para_g.force_open_status ==SET){
+// //��������������ǿ�����ر�����
+// ValveMotorStop();
+// }
}else if(save_valve_para_g.valve_status==VALVE_CLOSING){
- if(valve_ctrl_para_g.close_time_cnt==0){
+ if(Read_OP_CL_VALVE_Status(0) ==VALVE_CLOSE){
+ ValveMotorStop();//�ر�����
+ save_valve_para_g.valve_status = VALVE_CLOSE;
+ }else if(valve_ctrl_para_g.close_time_cnt==0){
//?��ʱ����
ValveMotorStop();
save_valve_para_g.valve_status = VALVE_ERROR;
@@ -211,15 +279,15 @@
valve_ctrl_para_g.close_time_cnt--;
}
- if(valve_ctrl_para_g.force_open_status ==SET){
- //�ط�����������ǿ�����ر�������״̬�ı�ɿ����У����ÿ�����ʱ
- ValveMotorStop();
- save_valve_para_g.valve_status = VALVE_OPENING;
- valve_ctrl_para_g.open_time_cnt = GetValveRunMaxTime(caliber_type_l);
- }
+// if(valve_ctrl_para_g.force_open_status ==SET){
+// //�ط�����������ǿ�����ر�������״̬�ı�ɿ����У����ÿ�����ʱ
+// ValveMotorStop();
+// save_valve_para_g.valve_status = VALVE_OPENING;
+// valve_ctrl_para_g.open_time_cnt = GetValveRunMaxTime(caliber_type_l);
+// }
}
-
+ //���Ų���������״̬��λ
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
@@ -236,7 +304,7 @@
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, SET);
+ __SYS_ALARM_BYTES_SET(valve_error, ALARM_ID_VALVE_ABNORMAL);
system_alarm_word_for_valve_g.alarm_word.valve_error = SET; //�ط�����״̬��λ
}
@@ -248,11 +316,16 @@
//���Ų�������������������������У������ط�������Ҫֹͣ������ת�����йط�
-ErrorStatus ValveCtrlOrder(VALVE_CTRL_TYPE_T valve_ctrl_order_l)
+ErrorStatus ValveCtrlOrder(VALVE_CTRL_TYPE_T valve_ctrl_order_l,VALVE_CTRL_SOURCE_T valve_ctrl_source)
{
+ valve_ctrl_para_g.valve_ctrl_source = valve_ctrl_source;
switch(valve_ctrl_order_l){
case VC_NONE:break;
case VC_OPEN:
+
+ if((__SYS_STATUS_BYTES_GET(alka_remove) == SET || __SYS_STATUS_BYTES_GET(alka_down) == SET)&&(__SYS_STATUS_BYTES_GET(power_state) ==RESET)){
+ return FAIL;//���û����û����磬��������
+ }
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;
@@ -261,22 +334,30 @@
break;
case VC_CLOSE:
- if((save_valve_para_g.valve_status != VALVE_CLOSE)&&(valve_ctrl_para_g.force_open_status==RESET)){
+ if((save_valve_para_g.valve_status != VALVE_CLOSE)&&(save_valve_para_g.valve_status != VALVE_CLOSING)&&(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;
+ return PASS;
+// break;
+ case VC_CLOSE_AND_LOCK:
+ valve_ctrl_para_g.valve_ctrl_order = VC_LOCK; //�Ƚ����������жϷ���״̬���費��Ҫִ�йط�
+ if((save_valve_para_g.valve_status != VALVE_CLOSE)&&(save_valve_para_g.valve_status != VALVE_CLOSING)&&(valve_ctrl_para_g.force_open_status==RESET)){
+ valve_ctrl_para_g.valve_ctrl_order = VC_CLOSE_AND_LOCK;
+ pwr_vol_g.alka_flag = AMS_VALVE_CTRL_BEFORE;
+
+ }
+ return PASS;
case VC_UNLOCK:
- save_valve_para_g.valve_lock_state = VL_UNLOCK;
+ valve_ctrl_para_g.valve_ctrl_order = VC_UNLOCK;
return PASS;
- break;
+// break;
case VC_LOCK:
- save_valve_para_g.valve_lock_state = VL_LOCK;
+ valve_ctrl_para_g.valve_ctrl_order = VC_LOCK;
return PASS;
- break;
+// break;
default: break;
}
@@ -299,14 +380,14 @@
if(valve_ctrl_para_g.force_open_status !=SET){
valve_ctrl_para_g.force_open_status =SET;
//��ʼ����ǿ��
-
+ sizhuValveActionLogHandle(VALVE_CTRL_FORCE_OPEN, VC_FORCE_OPEN,ALARM_ID_NORMAL);
}
}else{
if(valve_ctrl_para_g.force_open_status ==SET){
valve_ctrl_para_g.force_open_status =RESET;
- //��ʼ�ر�ǿ��
+ //ǿ������
}
}
--
Gitblit v1.9.3