3.2.2 计数器指令
1.计数器的数据类型
S7-1200有3种IEC计数器:加计数器(CTU)、减计数器(CTD)和加减计数器(CTUD)。它们属于软件计数器,其最大计数频率受到OB1的扫描周期的限制。如果需要频率更高的计数器,可以使用CPU内置的高速计数器。
IEC计数器指令是函数块,调用它们时,需要生成保存计数器数据的背景数据块。
CU(见图3-26)和CD分别是加计数输入和减计数输入,在CU或CD由0状态变为1状态时(信号的上升沿),当前计数器值CV被加1或减1。PV为预设计数值,Q为布尔输出,R为复位输入。CU、CD、R和Q均为Bool变量。
将指令列表的“计数器操作”文件夹中的CTU指令拖放到工作区,单击方框中CTU下面的3个问号(见图3-26的左图),再单击问号右边出现的按钮,用下拉式列表设置PV和CV的数据类型为Int。
PV和CV可以使用的数据类型见图3-26的右图。各变量均可以使用I(仅用于输入变量)、Q、M、D和L存储区,PV还可以使用常数。
图3-26 设置计数器的数据类型
2.加计数器
当接在R输入端的复位输入I1.1为FALSE(即0状态,见图3-27),接在CU输入端的加计数脉冲输入电路由断开变为接通时(即在CU信号的上升沿),当前计数器值CV加1,直到CV达到指定的数据类型的上限值。此后CU输入的状态变化不再起作用,CV的值不再增加。
CV大于等于预设计数值PV时,输出Q为1状态,反之为0状态。第一次执行指令时,CV被清零。各类计数器的复位输入R为1状态时,计数器被复位,输出Q变为0状态,CV被清零。图3-28是加计数器的波形图。
图3-27 加计数器
图3-28 加计数器的波形图
3.减计数器
图3-29中的减计数器的装载输入LD为1状态时,输出Q被复位为0,并把预设计数值PV的值装入CV。LD为1状态时,减计数输入CD不起作用。
LD为0状态时,在减计数输入CD的上升沿,当前计数器值CV减1,直到CV达到指定的数据类型的下限值。此后CD输入信号的状态变化不再起作用,CV的值不再减小。
当前计数器值CV小于等于0时,输出Q为1状态,反之Q为0状态。第一次执行指令时,CV被清零。图3-30是减计数器的波形图。
图3-29 减计数器
图3-30 减计数器的波形图
4.加减计数器
在加减计数器的加计数输入CU的上升沿(见图3-31),当前计数器值CV加1,CV达到指定的数据类型的上限值时不再增加。在减计数输入CD的上升沿,CV减1,CV达到指定的数据类型的下限值时不再减小。
如果同时出现计数脉冲CU和CD的上升沿,CV保持不变。CV大于等于预设计数值PV时,输出QU为1,反之为0。CV小于等于0时,输出QD为1,反之为0。
装载输入LD为1状态时,预设值PV被装入当前计数器值CV,输出QU变为1状态,QD被复位为0状态。
复位输入R为1状态时,计数器被复位,CV被清零,输出QU变为0状态,QD变为1状态。R为1状态时,CU、CD和LD不再起作用。图3-32是加减计数器的波形图。
二维码3-5
视频“计数器的基本功能”可通过扫描二维码3-5播放。
图3-31 加减计数器
图3-32 加减计数器的波形图