有请各位大侠帮忙解决一下:
本人现有一案例:S7200 CPU224PLC 一台,OMRON接近开关1支(3KHz),SUNX激光传感器一套,我想实现在运动中检测被测物体的状态信息。接近开关做同步信号,激光传感器进行采样,被测物体最快运动时两个物体的最短间隔时间为2.5ms,做为3KHz的接近开关是能反应过来的,我是这么做的,通过实际安装位置调整,接近开关下降沿的时候,激光的物理实际检测位置对准被测物的中心,我现在遇到的问题是:在物体运动速度较慢的时候,运动中检测相当准确,但是被检测物体运行时间间隔只有4~5ms时间,检测就不准了,我现在想了很多原因,我将我的中断程序尽量编得简短,将所有指令统计一下,整个中断程序理论上执行只要0.5ms以下,但是问题依然没能解决,现在我就怀疑S7200PLC是不是不能满足我这个案例的要求了,烦请各位专家指导一下,我的运动中的被测物体间隔距离是10mm,最快的运行速度4000mm/s,如果各位专家有更好的方案,小弟将感激涕淋。
问题补充:
CPU224是晶体管的,中断里面程序较简单判断激光传感器的开关量,如果是闭合是,传送值1到某个字存储器里,否则则送值0,然后进行填表,填满20个数据进行复位,通过PC监控,能够看到速度快的时候进了20次中断,说明接近开关响应是没问题的,我自己怀疑是中断存在排队的情况,三楼的说“数字量输入有延迟的”,有专家能确切的知道这个延时具体是多少,要是知道这个数据,在以后一些响应要求比较高的情况下,就是一个比较重要的参考因素了,再次重申我不是为了计数,我的目的是进一次中断填表一次,填完20次复位,然后在主程序里处理这20个数据。
最佳答案
3khz的频率要求高电平低电平最少要0.333毫秒。你同意吗?若高电平小于此值则认为一直是低电平。相反易然。你的物体经过接近开关,使接近开关获得高电平的时间有小于0.333毫秒吗?以上是外部硬件的问题。
高速输入是没有使用软件滤波的。全部作用于硬件的RC滤波。滤波时间比系统块上的最小值还小。估计你不用担心输入延迟的问题。只要你启动脉冲捕捉。这个是PLC硬件的问题。
当密集地检测到物体,而程序又在使用输入中断计数,周期超过中断等相关程序的执行时间的话,中断会产生队列。溢出后只能知道是已经溢出,无法补救。数值就此丢失。若采用高速计数的话,那么瓶颈只发生在3KHZ的接近开关上。这是软件的问题。
你认为呢?
提问者对于答案的评价:
问题已经解决,是我自己的问题,中断中要使用立即I/O.在此,谢谢各位~~~
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc350701.html