西门子S7-300/400PLC中计数器的计数的形式可以分为“加计数”、“减计数”与“加减计数”3类,计数原理与方法基本等同S7-200 PLC。计数输入信号为上升沿有效。S7-300/400的计数器有单独的“置数”控制端S与复位控制端R。只有当“置数”控制端S为“l”时(上升沿有效),设定值才能被写入计数器;当复位控制端R为“1”时,将计数值清除。
S7-300/400的计数器具有输出端Q、现行计数值输出端CV(二进制)、现行计数值的BCD码输出端CV—BCD三个输出端。输出端Q可以作为计数器的状态指示信号使用,当计数器的现行计数值为“0”时,Q=“0”;当现行计数值大于0时,Q=“1”。通过现行计数值输出端CV(或CV- BCD)可以获得计数器的当前计数值。
在程序中同一计数器编号既可以作为触点使用,也可以作为现行值数据使用,它决定于程序中使用的指令形式。在逻辑运算指令中使用计数器编号,采用的是计数器的触点:在数据运算指令中使用计数器编号,为现行值计数值。
S7-300/400的定时指令包括如下几种;
(l)计数器控制指令
FR:计数器启动信号;
L:装载计数值,或将现行计数值以二进制的形式读入到累加器l中:
LC:将现行计数值以BCD码的形式读入到累加器l中:
R:计数器复位;
S:设定计数器的预置值:
(2)定时器类型选择指令
CU:加计数;
CD:减计数。
加计数器非常容易理解,减计数器也不难,简述如下:
减计数器(Down Counter)方框指令的CD是减计数脉冲输入端,其余各输入、输出端的功能与图中的加计数器的相同。在设置输入I1.6的上升沿,用PV指定的值被送入C1。在减计数输入信号I1.5的上升沿,如果计数值大于0,计数值减1。复位输入I1.7为1时,计数器被复位,计数器位和计数值被清零。计数值大于0时计数器的输出Q为1;计数值为0时,Q亦为0。如果在设置计数器时减计数输入信号CD为1,即使CD没有变化,下一扫描周期也会计数。
图中标有SC的线圈用来预置计数器的值。I1.6的触点由断开变为接通时,预置值5被送入计数器C1。标有CD的线圈为减计数线圈(Down Counter Coil),在I1.5的上升沿,如果计数值大于0,计数值减1。计数值非0时,C1的常开触点闭合,为0时C1的常开触点断开。复位输入I1.7为1状态时,C1被复位,计数器位和计数值被清零。
为了在计数器计完预置值指定的脉冲数后进行某种操作,最简单的方法是首先将预置值送入减计数器,计数值减为0时,其常闭触点闭合,用它来完成要做的工作。
以上各指令的应用以及梯形图编程、指令表编程的方法如图所示。指令表程序中的BLD用于编程器的图形显示,NOP为“空操作指令”,它在转换格式时由编程软件自动生成,无功能含义。