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

本文主要是介绍自动攻丝机进出料激光检测 进料出料失败报警循环手动及关闭报警退出无限循环,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/**************进料检测********************/
/***缺料无限次循环 手动退出 超时报警*******/
              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;
                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;
                 }
                }
               }  
              }                      

这篇关于自动攻丝机进出料激光检测 进料出料失败报警循环手动及关闭报警退出无限循环的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/988079

相关文章

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录