硬件可逆计数器当加、减计数脉冲同时进入加减计数时,为确保计数的准确,对加、减计数脉冲在进入加减计数口前先进行处理,即串接一个小间隔消除器电路,该电路的作用就是能将加、减二路中相互间隔很小的加、减二个脉冲成对抵消,使经该电路处理后输出的加、减二路脉冲彼此间隔较大,即能被可逆计数器识别。故可确保加减技术的准确。
PLC的可逆计数器如加减计数脉冲同时进行计数,也可按硬件小间隔消除器的电路原理编程,请见下图波形图及文字说明:
但实际上PLC的可逆计数器,本身就具有可同时进行加减计数的功能,而不需做任何编程处理。其原因跟它的工作方式有关: PLC都是从头到尾逐条扫描、判断及处理,扫描周期较长(几十毫秒以上),故使PLC的可逆计数器对出现在不同扫描周期的加减计数脉冲可以同时输入计数,而计数结果正确。就是在同一扫描周期里同时出现加减脉冲,由于PLC是逐条扫描,使对加减脉冲的扑捉也是有先有后,一加一减相互抵消。通过编程试验验证这一点(见程序),程序的第16条为经过编程处理的可逆计数器C0,当加减脉冲二个前沿间隔<10ms,M3.2=1,阻挡加减脉冲进行计数运算,当计数值=1000时,M1.6=1,使C0清0,同时使MW4加1000,即实现千位数进位加1运算。MW6=MW4+C0,为C0的计数显示区,最大计数=65535。程序的第17条为没用编程处理直接进行加减计数的可逆计数器C10,它的最大计数值为9999。从最后的二个截图可以看出,C0、C10的计数值是相同的(见MW6与C10值)。这也是在这次编程中的最大收获。
主程序:
INT_0 中断0子程序
INT_1 中断_1子程序
截图:1、加脉冲总数=1577,减脉冲总数=197,可逆计数器计数值=1380
截图:1、加脉冲总数=5239,减脉冲总数=655,可逆计数器计数值=4584