高速计数器控制指令.ppt
高速计数器控制指令,高速计数器控制指令,高速计数器概述,高速计数器控制指令,高速计数器的计数功能,高速计数器的中断功能,CPM1A系列PLC设置了高频脉冲输入点,配合相关指令及必要的设定,可以对高频脉冲进行处理。,可以用高速计数器对高频脉冲进行计数。,可以用高速计数器实现中断处理。,一、高速计数器概述,CPM1A系列PLC的高频脉冲输入点是0000000002。,高频脉冲可来源于控制现场,也可由旋转编码器提供。,旋 转 编 码 器,一种旋转编码器与PLC的连接示意图,两相脉冲,单相脉冲,1 2 3 4 5 6 7 8 7 6 5 4 3 2 1 0,有的旋转编码器可提供三相脉冲,即A、B、Z相。,各种脉冲信号的波形,A超前B,A滞后B,二、高速计数器的计数功能,高速计数器的计数模式,计数器当前值的存储区,高速计数器的复位方式,使用高速计数器时的设定,高速计数器的溢出,1.高速计数器的计数模式,高频脉冲由PLC的00000输入点输入,在输入计数脉冲的前沿,高速计数器的当前值加1。,(1)递增计数模式,最高计数频率是5 KHz,计数范围是065535(000000000000FFFF),增减计数的最高计数频率是2.5 KHz,计数范围是-32767+32767(F0007FFF00007FFF,第一位的F表示负数)。,(2)增减计数模式,在增减计数时可使用旋转编码器。旋转编码器的A 相脉冲接00000 输入点,B 相脉冲接00001输入点,复位Z信号接在00002输入点。,递增计数:当A相超前B相90时,在A、B相脉冲的前沿,计数器的当前值加1。,递减计数:当B相超前A相90时,在A、B相脉冲的前沿,计数器的当前值减1。,2高速计数器的复位方式,高速计数器复位时,其当前值为0。,若高速计数器的复位标志位25200先ON时,在复位Z信号ON的前沿时刻,高速计数器复位;,若复位Z信号先ON时,在25200 ON后一个扫描周期时,高速计数器复位。Ts是扫描周期。,(1)Z信号+软件复位,(2)软件复位,当25200 ON一个扫描周期后高速计数器复位。,另外,当PLC断电再上电时高速计数器自动复位。,3使用高速计数器时的设定,使用高速计数器前必须进行必要的设定,否则使用无效。,对CPM1A系列PLC,设定值写入DM6642中。,不能用程序写入设定值(用编程工具)。,用设定值确定高速计数器功能是否使用、复位方式、计数模式等。,高速计数器的设定,例如:DM6642的内容为#0114,使用高速计数器,软件复位,递增计数,4.高速计数器的溢出,当高速计数器计数时:,若从下限开始进行递减计数就会发生下溢出,其当前值为FFFF FFFF。,重新复位高速计数器时,将清除溢出状态。,若从上限值开始进行递增计数就会发生上溢出,其当前值为0FFF FFFF;,发生溢出时计数器停止计数。,5高速计数器的当前值存储区,对CPM1A系列PLC,高速计数器的当前值存放在SR248和SR249中。,在高速计数器执行高速计数操作后,可以利用指令从SR248和SR249中读出其当前值,也可以利用指令更改其当前值。,SR248存放低4位,SR249存放高4位。,二、高速计数器的中断功能,高速计数器中断功能有两种模式,区 域比较中断模式,目标值比较中断模式,1高速计数器的目标值比较中断,最多放16个目标,采取目标值比较中断时,要建立一个目标值比较表,在高速计数器计数过程中,若其当前值与比较表中某个目标值相同时,则停止执行主程序而转去执行与该目标值对应的子程序。,表中数据可预先写入,子程序执行完毕,返回到断点处继续执行主程序。,2高速计数器的区域比较中断,采取区域比较中断时要建立一个区域比较表,表中数据可预先写入,当实际使用的区域不满8个时,要把其余存放上、下限值的通道都置为0,将存放子程序号的通道都置为FFFF。,区域比较中断的执行过程,若高速计数器的当前值落在比较表中某个区域时(下限值 计数器PV值上限值),则停止执行主程序而转去执行与该区域对应的中断子程序。子程序执行完毕,返回到断点处继续执行主程序。,执行区域比较中断时,比较结果存放在AR1100AR1107中。,例如,当计数器的当前值落在比较表的区域1中时,AR1100置为ON,当计数器的当前值落在比较表的区域2中时,AR1101置为ON等。,三、高速计数器控制指令,P:端口定义(000)C:控制数据 TB:比较表首通道,C的含义,比较表登录指令,000:登录一个目标值比较表,并启动比较。001:登录一个区域比较表,并启动比较。002:登录一个目标值比较表,用指令INI启动比较003:登录一个区域比较表,用指令INI启动比较,P:端口定义(000)C:控制数据 P1:设定值首通道,C的含义,操作模式控制指令,000:启动CTBL定义的比较表(P1固定为000)。001:停止CTBL定义的比较表(P1固定为000)。002:更新高速计数器的当前值。将P1+1(高4位)、P1(低4位)传送到IR248和249中,作为高速计数器的新当前值。003:停止脉冲输出(P1固定为000)。,P:端口定义(000)C:控制数据(000)D:目的首通道,读出当前值指令,读出的当前值低4位放在D,高4位放在D+1中。,配合上述各指令,可以编写使用高速计数器的程序。,高速计数器目标值比较中断,使用高速计数器举例,中断处理子程序也要放在主程序之后、END之前。,登录比较表、启动比较,设DM6642的内容为#0104表示使用高速计数器、递增计数、Z信号+软复位。,若高速计数器的当前值等于目标值1时,中断主程序而执行010号中断子程序:把#5000传送到HR00中。子程序执行完毕返回断点处继续执行主程序。,若高速计数器的当前值等于目标值2时,中断主程序而执行011号中断子程序:将HR00与HR10中的内容进行一次比较,若HR00的内容大于HR10时,01101为ON。子程序执行完毕返回断点处继续执行主程序。若00100 ON且有Z信号时,高速计数器复位。,高速计数器区域比较中断,使用高速计数器举例,登录比较表、用INI启动,设DM6642 的内容为 0100,表示使用高速计数器、增减计数方式、复位方式是采用Z信号+软复位。,高速计数器控制指令小结,1.高速计数器的计数功能,(1)高速计数器的计数模式可分为递增计数和增减计数(可配合使用旋转编码器)两类。,(2)高速计数器的复位可分为软件复位和Z+软件复位两种方式。Z信号由旋转编码器提供。,(3)使用高速计数器必须在DM6642中进行设定,以确定使用/不使用高速计数器、计数模式、复位方式,(4)使用高速计数器时,SR248、249存放计数器当前值,不可另作它用。,2.高速计数器的中断功能,(1)高速计数器的中断分为目标值比较中断和区域比较中断。,(2)使用两种比较中断时,要用指令CTBL确定一个比较表,以确定启动比较的方式(直接或用INI启动)及子程序号。,(3)用指令INI可以改变计数器的当前值或停止比较。,(4)用指令PRV可以读出计数器的当前值。,3.注意执行各种指令时对标志位的影响。,