S5 CPU928B,我在DI点上接入了编码器信号,一圈40个PULSES,编码器在计数的速度是6圈/秒,在实际的编程与测试时发现,计数时有严重的丢脉冲的现象。后来听人讲,可以用直接读取物理地址的做法,就是直接 L PY ,我试了一下,发现还是不行;后来又在OB10 (中断为10MS 的组织块)中做了一下,结果发现还是丢脉冲,请教各位,我要怎么做,才能计数精准啊?直接读PII 中的PY和读没有PII更新的PY 有什么区别?后者该怎么做?
问题补充:
S5的带中断的摸板和计数摸板早已经停产了,就算能买到,估计价格也很高,而且我要做的事有一个量的问题,没那么多经费.普通的DI板卡,就不能实现立即读取的功能吗?
最佳答案
首先确认编码器没有问题吗?你是每秒输入240个脉冲,这个速度不算高也不算低,普通口真未必反映的过来,不知道你的工艺过程是怎样的,建议你加个单独的计数器(这个很便宜),脉冲先给到计数器,然后设定多少个脉冲之后给PLC输入一个信号,根据这个来编成,立即输出就行了,也许要是你的工艺情况允许,直接从计数器输出给执行元件也是可以的。
提问者对于答案的评价:
谢谢各位的建议!
我在实际过程中也没用到直接读PY的功能,速度感觉上差不了多少!
如果可以用计数模块的话,肯定是可以快很多的!不过,一没硬件,二我也不会用,呵呵!
我最终的的解决方案为:分别检测A,B相的上升和下降沿,然后用四个C计数器计数,再把计数值时时读取并做加运算,然后与设定的数值相比较,从现场的测试来看效果还可以,呵呵!方法比较拙劣,让大家见笑了...!
再次谢谢大家的热心关注与回答!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc142154.html