按照我们一般的理解,计数器的输出位或它的常开触点应该在计数值到达预置值时接通,这种要求用大多PLC加计数器一般都能实现。但是S7-300的加计数器的计数值到达预置值时,其输出位的状态没有什么变化 。
实际上,S7-300的加计数器与众不同,计数值为0时其输出位Q为0,计数值非零时其输出位为1。为了实现计数值到达预置值时产生一个动作,可以在计数器之后使用一个比较指令(见下图),当它的计数值大于等于预置值(图中为12)时比较指令等效的触点接通,用它来驱动一个线圈。此时计数器的预置值PV实际上不起作用。
另一个更简单的方法是使用减计数器,开始计数之前写入预置值,计数值到达预置值时其计数值变为0,其输出位由1变为0,将输出位取反(用它的常闭触点控制一个线圈),就可以用来完成我们需要的操作了。
STEP7 帮助文档 对 S_CU up counter 的解释;
If I0.2 changes from "0" to "1", the counter is preset with the value of MW10. If the signal state of I0.0 changes from "0" to "1", the value of counter C10 will be incremented by one - unless the value of C10 is equal to "999". Q4.0 is "1" if C10 is not equal to zero.
如果i0.2更改从"0""1",该计数器是mw10的预设值。 如果i0.0变化的信号状态从"0""1",c10计数器的值将增加一个c10除非该值等于"999"。 如果c10不等于零,q4.0是"1"。