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

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

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

相关文章

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️⃣ 利用系统目录

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

SpringBoot整合Dubbo+ZK注册失败的坑及解决

《SpringBoot整合Dubbo+ZK注册失败的坑及解决》使用Dubbo框架时,需在公共pom添加依赖,启动类加@EnableDubbo,实现类用@DubboService替代@Service,配... 目录1.先看下公共的pom(maven创建的pom工程)2.启动类上加@EnableDubbo3.实

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon