西门子s7-300/400的计数器数量决定于所选择的plc cpu模块,计数的形式可以分为“加计数”、“减计数”与“加减计数”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的计数指令
s7-300/400的定时指令包括如下几种;
(l)计数器控制指令
fr:计数器启动信号;
l:装载计数值,或将现行计数值以二进制的形式读入到累加器l中:
lc:将现行计数值以bcd码的形式读入到累加器l中:
r:计数器复位;
s:设定计数器的预置值:
(2)定时器类型选择指令
cu:加计数;
cd:减计数。
以上各指令的应用以及梯形图编程、指令表编程的方法如图所示。指令表程序中的bld用于编程器的图形显示,nop为“空操作指令”,它在转换格式时由编程软件自动生成,无功能含义。