跟我一起玩200smart PLC
计数器复位端与周期的关系
今天在“找答案”栏目上看到网友的一个提问,相关提问链接:S7-200计数器复位问题http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=154487&cid=1028
这个控制程序是当计数器C0计数值达到5时(5秒),将常数1传送给VB0寄存器中(相当于V0.0 = 1)。网友的疑问是既然计数器C0等于5,计数器已经被复位了,也就无法再执行网络段2中给VB0的赋值程序。
图示,网友的程序:

根据上面的控制程序,我再做一些修改,目的是当计数器C0等于5时,采用JMP指令跳过网络段3,看计数器是先执行复位,还是需要等待下一个周期再刷新计数器C0。
程序:

很显然,当计数器计数值等于5时,先执行了跳转指令JMP 1,程序跳转至网络段4。这时,计数器并没有被复位,看计数值始终保持计数值5,说明计数器是计数器触点先行动作,再进行复位操作。如果将网络段2移植到网络段3的下面情况又如何?图示:

当计数器计数值等于5时,使V0.0 = 1,断开L了复位端使能,计数器将没有复位计数值一直往上加,直到32767。
上述2个不同的程序显示说明计数器复位是需要计数值等于预设值后的下一个扫描周期才被复位刷新到0值。如果是先执行复位,则计数器C0的状态是从PLC工作机制下是先执行复位计数器操作了的,计数器C0无法将计数值运行到大于5的数值。