xhgji
级别: 正式会员
精华主题: 0
发帖数量: 12 个
工控威望: 96 点
下载积分: 571 分
在线时间: 0(小时)
注册时间: 2010-06-28
最后登录: 2015-12-03
查看xhgji的 主题 / 回贴
楼主  发表于: 2010-06-28 10:52
你用的是什么类型的计数器?比如, 有加法计数器(它们只能正向计数1,2,3,...). 它们在英语中被缩写为CTU(count up, 升值计数), CNT, C, 或者CTR. 有减法计数器(它们只能逆向计数9,8,7,...). 当它们作为一条独立的指令时, 通常被叫做CTD(count down, 减值计数). 还有双向计数器(它们可双向计数1,2,3,4,3,2,3,4,5,...). 当它们作为一条独立的指令时, 通常被叫做UDC(up-down down counter, 加-减计数器).
     许多厂家只有一种或两种类型的计数器, 但这些计数器应能完成加计数, 减计数或双向计数. 是不是有些混淆了? 难道就没有一相标准吗? 不要担心, 计数器就是计数器, 不要管生产商怎样称呼它们.
     更容易引起混淆的是, 大多数的生产商还加入了一定数量的高速计数器. 通常叫它们HSC(high-speed counter),CTH(CounTer High-speed?)或者别的名称.
     典型的高速计数器是一个"硬件"设备. 而上面所列的普通计数器多是"软件"计数器. 换句话说, 它们并不是真正存在于PLC中, 它们只是用软件模拟的计数器. 而硬件计数器却是真正存在于PLC中的, 它们不依赖PLC的扫描时间.
     按照拇指理论(rule of thumb), 一般情况下多使用普通(软件)计数器, 除非所要计数的脉冲比2倍的扫描时间还要快. (例如扫描时间为2ms, 而所计脉冲每4ms或更长时间才来一次, 那么此时我们使用软件计数器. 如果脉冲间隔小于4ms(例如3ms), 那么使用硬件(高速)计数器. (2*扫描时间 = 2*2ms = 4ms)
xhgji
级别: 正式会员
精华主题: 0
发帖数量: 12 个
工控威望: 96 点
下载积分: 571 分
在线时间: 0(小时)
注册时间: 2010-06-28
最后登录: 2015-12-03
查看xhgji的 主题 / 回贴
1楼  发表于: 2010-06-28 10:53
要使用计数器, 我们必须知道以下三件事情:
     1. 我们要计数的脉冲来自哪里. 典型情况下, 它来自一个输入端子. (例如将一个传感器接到输入端0000)
     2. 在作出响应前, 我们要计多少次. 例如计数5个玩具装入后开始打包.
     3. 何时/怎样复位计数器, 以便让它重新计数. 例如, 我们计数5个玩具后, 将计数器复位.
     当程序在PLC上运行时, 程序通常会显示当前或"累计"值, 以便于我们观察当前的计数值.
     典型计数器的计数范围为0到9999, -32768到+32767, 或0至65535. 为什么都是些这么古怪的数字呢? 因为大多数PLC都是用的16位计数器. 0-9999是16位BCD(binary coded decimal, 二进制编码的十进制)码, -32768到32767和0到65535是16位二进制码, 我们在以后的章节会解释这是什么意思.
xhgji
级别: 正式会员
精华主题: 0
发帖数量: 12 个
工控威望: 96 点
下载积分: 571 分
在线时间: 0(小时)
注册时间: 2010-06-28
最后登录: 2015-12-03
查看xhgji的 主题 / 回贴
2楼  发表于: 2010-06-28 10:53
下面介绍一些我们将会碰到的指令符号(不同的厂家会有所不同), 并说明它们的用法. 记住, 它们虽然看起来不同, 它用法基本都是相同的. 如果我们会设置一个计数器, 我们就会设置任意的计数了.
    在这个计数器中, 我们需要2个输入. 一个接复位线. 当该输入端为ON时, 当前(累积)计数值将被清零.
第二个输入接的是我们要计数的脉冲.
     例如, 我们要对经过传感器前面的玩具计数, 我们将传感器接到输入端0001, 然后将地址为0001的常开触点接在脉冲线的前面.
     Cxxx是计数器的名称. 如果我们想叫它计数器000, 那么在这里我们叫它"C000".
     yyyyy是我们在要求PLC做出响应前所要计的脉冲数. 如果我们在将玩具打包前要计5个玩具, 那么我们要该值改为5. 如果我们要计100个玩具, 那么就将该值改为100, 等等. 当计数器计数完毕(例如, 我们计数了yyyyy个玩具), 它将一组独立的触点变为ON, 我们也将它标为Cxxx.
     注意, 计数器的累加值仅在脉冲输入的上升沿发生变化.

    在上面的梯形图中, 我们将计数器(叫做计数器000)设置为从输入0001计数100个玩具, 然后使输出500变为ON. 传感器0002将计数器复位.
xhgji
级别: 正式会员
精华主题: 0
发帖数量: 12 个
工控威望: 96 点
下载积分: 571 分
在线时间: 0(小时)
注册时间: 2010-06-28
最后登录: 2015-12-03
查看xhgji的 主题 / 回贴
3楼  发表于: 2010-06-28 10:54
下面是我们会碰到的一个双向计数器. 我们使用于上例相同的缩写(例如UDCxxx和yyyyy).

     在这个双向计数器中, 我们需要使用3个输入端. 复位输入的功能与上例相同. 但是, 对于脉冲输入有两个.一个是加计数, 一个是减计数. 在这个例子中, 我们把这个计数器叫做UDC000, 并且给它一个预设值1000. (我们共要计数1000个脉冲) 在输入端, 我们给输入端0001接上一个传感器, 当它检测到目标时, 使输入端0001变为ON, 给输入端0003也接上一个相同的传感器. 当输入端0001变为ON时, PLC正向计数, 当输入端0003变为ON时, PLC逆向计数. 当计数值到达1000时, 输出端500变为ON. 再次提醒注意的是, 计数器的累计值仅在脉冲输入的下降沿改变.梯形图如下所示.

    还有一件事要特别注意, 在大多数的PLC中计数器和定时器的名称是不一样的. 这是因为它们通常使用相同的寄存器. 虽然我们还没有学到定时器, 但我们必须记住这一点, 因为它的确很重要.
     好了, 上面讲的计数器可能有点难以理解, 但只要我们用过一次, 它们看起来就容易多了. 它们的确是一种必要的工具. 它们也是"非标准"基本指令之一. 但是,有一点要记住, 不管是哪个厂家生产的, 用法都是一样的.
xhgji
级别: 正式会员
精华主题: 0
发帖数量: 12 个
工控威望: 96 点
下载积分: 571 分
在线时间: 0(小时)
注册时间: 2010-06-28
最后登录: 2015-12-03
查看xhgji的 主题 / 回贴
4楼  发表于: 2010-06-28 10:55
此内容仅供新手参考一下