1.计数器的存储器区
S7-300/400有3种指令框格式的计数器,每种都有对应的线圈格式的计数器。上述计数器统称为SIMATIC计数器。SIMATIC计数器的个数(128~2048个)与S7-300 CPU的型号有关,S7-400有2048个计数器。每个SIMATIC计数器有一个保存当前计算器值的字和一个计数器状态位。用计数器地址(C和计数器号,例如C24)来访问当前计数器值和状态位。
2.当前计数值
计数器字的0~11位是当前计数值的BCD码,计数值的范围为0~999。图3-70中的计数器字的当前计数值为BCD码127。计数器指令见表3-9。
图3-70 计数器字
表3-9 计数器指令
可以用PLCSIM模拟运行随书光盘中的项目“计数器”,来理解计数器的工作过程。
3.加计数器与减计数器方框指令
S_CU与S_CD分别是加计数器(Up Counter)与减计数器(Down Counter)方框指令(见图3-71和图3-72)。S为计数器的设置输入,PV为预设计数值输入,CU和CD分别为加计数脉冲和减计数脉冲输入,R为复位输入;Q为计数器状态输出,CV端输出十六进制格式的当前计数值,CV_BCD端输出BCD码格式的当前计数值。
图3-71 加计数器
图3-72 减计数器
计数器的CU、CD、S、R、Q的数据类型为BOOL,PV、CV和CVLBCD的数据类型为WORD。各变量均可以使用I、Q、M、L、D地址区,PV还可以使用计数器常数C#。
在“设置”输入信号S的上升沿,将PV端指定的预设值送入计数器字。在加计数脉冲输入信号I0.0的上升沿,如果当前计数值小于999,加计数器的计数值加1。在减计数输入信号I0.3的上升沿,如果当前计数值大于0,减计数器的计数值减1。当前计数值大于0时计数器状态位Q为1状态;当前计数值为0时,状态位Q为0状态。
“复位”输入信号R为1状态时,计数器被复位,当前计数值被清零,状态位Q变为0状态。
在S信号的上升沿时,如果加计数输入信号CU为1状态,即使CU没有变化,下一扫描周期也会加计数。在S信号的上升沿时,如果减计数输入CD为1状态,即使CD没有变化,下一扫描周期也会减计数。
计数器一般用来在计完预设值指定的脉冲个数后,进行某种操作。为了实现这一要求,最简单的方法是首先将预设值送入减计数器,计数值减为0时,其常闭触点闭合,用它来完成要做的工作。如果使用加计数器,需要增加一条比较指令,来判断计数值是否等于预设值。
4.加计数器线圈指令(www.xing528.com)
图3-73是用计数器线圈指令设计的加计数器。“设置计数器值”线圈SC用来设置计数器的预设值,图中I1.2的常开触点由断开变为接通时,预设值3被送入C3的计数器字。
图3-73 加计数器线圈指令应用电路
标有CU的线圈为加计数器线圈,标有CD的线圈为减计数线圈。在I1.3的上升沿,如果当前计数值小于999,计数值加1。复位输入I1.4为1时,计数器被复位,计数器状态位和计数值被清零。
当前计数值大于0时,C3的常开触点接通;当前计数值为0时,C3的常开触点断开。
【例3-4】用计数器扩展定时器的定时范围。
S7-300/400的定时器最大定时时间为9990s,IEC定时器(SFB3~SFB5)的时间预设值的数据类型为32位的TIME,单位为ms,最大定时时间为T#24D_20H_31M_23S-647MS。
如果需要更长的定时时间,可以使用图3-74所示的电路。T11和T12组成一个振荡电路。I0.0为0状态时,计数器C0被复位。I0.0变为1状态时,预设值500被送入C0,C0被解除复位;T11的线圈通电,开始定时。2小时后定时时间到,T11的常开触点接通,使T12开始定时。2小时后T12的定时时间到,它的常闭触点断开,使T11的线圈断电。T11的常开触点断开,使T12的线圈断电。下一个扫描周期T12的常闭触点接通,T11又从预设值开始定时。
图3-74 定时范围的扩展
振荡电路的振荡周期为T11和T12预设值之和,每隔4小时,当T12的定时时间到,T11的常开触点由接通变为断开,其脉冲下降沿通过减计数线圈CD使C0的计数值减1。计满500个数(即2000h)后,C0的当前值减为0,它的常闭触点闭合,使Q5.4的线圈通电。总的定时时间等于振荡电路的振荡周期乘以C0的计数预设值。
图3-75 双向计数器
5.双向计数器
在设置输入S的上升沿,PV指定的预设值被送给双向计数器(Up Down Counter,见图3-75)的计数器字。在加计数输入信号CU的上升沿,如果计数值小于999,计数器加1。在减计数输入信号CD的上升沿,如果计数值大于0,计数值减1。如果两个计数输入均为上升沿,两条指令均被执行,计数值保持不变。计数值大于0时输出Q为1状态;计数值为0时,Q为0状态。
复位输入R为1状态时,计数器被复位,计数器输出Q被复位,计数值被清零。
在S信号的上升沿设置计数器时,如果CU或CD输入为1,即使它们没有变化,下一扫描周期也会加计数或减计数。
6.IEC计数器
S7-300/400有3种IEC计数器,即加计数器SFB0“CTU”、减计数器SFB1“CTD”和加减计数器SFB2“CTUD”。具体的使用方法见STEP 7的在线帮助。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。