西门子S7—200系列plc的计数器分为一般用途计数器和高速计数器两大类。一般用途计数器用来累计输入脉冲的个数,其计数速度较慢,其输入脉冲频率必须要小于PLC程序扫描频率,一般最高为几百HZ,所以在实际应用中主要用来对产品进行计数等控制任务。高速计数器主要用于对外部高速脉冲输入信号进行计数,例如在定位控制系统中,位置编码器的位置反馈脉冲信号一般高达几KHZ,有时甚至达几十KHZ,远远高于PLC程序扫描频率,这时一般的计数器已经无能为力,PLC对于这样的高速脉冲输入信号计数采用的是与程序扫描周期无关的中断方式来实现的。由于篇幅有限,这里只介绍一般用途计数器。
1、计数器种类和编号
S7—200系列PLC的计数器有3种:增计数器CTU、增减计数器CTUD和减计数器CTD。
计数器的编号用计数器名称和数字(0~255)组成,即C×××,如C6。计数器的编号包含两方面的信息:计数器的位和计数器当前值。计数器位和继电器一样是一个开关量,表示计数器是否发生动作的状态。当计数器的当前值达到设定值时,该位被置位为ON。计数器当前值是一个存储单元,它用来存储计数器当前所累计的脉冲个数,用16位符号整数来表示,最大数值为32 767。
计数器的设定值输入数据类型为INT型。寻址范围:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数。一般情况下使用常数作为计数器的设定值。
2、计数器指令使用说明
计数器指令的LAD和STL格式如表所列。
表7.11 计数器指令的LAD和STL形式
格式 |
名称 | ||
增计数器 |
增减计数器 |
减计数器 | |
LAD |
|||
STL |
CTU C***, PV |
CTUD C***, PV |
CTD C***, PV |
(1)增计数器CTU(Count Up)
首次扫描时,计数器位为OFF,当前值为0。在计数脉冲输入端CU的每个上升沿,计数器计数1次,当前值增加一个单位。当前值达到设定值时,计数器位ON,当前值可继续计数到32 767后停止计数。复位输入端有效或对计数器执行复位指令,计数器复位,即计数器位为OFF,当前值为0。图1所示为增计数器的用法。需要注意:在语句表中,CU、R的编程顺序不能错误。
(2)减计数器CTD(Count Down)
首次扫描时,计数器位为OFF,当前值为预设定值PV。对CD输入端的每个上升沿计数器计数1次,当前值减少一个单位,当前值减小到0时,计数器位置位为ON,当前值停止计数保持为0。复位输入端有效或对计数器执行复位指令,计数器复位,即计数器位OFF,当前值复位为设定值。图2所示为减计数器的用法。
图1 增计数器指令
图2 减计数器指令
(3)增、减计数器CTUD(Count Up/Down)
增减计数器有两个计数脉冲输入端:CU输入端用于递增计数,CD输入端用于递减计数。首次扫描时,定时器位为OFF,当前值为0。CU输入的每个上升沿,计数器当前值增加1个单位;CD输入的每个上升沿,都使计数器当前值减小1个单位,当前值达到设定值时,计数器位置位为ON。
增减计数器当前值计数到32 767(最大值)后,下一个CU输入的上升沿将使当前值跳变为最小值(-32 768);当前值达到最小值-32 768后,下一个CD输入的上升沿将使当前值跳变为最大值32767。复位输入端有效或使用复位指令对计数器执行复位操作后,计数器复位,即计数器位OFF,当前值为0。图3所示为增、减计数器的用法。
图3 增减计数器指令