在S7-1200有3种计数器:加计数器(CTU)、减计数器(CTD)和加减计数器(CTUD)。
这三个属于软件计数器,其最大计数速率受到它所在的OB的执行速率的限制。如果需要速度更高的计数器,可以使用CPU内置的高速计数器。调用计数器指令时,需要生成保存计数器数据的背景数据块。CU和CD分别是加计数输入和减计数输入,在CU或CD由0状态变为1状态时(信号的上升沿),实际计数值CV被加1或减1。复位输入R为1状态时,计数器被复位,CV被清零,计数器的输出Q变为0状态。CU、CD、R和Q均为Bool变量。
将指令列表的“计数器操作”文件夹中的CTU指令拖放到工作区,单击方框中CTU下面的3个问号(见图4-24左),再单击问号右边出现的按钮,用下拉式列表设置PV和CV的数据类型。
图4-24 设置计数器的数据类型
PV为预置计数值,CV为实际计数值,它们可以使用的数据类型见图4-24。各变量均可以使用I(仅用于输入变量)、Q、M、D和L存储区。
1.加计数器
当接在R输入端的复位输入I1.1为0状态(见图4-25),接在CU输入端的加计数脉沖输入电路由断开变为接通时(即在CU信号的上升沿),实际计数值CV加1,直到CV达到指定的数据类型的上限值。此后CU输入的状态变化不再起作用,CV的值不再增加。
图4-25 加计数器
实际计数值CV大于等于预置计数值PV时,输出Q为1状态,反之为0状态。第一次执行指令时,CV被清零。各类计数器的复位输入R为1状态时,计数器被复位,输出Q变为0状态,CV被清零。图4-26是加计数器的波形图。
2.减计数器
减计数器的装载输入LOAD为1状态时,输出Q被复位为0,并把预置计数值PV的值装入CV。在减计数器输入CD的上升沿,实际计数值CV减1,直到CV达到指定的数据类型的下限值。此后CD输入的状态变化不再起作用,CV的值不再减小。
实际计数值CV小于等于0时,输出Q为1状态(见图4-27),反之Q为0状态。第一次执行指令时,CV被清零。图4-28是减计数器的波形图。
图4-26 加计数器的波形图(www.xing528.com)
图4-27 减计数器
3.加减计数器
在加计数输入CU的上升沿,实际计数值CV加1,直到CV达到指定的数据类型的上限值。达到上限值时,CV的值不再增加。在减计数输入CD的上升沿,实际计数值CV减1,直到CV达到指定的数据类型的下限值。达到下限值时,CV的值不再减小。
图4-28 减计数器的波形图
如果同时出现计数脉冲CU和CD的上升沿,CV保持不变。CV大于等于预置计数值PV时,输出QU为1(见图4-29),反之为0。CV小于等于0时,输出QD为1,反之为0。
图4-29 加减计数器
装载输入LOAD为1状态时,预置值PV被装入实际计数值CV,输出QU变为1状态,QD被复位为0状态。
复位输入R为1状态时,计数器被复位。实际计数值CV被清零,输出QU变为0状态,QD变为1状态。
R为1状态时,CU、CD和LOAD不再起作用。图4-30是加减计数器的波形图。
图4-30 加减计数器的波形图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。