对于接收脉冲信号,中、大型PLC用高速计数单元,小型PLC用高速计数输入点,其它输入点也可处理,只是可以处理的脉冲频率低些。
1.小型PLC高速计数输入
小型PLC多有可处理脉冲量的I/O点。高速计数时,每组一般有3个输入点。如CPM2APLC可使用000通道的00、01、023个输入点处理脉冲量输入,进行高速计数。新型的小型PLC的这个功能及性能又有很大提升。如CQM1H型PLC还有高速计数的内插板,插入CPU单元的内,可处理4路、频率高达500kHz的高速计数。再如CJ1M机内置有多个脉冲输入、输出点。可进行多组、多种脉冲输入、输出操作。CP1H机是OMRON公司新推出的小型PLC,也有很强的高速计数功能。以下以CP1H机为例对小型PLC高速计数输入作简要介绍:
(1)高速计数模式。可按不同特点分类:
1)以计数信号分
(a)两相输入。有A、B及Z三相,用编码器输入脉冲,可能的一种接线如图5-6所示。
当A相超前于B相90°为增计数,反之为减计数。超前及滞后与旋转编码器的转动方向有关。这正反映了实际运动的情况。A、B相信号波形如图5-7所示。
图5-6 编码器接线
图5-7 A、B相信号波形
从图5-7可知,一个脉冲周期,其输入的脉冲数为4。计算其转动量及最高频率时,一定要考虑到这一点。编码器每旋转一圈发一个脉冲信号。Z相为复位信号,如需硬件复位时,要用到它。
(b)脉冲+方向输入。使用方向信号输入及脉冲信号输入,根据方向信号的状态(OFF/ON)将计数值相加或相减。
(c)加减脉冲输入。有两个输入点,一个输入正向脉冲,增计数,一个输入反向脉冲,减计数。
(d)单相输入。单相输入仅用一个脉冲输入端。有脉冲入,计数值即增加。
2)以计数范围分
(a)线性模式。在下限(-2147483648)与上限(2147483647)值之间计数。初始计数从0开始,如超过上限,则溢出;如超过下限,则下溢,并都停止计数。如果为加法模式计数,则下限为0,上限为4294967295(FFFFFFFF)。
(b)环形模式。在设定范围内对输入脉冲进行循环计数。如加计数,到最大值,则归0后再继续计数。如减计数,减到0,则先变为最大值,再继续减计数。设定的最大值不应超过二进制值FFFFFFFF。用环形模式计数,不存在负值。
3)以复位方式分
(a)软件复位。高速计数器复位标志OFF→ON时,将高速计数器当前位置复位,但要在赶上I/O刷新,即一个扫描周期后,才能实现复位,如图5-8所示。
图5-8 软件复位
(b)Z相信号+软件复位。高速计数器复位标志为ON的状态下,Z相信号(复位输入)OFF→ON时,将高速计数器当前值复位。它常用于对编码器做多圈计数的场合。图5-9所示为这种复位方式的定时图。
图5-9 Z相信号+软件复位定时图
此外,还可选定复位后高速计数器比较是否继续。
(2)高速计数特性。CP1H机有X/XA(内嵌有模拟量输入输出点)及Y型机。其高速计数特性见表5-1。高速计数使用的内存区见表5-2。
表5-1 高速计数特性
■区域分配
表5-2 高速计数使用的内存区
(3)高速计数器使用。首先要做好设定,确定计数模式、计数范围及复位方式;其次,要做好接线;最后,编写及调试程序。
1)设定。用CX-Program-mer编程软件,在设定窗口的“内置输入设置”画面上,如图5-10所示。对高速计数器0~3进行设定。设定后下载给PLC。
从5-10图可知,在该画面上可对是否使用高速计数器,以及使用的计数模式、输入模式及复位方式等进行设定。设定的范围见表5-3。
2)接线。图5-11所示为CP1H机高速计数器输入点布置图。如高速计数器0,其输入点为08、09、03点。其功能图上也有注明。接线就要注明接。
图5-12所示为使用OMRON E6B2-CWZ6C NPN开路输出的编码器与PLC输入点接线。用的24V直流电源。
图5-10 高速计数器设定画面
表5-3 高速计数器设定范围
图5-11 CP1H机高速计数器输入点布置
图5-12 E6B2-CWZ6C编码器与PLC输入点接线
3)编程。要在主程序中调用高速计数处理指令,同时还要编写高速计数中断服务程序。
(a)高速计数处理指令。有INI(动作控制)、PRV(当前值读取)、PRV2(频率转换)及CTBL(表比较)4个指令。
a)INI指令。可进行如下动作控制:开始或停止高速计数器比较,变更高速计数器当前值,变更中断计数器输入当前值。此外还可控制脉冲输出。其梯形图符号为:
这里,C1指定输入或输出端口,十六进制数0000为脉冲输出0、16进制数0001为脉冲输出1、十六进制数0010为高速计数器0、十六进制数0011为1,十六进制数1000为PWM输出0、十六进制数1001为PWM输出1,等等(具体因PLC型号而变)。C2为控制字,十六进制数0000为开始比较,十六进制数0001为停止比较,十六进制数0002为待变更的当前值,十六进制数0003为停止脉冲输出(在脉冲输出停止状态下将清除脉冲量设定)S、S+1两个字用以存储待变更的当前值。不是变更功能设为十六进制数0000,不使用。
b)PRV指令。主要用以读取高速计数器及脉冲输出当前值、频率、状态(是否溢出、是否进行比较)及比较结果。梯形图符号为
这里,C1指定输入或输出端口,同INI指令。D、D+1两个字用以存储读取值。C2为控制字,十六进制数0000(0000Hex)为读取当前值,0001Hex为读取状态,0002Hex为读取比较结果,00□3Hex为读取脉冲频率(□=0,通常方式;□=1,10ms采样方式;□=0,100ms采样方式;□=0,1s采样方式)。通常方式用每个脉冲计数时间的计数进行计算,但在高频时,脉冲上升沿/下降沿失真会引起误差(参考:100kHz时最大误差为1%。1MHz时的最大误差为5%,指定时间采样方式是用测量一定时间(采样时间)内的计数脉冲、计算频率,可选择3个时间,即具体为10ms、100ms及1s(计算该时间内的脉冲数)。
c)PRV2指令。把读取高速计数器中脉冲频率转换成转速,或把高速计数器的当前值转换成累计旋转数,并用8位十六进制数存储,但只能在高速计数器0中使用。其梯形图符号为
这里,C1指定转换项目,十六进制数1为当前值到累计旋转数转换,十六进制数0#∗0为频率旋转速度转换,其中#指定转速单位、∗指定频率计算方式。C2指定系数。D、D+1两个字用以存储转换结果值。
d)CTBL指令。用以登记与起动高速计数器当前值与设定值的比较。本指令执行一次即有效。其梯形图格式为
这里,C1指定输入或输出端口,十六进制数0000为高速计数器0,十六进制数0001为高速计数器1、十六进制数0002为高速计数器2、十六进制数0003为高速计数器3。C2为控制字,十六进制数0000为登录并起动目标值比较,十六进制数0001为登录并起动目标范围比较、十六进制数0002为登录目标值比较、十六进制数0003为登录目标范围比较。S开始的若干字用以存储有关比较参数。
如果为目标值比较,这里S开始的若干字含义为:
S指定多少个比较目标值,可在十六进制数0001~0030之间选取。
每个目标值比较固定占用3个字。第一个、第二个字为比较目标值,可以在十六进制数0000~FFFF之间选取,如使用多个目标值比较,这些目标值不能相同,同时不能把计数的上下限值作为目标值。第三个字指定增或减计数有效及中断任务号。其中高字节的最高位指定增、减计数有效,0为增计数有效,1为减计数有效;低字节指定中断任务号,可在十六进制数00~FF之间选取。
增减计数有效含义为,如设定增计数有效,只要高速计数器当前值增加到与目标值相等,则激发所指定的中断任务。如设定减计数有效,只要高速计数器当前值减少到与目标值相等,则激发所指定的中断任务。
这个目标值比较设定有多少字,取决于在S中指定。最多可扩展到S+142~S+144。
如果为目标范围比较,固定使用S~S+39共40个字。每个目标范围比较固定占用5个字,所以最多可进行8个范围比较。这5个字的含义为:
第一个、第二个字为比较范围下限,可以在十六进制数0000~FFFF之间选取。第三个、第四个字为比较范围上限,可以在十六进制数0000~FFFF之间选取,但必须大于下限。第5个字指定中断任务号。只要高速计数器当前值落入比较范围(含上、下限值),则激发所指定的中断任务。中断任务号,可在十六进制数00~FF之间选取。
如果不进行那么多比较,可把不进行比较的中断号设为十六进制数FFFF。
(b)程序实例。
a)图5-13所示为读脉冲频率程序。当0.01为ON时,执行PRV指令,在该状态下读取输入到高速计数输入0中的脉冲频率,由十六进制数输出到D200中。
提示:这里的C1、C2值,输入数字前要加“#”号,但早期机型不加“#”。以下各指令也类似。
图5-13 读脉冲频率程序
b)图5-14a所示为2个目标值比较程序。当0.00由OFF到ON时,执行CTBL指令,登录与起动比较。设定参数如图5-14b所示。从图知,本例设定为2个比较数。目标值分别为1F4及3E8Hex。对应的中断程序为1与2。中断程序的具体内容略。
提示:以上只是对指令的概要介绍,细节多与PLC型号、版本有关,可参阅有关说明书。建议在指令使用前最好先做些测试。
图5-14 读脉冲频率程序
a)2个目标值比较程序 b)参数设定
2.高速计数单元输入
中、大型PLC处理脉冲量输入都是用高速计数单元。该单元自配有CPU,可独立处理计数、比较以至于中断输出。然而,它又是通过总线与PLC的CPU挂接,故CPU也可向它读写数据,实现对高速计数的管理。
高速计数单元有不少类型,有单路的,仅处理一路高速计数;有多路的,可处理多路高速计数。
它的性能都比小型PLC高。如C200H CT001单元,其计数频率可高达50kHz或75kHz,甚至于更高。最大计数范围为-8388608~+8388607。虽然只能处理一路输入脉冲,但可进行多达16个比较,每个比较最多能产生16路输出,其中有8路还可不通过PLC的CPU,而由高速计数单元直接产生输出。
高速计数单元可用以进行脉冲计数,并能运用计数结果进行控制。
高速计数单元可安装在CPU机架或I/O扩展机架或远程从单元机架的I/O槽上,占用10个内部辅助继电器通道。具体占用的通道,依高速计数单元设定的机号确定,若机号为Q,则所占的开始通道号n为(100+10Q)。
C200H CT001单元还要占PLC100个数据存储器(DM),用以作参数设定。若机号为Q,则所占的开始DM起始号m为(1000+100Q)。
(1)输入。高速计数单元有两种输入:外部输入(即脉冲信号输入,以及复位输入或其它控制输入Z、IN1、IN2)和内部输入(即PLC对高速计数器的输出,有各种工作命令、设定的参数等)。
1)外部计数输入,一般有多种形式,如:
脉冲与方向式:输入A为脉冲信号,可使计数值变化;输入B为方向信号,可决定计数值是增,还是减。
增减脉冲式:输入A的脉冲使计数器增计数,而输入B的脉冲则使计数器减计数。
两相输入式:A、B为同频率的脉冲信号,并同接入计数器。若A相比B相超前90°,则使计数器增计数;反之,B相比A相超前90°,则为减计数。这种输入方式与旋转编码器转动方向对应,而且还可使计数值倍增,可乘2、乘4,自然也可不倍增。倍增后可提高计数的分辨率。是否倍增,倍增多少,可用模块上的DIP开关设定。
Z,IN1、IN2用于复位或进行计数控制。其作用依计数工作模式及模块上的DIP开关的设定确定。输入信号电压有5V、12V、24V,可依信号发生器选定。选定后,要按要求接线。
2)内部输入指PLC向它输出的工作命令及设定参数。
工作命令来自被其占用的内部辅助继电器,有开始计数命令,用n通道00位,ON计数(n为所占用的内部辅助继电器的始通道);
传送数据命令,用n通道01位,ON传数;
外部输出使能命令,用n通道02位,ON允许向外输出;
改变设置范围或预置值命令,用n通道04位,ON进行改变;
读出错码命令,用n通道05位,ON进行读错码,读出错码及出错地址存(n+5)通道;计数器内部复位命令,用n通道06位,ON发内部复位信号;
强迫外部输出使能命令,用n通道07位,ON允许内部强迫输出;
0~#7输出位强迫输出命令,对应地用n通道08~15位,ON时,可向对应位发输出ON命令;比较范围使能命令,用(n+1)通道,相应位ON,则对应的比较范围的比较有效,等等。不过,计数模式不同,所用的命令也不完全相同,使用时要注意。
设定参数来自由它占用的DM,有计数模式设定,用的DM号为m,有6种设定与硬件对应;比较数的上、下限及输出有效位设定。它所用的DM号依计数模式而定。
另外,已设定的参数还可进行改变。替代的数存于内部辅助继电器有关通道。改变过程由执行改变命令实现。(www.xing528.com)
(2)输出。有外部输出,作用于单元的输出端点,可直接实现对工作对象的控制;还有内部输出,把信号送向PLC,由PLC再进行输出或处理。故它对于PLC,就是从计数单元的输入。
1)外部输出,有8个,即#0~#7。高速计数单元有自己的处理单元,不仅可计数,而且当输出使能信号ON时,可依计数值与比较范围的比较结果直接在#0~#7端产生相应的输出;或强制输出使能ON时,依强制输出信号情况,产生相应的输出。
直接输出可提高输出对输入的响应速度,提高工作精度。
2)内部输出,也有8个,分别输出到PLC(n+9)通道的08~15位,而且在外部输出出现的同时,其信号也送向PLC,送向上述通道的00~07位。这些信号送入PLC后,可通过PLC程序,间接用于控制。但它要在扫描周期I/O刷新阶段才能输出,故在时间上是有滞后的。
此外,计数器的当前值也要送PLC,送到(n+6)、(n+7)两个通道。另外,还有很多标志,如进行计数标志,IN1、IN2ON标志,复位标志,出错情况标志,等等,也要送PLC。PLC可通过程序运用这些信息,对计数工作进行监控。
(3)计数模式。有六种计数模式:
1)线性计数模式可用三种输入模式的任何一种进行增减计数。从0开始计:增,最大可计到+8388607;减,最小可计到-8388608。可知,这里用的是带符号位的24位二进制的计数器,折合成十六进制为6位。
线性计数模式,其计数值超过上下限时,视为计数错误。
本模式可设定16组比较上下限,每次比较最多可产生16个输出。具体产生输出的情况是,当计数器的当前值大于某下限,而又小于该组的上限时,与输出有效位设定为1的对应的输出位,即转为ON。
输出有效数设定及比较的上下限有16组(对应于可进行16个比较),每组占5个数据存储器,共占80个。这80个的编号为DM(m+10)~DM(m+89)。从DM(m+10)起,依次相邻的5个为一组。
每一组依次的第五个DM存输出有效位设定,第一、二个存低限数,第三、四个存高限数(上下限均为超过4位的十进制数,并带符号位)。
在输出有效位设定的DM中,哪一位设为1,对应于高计数值落入这个组的上下限之间时,哪一个输出即变为ON。
如某个组输出设定有效位:00位为1,02位为1,其它位为0,上限为1000,下限为900。那么,计数器当前值为900~1000之间时,#0、#1输出点可能ON(还要看输出使能信号)。当然,其它组也可作别的设定。如另一组,输出设定:01、02为1,其它位为0,上限为1200,下限为1100。那么,计数器当前值为1100~1200之间时,输出点#1、#2可能ON。这两种情况下,#1输出点均ON。所以,输出点的ON状态,是各组ON输出的“或”,对于这一点,使用时要弄清楚。
当然,不进行16个比较,每个比较时不产生16个输出也是完全可以的,把不须产生输出的对应位设成0即可;而对不需进行比较的组,把输出位设定成全0也就可以了;或者也可把对应比较范围使能信号置成0。
本模式下进行计数器复位的方法有17种,可组合使用Z、IN1及内部复位信号,也可单独使用其中的一个,由DIP开关的设定来确定。
附带要提及的是,尽管作了以上设定,但也可通过传送操作而改变若干设定值或计数器的当前值,可使用计数器实现对工作对象的控制更为灵活。
图5-15所示为计数时信号波形。
图5-15 线性计数信号波形
注:a—正常输出 b—强制输出
从图5-15可知:
(a)计数开始于计数起始信号上升沿,而终止于它的下降沿。终止后,内部或外部输出状态保留。
(b)外部输出使能信号OFF,外部输出被禁止,但内部输出不受影响。
(c)当强迫输出使能位ON,即n通道07位ON时,可使强迫输出位的状态实现输出。强迫输出位的状态存于被高速计数器占用的内部辅助继电器n通道的08~15位(分别对应于#0~#7输出点)。如强迫输出使能位ON,这时若通道08位为1,则#0端输出ON,若08位为0,即#0OFF。其它位的情况,也与这类似。
(d)在计数起始信号有效期间,要产生正常的计数输出,强迫输出使能无效。
2)循环计数模式:计数器在0与预置的最大值之间计数。增计数超过最大值时,又从0开始计数;减计数小于0时,返回到最大值,再减计数。其特点是可以循环计数。其预置最大值的选用范围为0~65535。其输出、复位、DM设置、IR中命令等,均与线性计数模式相同。
3)预置计数模式:它从预置值(最大可预置值为8388607)开始计数(可增计数、可减计数,但主要是减计数),允许有20个预置值,而且可用传送命令一次更新其中的6个预置值。
输出仅7个。原8个可对外输出中的#0输出计数一开始即转为ON,计数到设定的某值时转为OFF。#1、#2的ON、OFF也有值限,也可设定;#3输出不用;#4~#7用于产生与预置对应的输出。当计数器从预置值开始减计数,到零时,#4~#7依其输出是否有效的设定,将产生输出。
#4~#7输出ON的时间,由DM(m+11)设定,单位为0.01s。若其内容设为FFFF,则ON到下一个开始起动为止。
预置值及输出有效位设定有20种(#0~#19),每种占两个DM,从DM(m+14)直到DM(m+53)共40个。每隔两个,依次用于#0~#19的设定。
其中两个,如DM(m+14)及DM(m+15)为#0比较设定,约定是:
+14的15~00位及+15的11~00位存预置值,最大为8388607(转换成二进制存放)。
+15的15~12位对应#4~#7输出有效。如12位为1,则#4输出有效,即从用这里设置的预置值减计数到零时,#4输出ON,并ON保持相应的时间;若12位为0,#4不产生输出。13位对应于#5输出,其余类推。
使#0输出OFF的值(计数器当前值小于它时)存于DM(m+1)及DM(m+2)中,m+2中存高位。使#1输出ON的上限值(计数器当前值小于和等于它时)存于DM(m+3)及DM(m+4)中,m+4中存高位。下限值(计数值当前值大于和等于它)存于DM(m+5)及DM(m+6)中,m+6中存高位。
使#2输出ON的上限值(含义同#1)存于DM(m+7)及DM(m+8)中,m+8中存高位。下限值(含义同#1)存于DM(m+9)及DM(m+10)中,m+10中存高位。
可见#0、#1、#2三个输出点总是要使用(自然,也还可被输出使能OFF命令所禁止),但#4~#7四个输出点,则要依对输出有效位的设定情况而定。可以四个都用,也可只用其中的若干个。
预置计数模式时占用的内部辅助继电器的使用情况为:
通道n:
00位———起始计数命令位。它的上升沿,使计数器的当前值置为预置值,并使#0输出点ON。当选用预置命令OFF时,默认使用#0的预置值及有效位的设置。另外,起始位OFF仍有保持计数作用。这点与前两个模式不同。故要停止计数须另用复位命令,不能只使用起始命令OFF,如图5-16所示。
01位———传数命令,ON可改变DM(m+14)~DM(m+53)的预置值。
02位———输出使能,ON允许输出,OFF时禁止输出。
03位———未用。
04位———选用预置值命令,在起始命令ON之前,04位ON,可选定20种中的一种预置值。这所选的20种的一种的编号存于(n+1)通道的15~08位。
05位———读出错命令位。
06位———复位命令位,ON时,使计数器复位,当前值转为零。预置计数模式可用五种复位方式复位。可用内部复位方式,即用这里的复位命令位;也可用IN1控制信号;也可联合使用。图5-16为内部复位方式。
07位———强制输出使能位。08~15位———对应于#0~#7输出点的强迫输出信号。
(n+1)通道:
07~00位未用
15~08位在0到19间,设预置数。
(n+2)通道:
传送数据源通道的起始号。
(n+3)通道:
03~00位指定源数据的存放区,其含义为0—DM、1—I/O、2—LR、3—HR、4—AR。07~04位,未用。
15~08位,可设置成1~6,相应地可传送1~6种预置值。
这里,(n+2)、(n+3)通道的使用与线性计数及循环计数模式时的使用相同。(n+4)、(n+5)、(n+6)、(n+7)的使用,基本上与线性及循环模式的相同。(n+4)的08~15位,原未用,现改为#0~#7输出标志,即对内输入。(n+8)的15~08位,存当前预置值进行计数的号,即20种中的1种,#0~#19。其它的虽占用,但未被使用。
图5-16所示为计数信号及计数值、输出等按时间对应的波形。
从图5-16可知:
(a)起始位上升沿使计数器当前值变为预置值,并开始计数。
(b)当输出使能OFF时,输出被禁止。但对内输出不受影响(n+4通道的08~15位)。
(c)本例设内部复位有效,故复位位ON时,计数器复位,当前值变为0,停止计数。
(d)强迫输出使能仅在不计数时才有效。
图5-16 预置计数信号波形
(e)强迫输出期间,若起始计数信号ON,则回到正常计数的状态,即又从预置值起始计数,并使强迫输出停止工作。
(f)强迫输出时,复位信号ON后,先使外部输出OFF,然后恢复为正常的强迫输出状态。
4)门控计数模式
门控计数模式有两种:一为正常的,另一为可累计的。
正常的门控计数模式:当控制信号IN1ON时开始计数,OFF时,停止计数,重新ON,又从零开始计数。
IN1信号可为外部信号,也可为内部信号,由DM设定。
门控计数模式时,占用的DM仅DMm及DM(m+1)两个。其情况是:DMm的11~08位设成4,设定为门控计数模式,其它位未用。DM(m+1)的03~00位,设成0时外部IN1、IN2有效,设成1时内部IN1、IN2有效。内部IN1、IN2用的内部辅助继电器,见后。07~04位未用,设成0。11~08位,设定门控计数的两种类型:0时为正常的门控计数模式;1时为累计门控计数模式,15~12位未用,设成0。其它的DM位均未用。
对内部辅助继电器也仅用其5个通道。其情况是:
通道n:
00位~02位———未用
03位———内部控制信号IN1
04位———内部控制信号IN2
05位———读出错命令位
15~06位———未用
通道(n+4):
00位———计数标志
01位~02位———未用
03位~04位———IN1、IN2标志
05位———出错标志
06位———计数值溢出,即计数值在-8388608~+8388607范围之外
15位~07位———未用
通道(n+5):
记录出错信息
通道(n+6)、(n+7):
存计数器当前值
5)闩锁计数模式
它的计数用IN1上升沿起动计数,起动计数后计数不停地进行,再送入IN1,将使计数又从零开始。
IN2控制闩锁,其上升沿起作用。上升沿进行闩锁,即在反映计数值的内部辅助继电器中被闩锁住,保持不变,而计数器计数不受影响。而再送入IN2,其上升沿又使当时计数值读入内部辅助继电器中,并又被闩锁住。
闩锁计数模式时DM、IR的使用情况,与门控的类似,只是计数模式设成5。
6)采样计数模式
采样计数模式是在给定的时间内进行计数。给定时间也称为采样时间,此时间值存于内部辅助继电器的(n+1)通道,并由n通道的01位时间设置信号使能。
计数的起动控制用IN1的上升沿。在起动计数前,采样时间可由时间设置信号使能,送入新值。自然,这时(n+1)通道的内容要作改变。
在采样时间相同时,其计数值代表速度,故这种计数模式可用于检测脉冲频率。
采样模式时的DM、IR的其它使用同门控制时的情况,只是计数模式设成6。
应该指出的是,4~6三种模式都没有外部输出,只能通过PLC的输出点产生输出,这在响应速度上是要受扫描周期影响的,故出于快速响应的要求,一般不用这三种模式。
提示:以上只是一种PLC的一种高速计数模块。其实,每种中大型PLC多都有几种不同规格与特性的高速计数模块,其细节与这里介绍的不可能完全相同。要准确使用可参阅有关说明书。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。