自动攻丝机进出料激光检测 进料出料失败报警循环手动及关闭报警退出无限循环

/**************进料检测********************/
/***缺料无限次循环 手动退出 超时报警*******/
              void check_Pon()                     //
              {
               zstatus=0;                         //报警计数器归零
               Signauto=1;                       //行程开关循环标志
//1进料检测2工位旋转3机座检测4夹具一开5夹具二开6夹具三开7夹具四开8夹具五开9夹具六开10电机进11电机退12闸门一开13闸门二开14过桥开
               FLAG_M=1;                         //进料检测
               printf("va1.val=%d\xff\xff\xff",FLAG_M);//串口显示
               while(Signauto)                   /**/
               {
                OutPut2=0;                       //闸门3开
                RstKey();
                for(;kcounter<10;)               //按键循环10
                {
                 if(!IntPut2)                    //按键低电平
                 {
                 LowVoltKey();                   //按键低电平 计数器加一状态标志加一
                 }
                 else if(~!IntPut2)              //按键高电平
                 {
                 RstKey();                       //按键计数器 状态计数器归零
                 }
                 delay1(2);                      //2023
                 if(kstatus>=8)                  /*按键状态标志大于等于8为有效值*/
                 {     
                 OutPut2=1;                      //闸门3关
                 Signauto=0;                     /*行程输入信号连续检测到3次Signauto=0退出循环*/
                 }
                 if(RUN_Flag==0)                 //手动标志
                 {
                 Signauto=0;                     //Signauto=0退出循环
                 break;
                 }
                 zstatus++;                      //缺料报警计数器加一
                 delay10ms(5);
                 if(zstatus>val9)                 //缺料计时
                 {  
                 Error_Flag=1;                     //开报警标志
                 delay10ms(50);
                 OutPut20=~OutPut20;              //缺料退刀及润滑退未到位报警
                 delay10ms(50);
                 OutPut20=~OutPut20;              //缺料退刀及润滑退未到位报警
                 delay10ms(50);
                 OutPut20=~OutPut20;              //缺料报警
                 if(Error_Flag==0)                 //串口接收到报警关闭标志
                  {
                   zstatus=0;                     //报警计数器复位
                   OutPut2=1;                    //闸门3关
                   Signauto=0;                   /*行程输入信号连续检测到3次Signauto=0退出循环*/
                   OutPut20=1;                     //蜂鸣器输出关
                   break;                        //
                  }
                 }
                }
               }
              }

///

///

///

/***出料检测低电平无限循环,高电平退出无限循环********/
/***检测到手动标志和关闭报警退出无限循环超时报警*****/
              void Check_Error()
              {
               zstatus=0;                         //报警计数器归零
               Signauto=1;                       //行程开关循环标志
               while(Signauto)                   /**/
               {
               RstKey();
               for(;kcounter<10;)                //按键循环10
               {
                if(!IntPut6)                     //按键低电平重复检测
                {
                 kcounter=0;                     //按键计数器加一 状态标志归零
                 kstatus=0;                      //按键低电平 计数器加一状态标志加一
                }
                else if(~!IntPut6)               //按键高电平夹具无料
                {
                 kcounter++;
                 kstatus++;
                }
                delay1(2);                       //2023
                if(kstatus>=8)                   /*按键状态标志大于等于8为有效值*/
                {     
                zstatus=0;             //
                Signauto=0;                      /*行程输入信号连续检测到3次Signauto=0退出循环*/
                }
                if(RUN_Flag==0)                  //手动标志
                {
                Signauto=0;                      //Signauto=0退出循环
                break;
                }
                zstatus++;                          //缺料报警计数器加一
                delay10ms(5);
                if(zstatus>val9)                 //缺料计时
                {  
                Error_Flag=1;                     //开报警标志
                delay10ms(50);
                OutPut20=~OutPut20;              //缺料退刀及润滑退未到位报警
                delay10ms(50);
                OutPut20=~OutPut20;              //缺料退刀及润滑退未到位报警
                delay10ms(50);
                OutPut20=~OutPut20;              //缺料报警
                }
                if(Error_Flag==0)                 //串口关闭报警标志
                 {
                 zstatus=0;                         //报警计数器归零
                 Signauto=0;                     /*行程输入信号连续检测到3次Signauto=0退出循环*/
                 break;
                 }
                }
               }  
              }                      

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值