西门子S7-1200PLC模块广东代理商

用西门子S7-300/400计数器扩展定时器的定时范围
西门子S7-300/400的定时器定时时间为9990 s,IEC定时器(SFB 3~SFB 5)的时间预置值的数据类型为32位的TIME,单位为ms,定时时间达T#24D_20H_31M_23S_647MS。
如果需要更长的定时时间,可以使用图3-81所示的电路。I0.0为0状态时,计数器C0被复位。I0.0变为1状态时,其常开触点接通,使T11和T12组成的振荡电路开始工作,计数器的预置值500被送入计数器C0;I0.0的常闭触点断开,C0被解除复位。
图3-81 定时范围的扩展
振荡电路的振荡周期为T11和T12预置值之和,图中的振荡电路相当于周期为4h的时钟脉冲发生器。每隔4h,当T12的定时时间到,T11的常开触点由接通变为断开,其脉冲的下降沿通过减计数线圈CD使C0的计数值减1。计满500个数(即2000h)后,C0的当前值减为0,它的常闭触点闭合,使Q5.4的线圈通电。总的定时时间等于振荡电路的振荡周期乘以C0的计数预置值。
有的插图中的梯形图没有标出程序段号,但是相邻程序段左边的垂直线是断开的,以此来表示程序段的分界点。
在“设置输入”S的上升沿,PV指定的预置值被送入加减计数器(Up Down Counter,见图3-82)。复位输入R为1状态时,计数器被复位,计数器的位输出Q被复位,计数值被清零。在加计数输入信号CU的上升沿,如果计数值小于999,计数器加1。在减计数输入信号CD的上升沿,如果计数值大于0,计数值减1。如果两个计数输入均为上升沿,两条指令均被执行,计数值保持不变。计数值大于0时,输出信号Q为1状态;计数值为0时,Q亦为0状态。

图3-82 加减计数器
如果在设置计数器时(在S信号的上升沿)CU或CD输入为1,即使它们没有变化,下一个扫描周期也会计数。
图3-80是用计数器线圈指令设计的加计数器。“设置计数值”线圈SC( Set Counter Value)用来设置计数值,图中I1.2的常开触点由断开变为接通时,预置值3被送入C3的计数器字。
图中标有CU的线圈为加计数器线圈(Up Counter Coil),标有CD的线圈为减计数线圈( Down Counter Coil)。在I1.3的上升沿,如果当前计数值小于999,计数值加1。复位输入I1.4为1时,计数器被复位,计数器位和计数值被清零。
图3-80 加计数器线圈指令
图3-78 加计数器
下面是图3-78的电路对应的语句表:
A I 0.0 //在I0.0的上升沿
CU C 0 //加计数器C0的当前值加1
BLD 101 //空操作指令,与显示有关
A I 0.1 //在I0.1的上升沿
L C#3 //计数器的预置值3被装入累加器1的低字
S C 0 //将预置值装入计数器C0
A I 0.2 //如果I0.2为1
R C 0 //复位C0
L C 0 //将C0的十六进制计数当前值装入累加器1的低字
T MW 0 //将累加器1的内容传送到MW0
LC C 0 //将C0的BCD码计数当前值装入累加器1的低字
T MW 2 //将累加器1的内容传送到MW2
A C 0 //如果C0的当前值非0
= Q 4.0 //Q4.0为1状态
S_CU与S_CD分别是加计数器( Up Counter)与减计数器(Down Counter)方框指令(见图3-78和图3-79)。S为计数器的设置输入端,PV为预置值输入端,CU和CD分别为加计数脉冲和减计数脉冲输入端,R为复位输入端;Q为计数器位输出端,CV端输出十六进制格式的当前计数值,CV_BCD端输出当前计数值的BCD码。

图3-78 加计数器
图3-79 减计数器
计数器的CU、CD、S、R、Q为BOOL(位)变量,PV、CV和CV_BCD为WORD(字)变量。各变量均可以使用I、Q、M、L、D存储区,PV还可以使用计数器常数C#。
在“设置”输入信号S的上升沿,将PV端指定的值送入计数器字。在加计数脉冲输入信号I0.0的上升沿,如果当前计数值小于999,计数值加1。在减计数输入信号I0.3的上升沿,如果计数值大于0,计数值减1。
“复位”输入信号R为1时,计数器被复位,当前计数值被清零,输出Q变为0状态。
当前计数值大于0时,计数器位(即输出Q)为1状态;当前计数值为0时,输出Q为0状态。
表3-10 计数器指令
用“设置”输入S设置计数器时(在S信号的上升沿),如果加计数输入信号CU为1状态,即使CU没有变化,下一个扫描周期也会加计数。用“设置”输入S设置计数器时,如果减计数输入信号CD为1状态,即使CD没有变化,下一个扫描周期也会减计数。
计数器一般用来在计了预置值指定的脉冲个数后,进行某种操作。为了实现这一要求,Z简单的方法是首先将预置值送人减计数器,计数值减为0时,其常闭触点闭合,用它来完成要做的工作。如果使用加计数器,需要增加一条比较指令,来判断计数值是否等于预置值。
西门子S7-1200PLC模块广东代理商