PLC的扫描周期与CPU的主频和程序的大小有关。是不可以修改的。
根据程序的大小 ,扫描周期在几个毫秒到100个毫秒之间。
你的采样频率为30000/H也就是1秒有8.3个脉冲。我们按9个脉冲算。这样的话,你的CPU必须在1秒内运行18个周期才可以完全统计这些脉冲。也就是闹腊瞎扫描周期要在55毫秒内。
因为CPU运行液空要处理各种事件,每一次的扫描时间也不尽相同。因此才局巧会有脉冲不相同或漏计现象。
要解决这个问题有以下办法:
采用高速计数模块。
采用带输入中断的DI模块。用上升沿中断计数。
在程序中采用定时中断。OB30-OB38为循环中断。将其中一个OB的时间改成你的需要的时间。比如将OB37改成40ms.然后将计数程序移入OB37.但需要注意,不可再直接使用缓冲区的地址。因为这个地址的状态更新时间受扫描周期的影响。你需要直接读通道地址的状态。比如你的通道地址为I1.0。则正确的方法为:
L PIB1
T MB1
然后你在OB37中对M1.0计数即可。
以上为个人建议,不足之处请指教。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)