forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-12 f03cf3ae7a36954e64fc014e6bb7afd20c5a5247
Soft/sizhu_ctrl_word.c
@@ -8,25 +8,85 @@
SYSTEM_STATUS_WORD_T           system_status_word_g;
SYSTEM_FUNCTION_CTRL_WORD_T    system_function_ctrl_word_g = {        \
.fun_ctrl_word.billing_type = 0x02,                                       \
   .fun_ctrl_word.billing_type = 0x02,                                       \
};
SYSTEM_ALARM_WORD_T            system_alarm_word_g; //ÓÃÓÚÉϱ¨£¬Éϱ¨ÍêÇå³ý
SYSTEM_ALARM_WORD_T            system_alarm_word_for_valve_g; //ÓÃÓÚ·§¿Ø£¬ÅжÏÍê·§¿ØÖ®ºóÇåÁã
SYSTEM_ALARM_CTRL_WORD_T       system_alarm_ctrl_word_g;
SYSTEM_ALARM_REPORT_CTRL_WORD_T     system_alarm_report_ctrl_word_g;
VALVE_CTL_BYTES_UNION_T valve_ctl_bytes_g = {.valve_ctrl_bytes = {
{0},
{0},
{0},
{1,0,1,1,1,1,0,0,0,0,0,0,0,0},
{0,0,0,1,1},
{0},
{0},
{0},
{0},
{0},
{0},}
SYSTEM_ALARM_WORD_T            system_alarm_word_for_valve_g;  //ÓÃÓÚ·§¿Ø£¬ÅжÏÍê·§¿ØÖ®ºóÇåÁã
SYSTEM_ALARM_CTRL_WORD_T       system_alarm_ctrl_word_g= {.alarm_ctl_word={
      .system_start = 1,
      .power_state = 1,
      .valve_error = 1,
      .valve_state_change = 1,
      .set_cumulate_up_to = 1,
      .no_use_gas_date_up_to = 1,
      .no_gprs_date_up_to = 1,
      .balance_small_3 = 1,
      .lith_low = 1,
      .lith_down  = 1,
      .lith_remove = 1,
      .alka_low = 1,
      .alka_down = 1,
      .alka_remove = 1,
      .gprs_status = 1,  //Ô¶´«Ê§°ÜÖ»±¨¾¯£¬²»Éϱ¨
      .RS485_err = 1,
      .RS485_lessen = 1,
      .broken_line = 1,
      .temp_err = 1,
      .cpu_temp_up = 1,
      .cpu_temp_down = 1,
      .press_err = 1,
      .lcd_up = 1,
      .cl_have_flow = 1,
   }
};
SYSTEM_ALARM_CTRL_WORD_T     system_alarm_report_ctrl_word_g= {.alarm_ctl_word={
   .system_start = 1,
   .power_state = 1,
   .valve_error = 1,
   .valve_state_change = 1,
   .set_cumulate_up_to = 1,
   .no_use_gas_date_up_to = 1,
   .no_gprs_date_up_to = 1,
   .balance_small_3 = 1,
   .lith_low = 1,
   .lith_down  = 1,
   .lith_remove = 1,
   .alka_low = 1,
   .alka_down = 1,
   .alka_remove = 1,
   //.gprs_status = 1,  //Ô¶´«Ê§°ÜÖ»±¨¾¯£¬²»Éϱ¨
   .RS485_err = 1,
   .RS485_lessen = 1,
   .broken_line = 1,
   .temp_err = 1,
   .cpu_temp_up = 1,
   .cpu_temp_down = 1,
   .press_err = 1,
   .lcd_up = 1,
   .cl_have_flow = 1,
   }
};
VALVE_CTL_BYTES_UNION_T valve_ctl_bytes_g = {.valve_ctrl_bytes = {
   {0},
   {0},
   {0},
   {.lith_down_need_close_valve_flag =1,.lith_down_close_valve_type = 1,.lith_remove_need_close_valve_flag =1,.lith_remove_close_valve_type =1,
   //.alka_down_need_close_valve_flag= 1,.alka_down_close_valve_type = 1,.alka_remove_need_close_valve_flag =1,.alka_remove_close_valve_type =1,
   },
   {0},
   {0},
   {0},
   {0},
   {0},
   {0},
   {0},}
};
#define   alarm_ctrl_para_array_g_NUM   (sizeof(alarm_ctrl_para_array_g) /sizeof(ALARM_CTRL_PARA_T)   )
@@ -177,7 +237,7 @@
   /*±¨¾¯´¥·¢Éϱ¨*/
   if(AlarmTriggerWrcFlag ==SET){
      AlarmTriggerWrcFlag = RESET;
      start_wrc_g = WRC_MEANS_ALARM;//´æÔÚ±¨¾¯
//      start_wrc_g = WRC_MEANS_ALARM;//´æÔÚ±¨¾¯  ²âÊÔÏÈ×¢ÊÍ
   }
   /*±¨¾¯´¥·¢·§¿Ø*/
@@ -187,12 +247,8 @@
         close_valve_flag = close_valve_flag & 0x03;
         if(close_valve_flag == VALVE_CTRL_FLAG_LOCK_AND_CLSOSE){
            //·§ÃÅËø¶¨Á¢¼´Íê³É£¬·§ÃÅÖ´ÐÐÐèÒªÒ»¶¨Ê±¼ä
            if(save_valve_para_g.valve_lock_state != VL_UNLOCK){
               ValveCtrlOrder(VC_LOCK);
               //?´æ´¢
            }
            system_status_word_g.status_word.valve_lock = (save_valve_para_g.valve_lock_state == VL_LOCK)?1:0;
            ValveCtrlOrder(VC_CLOSE);
            ValveCtrlOrder(VC_CLOSE_AND_LOCK,VALVE_CTRL_SOURCE_AUTO);
            
            //´¦Àí¹Ø·§Ô­ÒòID£¬Èç¹ûÒѾ­ÓÐÇ¿ÖÆÐԹط§£¬ÔòÐèÒªÅжÏÓÅÏȼ¶£¬Óà¶îÀà¿ÉÒÔ±»¸²¸Ç£¬ÆäÓ಻Äܱ»¸²¸Ç£¬ÓÃÓÚÅжÏÊÇ·ñÊÇÓà¶îÀàÔì³ÉµÄ£¬Óà¶îÀàÔì³ÉµÄÔÚ³äÖµÖ®ºó¿ÉÒÔÖ±½Ó¿ª·§
            if((save_valve_para_g.valve_close_ID & 0x8000)==0x8000){
@@ -205,7 +261,7 @@
            }
            
         }else if(close_valve_flag == VALVE_CTRL_FLAG_ONLY_CLSOSE){
            ValveCtrlOrder(VC_CLOSE);
            ValveCtrlOrder(VC_CLOSE,VALVE_CTRL_SOURCE_AUTO);
            //´¦Àí¹Ø·§Ô­ÒòID£¬Èç¹ûÒѾ­ÓÐÇ¿ÖÆÐԹط§£¬Ôò²»ÔÙ¸²¸Ç
            if((save_valve_para_g.valve_close_ID & 0x8000)==0x8000){