⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 function.c

📁 灭火控制盘(XMP4-2)
💻 C
📖 第 1 页 / 共 5 页
字号:
      //看是否有反馈信息
      if(machine_status==0x60)
         {
          if(feedback_number==0) //信息为0类型在+1
             {
              machine_status+=0x10;
              }
          else
             have_report=1;
          }
      //看是否有启动信息
      if(machine_status==0x70)
         {
          if(start_number==0) //信息为0类型=0x30
             machine_status+=0x10;
          else
             have_report=1;
          }
      }
}
//*************************************************************************
//**函 数 名:ReadQuStart
//**输    入:
//**          QuNumber:动作检测的区号
//**输    出:无
//**功能描述:
//**          1.检测某一个区的动作的信号
//*************************************************************************
void ReadQuStart(uchar QuNumber)
{
  uchar xdata temp_action,I;
  switch(QuNumber)
         {
          case 1:CS_STATUS=ONEPORTDETECT;  temp_action=alreadly_action1;break;
          case 2:CS_STATUS=TWOPORTDETECT;  temp_action=alreadly_action2;break;
          case 3:CS_STATUS=THREEPORTDETECT;temp_action=alreadly_action3;break;
          case 4:CS_STATUS=FOURPORTDETECT; temp_action=alreadly_action4;break;
          default:break;
          }
  Read12887(Clock_Time);
  //检测钢瓶是否启动
  if((!GPQD_DETECT)&&((temp_action&0x01)==0))
     {
      SaveAlarmToBUFF(QuNumber,0x08,0x03);
      //存入打印缓冲区
      SaveAlarmToPrintBUFF(QuNumber,0x08,3);
      //点亮总启动灯
      StartUpLED(1);
      start_number++;
      disp_start_number = start_number;
      //设置启动声响
      if(SoundType != 1)SoundType = 1;
      //灭消音灯
      Mute_LED_CTRL(0);
      if(machine_status<=0x70)
         {
          machine_status=0x70;
          have_report=1;
          }
      //置位检测完成标志
      temp_action|=0x01;
      }
  //检测压力开关是否动作
  if((!YLKG_DETECT)&&((temp_action&0x04)==0))
     {
      //压力开关动作信息存入显示缓冲区
      SaveAlarmToBUFF(QuNumber,0x0b,0x04);
      //存入打印缓冲区
      SaveAlarmToPrintBUFF(QuNumber,0x0b,4);
      //反馈数加1
      feedback_number++;
      disp_feedback_number = feedback_number;
      //点亮启动灯
      StartUpLED(1);
      //灭消音灯
      Mute_LED_CTRL(0);
      //设置反馈声响
      if((SoundType != 1)||(SoundType != 2))SoundType = 2;
      //对应区的喷洒启动
      PDAutoStartUp(QuNumber,1);
      SaveAlarmToBUFF(QuNumber,0x04,0x03);
      //存入打印缓冲区
      SaveAlarmToPrintBUFF(QuNumber,0x04,3);
      start_number++;
      disp_start_number = start_number;
      if(machine_status<=0x70)
         {
          machine_status=0x70;
          have_report=1;
          }
      //置位检测完成标志
      temp_action|=0x04;
      }
  //检测手动急停(前面板的停止按钮)(现在场的急停按键)按键是否按下
  if(((!JTAN_DETECT)||(!SDJT_DETECT))&&((temp_action&0x02)==0))
     {
      if(allow_status[QuNumber-1]==1)
         {
          //延时启动时间未到时,禁止启动输出
          if(delay_SDstart_time[QuNumber-1]!=0)
             {
              //关提示声音
              SoundType=0;
              //停止声光信息存入显示缓冲区
              SaveAlarmToBUFF(QuNumber,0x03,0x05);
              //存入打印缓冲区
    	      SaveAlarmToPrintBUFF(QuNumber,0x03,5);
              //停止声光输出
              SGAutoStartUp(QuNumber,0);
              stop_number++;
              disp_stop_number = stop_number;
              //停止联动设备信息存入显示缓冲区
              SaveAlarmToBUFF(QuNumber,0x0a,0x05);
              //存入打印缓冲区
    	      SaveAlarmToPrintBUFF(QuNumber,0x0a,5);
              //停止联运动设备输出
              LDAutoStop(QuNumber,0);
              stop_number++;
              disp_stop_number = stop_number;
              have_delay_start&=~(0x01<<(QuNumber-1));
              }
          //置位检测完成标志
          temp_action|=0x02;
          }
      }
  //检测手动急启(前面板的启动按钮)(现在场的急启按键)按键是否按下
  if(((!SDJQ_DETECT)||(!JQAN_DETECT))&&((temp_action&0x08)==0))
     {
      I=0;
      switch (QuNumber)
              {
               case 1:if((alarm_report&0x01)==0x01)I=1;break;
               case 2:if((alarm_report&0x02)==0x02)I=1;break;
               case 3:if((alarm_report&0x04)==0x04)I=1;break;
               case 4:if((alarm_report&0x08)==0x08)I=1;break;
               }
      if((allow_status[QuNumber-1]==1)&&(I==0))
         {
          //判断有没有延时
          if((SD_delay_time>=0)&&(SD_delay_time<=30))
             {
              //禁止启动
              Delay_StartUP(0);
              //启动声光信息存入显示缓冲区
              SaveAlarmToBUFF(QuNumber,0x03,0x03);
              //存入打印缓冲区
              SaveAlarmToPrintBUFF(QuNumber,0x03,3);
              //启动声光输出
              SGAutoStartUp(QuNumber,1);
              start_number++;
              disp_start_number = start_number;
              //联动设备信息存入显示缓冲区
              SaveAlarmToBUFF(QuNumber,0x0a,0x03);
              //存入打印缓冲区
              SaveAlarmToPrintBUFF(QuNumber,0x0a,3);
              //联动设备输出
              LDAutoStop(QuNumber,1);
              start_number++;
              disp_start_number = start_number;
              //灭消音灯
              Mute_LED_CTRL(0);
              //手动延时启动信息存入显示缓冲区
              SaveAlarmToBUFF(QuNumber,0x08,0x06);
              //存入打印缓冲区
              SaveAlarmToPrintBUFF(QuNumber,0x08,6);
              start_number++;
              disp_start_number = start_number;
              //点亮延时启动灯
              D_StartUpLED(1);
              //延时启动的每秒提示声音
              //设置声响类型
              if(SoundType!=5&&SoundType!=1)SoundType=5;
              //置该区延时启动标志位
              have_delay_start|=(0x01<<(QuNumber-1));
              delay_time_count=0;
              if(machine_status<=0x70)
                 {
                  machine_status=0x70;
                  have_report=1;
                  }
              }
          //置位检测完成标志
          temp_action|=0x08;
          }
      }
  switch(QuNumber)
         {
          case 1:alreadly_action1=temp_action;break;
          case 2:alreadly_action2=temp_action;break;
          case 3:alreadly_action3=temp_action;break;
          case 4:alreadly_action4=temp_action;break;
          default:break;
          }
}
//*************************************************************************
//**函 数 名:TestButtonAction
//**输    入:
//**          QuNumber:动作检测的区号
//**输    出:无
//**功能描述:
//**          1.检测某一个区的啟動和停止按鍵是否按下
//*************************************************************************
void TestButtonAction(uchar QuNumber)
{
  switch(QuNumber)
         {
          case 1:CS_STATUS=ONEPORTDETECT;  break;
          case 2:CS_STATUS=TWOPORTDETECT;  break;
          case 3:CS_STATUS=THREEPORTDETECT;break;
          case 4:CS_STATUS=FOURPORTDETECT; break;
          default:break;
          }
  //检测手动急停(前面板的停止按钮)按键是否按下
  if(!JTAN_DETECT)
     {
	  if(ButtonAction == 0)
		 ButtonAction = 1;
      }
  //检测手动急启(前面板的启动按钮)按键是否按下
  if(!SDJQ_DETECT)
     {
      //前面板启动按钮按下
	  ButtonAction = 1;
      }
}
//*************************************************************************
//**函 数 名:Delay_Manage
//**输    入:无
//**输    出:无
//**功能描述:
//**          1.延时启动处理主程序
//*************************************************************************
void Delay_Manage(void)
{
  if((have_delay_start & 0xFF) == 0)
     {
      //熄灭延时启动灯
      D_StartUpLED(0);
      return;
      }
  //手动延时时间到了1S
  if(delay_time_count==100&&((have_delay_start&0x0f)!=0))
     {
      delay_time_count=0;
      //开关液晶背光的计数器清零
      backlamp_delay=3000;
      //开背光
      LCDLAMPCTRL(1);
      //延时启动的每秒提示声音
      //设置声响类型
      if(SoundType!=5)SoundType=5;
      if((have_delay_start&0x01)==0x01)
         {
          delay_SDstart_time[0]--;
          if(delay_SDstart_time[0]<=0)
             {
              //延时时间到启动一区的钢瓶
              GPAutoStartUp(1,1);
              //允许启动
              Delay_StartUP(1);
              //点亮启动灯
              StartUpLED(1);
              //灭消音灯
              Mute_LED_CTRL(0);
              //设置提示音
              SoundType = 1;
              have_delay_start&=0xFE;
              }
          }
      if((have_delay_start&0x02)==0x02)
         {
          delay_SDstart_time[1]--;
          if(delay_SDstart_time[1]<=0)
             {
              //延时时间到启动二区的钢瓶
              GPAutoStartUp(2,1);
              //允许启动
              Delay_StartUP(1);
              //点亮启动灯
              StartUpLED(1);
              //灭消音灯
              Mute_LED_CTRL(0);
              //设置提示音
              SoundType = 1;
              have_delay_start&=0xFD;
              }
          }
      if((have_delay_start&0x04)==0x04)
         {
          delay_SDstart_time[2]--;
          if(delay_SDstart_time[2]<=0)
             {
              //延时时间到启动三区的钢瓶
              GPAutoStartUp(3,1);
              //允许启动
              Delay_StartUP(1);
              //点亮启动灯
              StartUpLED(1);
              //灭消音灯
              Mute_LED_CTRL(0);
              //设置提示音
              SoundType = 1;
              have_delay_start&=0xFB;
              }
          }
      if((have_delay_start&0x08)==0x08)
         {
          delay_SDstart_time[3]--;
          if(delay_SDstart_time[3]<=0)
             {
              //延时时间到启动四区的钢瓶
              GPAutoStartUp(4,1);
              //允许启动
              Delay_StartUP(1);
              //点亮启动灯
              StartUpLED(1);
              //灭消音灯
              Mute_LED_CTRL(0);
              //设置提示音
              SoundType = 1;
              have_delay_start&=0xF7;
              }
          }
      if(machine_status==0x70)
         {
          //显示报警信息
          DISP_Information();
          }
      }
//////////////////////////////////////////////////////////////
  //自动延时时间到了1S
  if(delay_time_count==100&&((have_delay_start&0xf0)!=0))
     {
      delay_time_count=0;
      //开关液晶背光的计数器清零
      backlamp_delay=3000;
      //开背光
      LCDLAMPCTRL(1);
      //延时启动的每秒提示声音
      //设置声响类型
      if(SoundType!=5)SoundType = 5;
      if((have_delay_start&0x10)==0x10)
         {
          delay_ZDstart_time[0]--;
          if(delay_ZDstart_time[0]<=0)
             {
              //延时时间到启动一区的钢瓶
              GPAutoStartUp(1,1);
              //允许启动
              Delay_StartUP(1);
              //点亮启动灯
              StartUpLED(1);
              //灭消音灯
              Mute_LED_CTRL(0);
              //设置提示音
              SoundType = 1;
              have_delay_start&=0xef;
              }
          }
      if((have_delay_start&0x20)==0x20)
         {
          delay_ZDstart_time[1]--;
          if(delay_ZDstart_time[1]<=0)
             {
              //延时时间到启动二区的钢瓶
              GPAutoStartUp(2,1);
              //允许启动
              Delay_StartUP(1);
              //点亮启动灯
              StartUpLED(1);
              //灭消音灯
              Mute_LED_CTRL(0);
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -