📄 function.c
字号:
//看是否有反馈信息
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 + -