欧姆龙高速计数器.ppt
《欧姆龙高速计数器.ppt》由会员分享,可在线阅读,更多相关《欧姆龙高速计数器.ppt(111页珍藏版)》请在三一办公上搜索。
1、,任务九 程序控制指令,任务九 程序控制指令,学习目标:,1.掌握可编程序控制器程序控制指令的功能和使用方法 2.熟练使用程序控制指令编写程序,教学内容:,任务九 程序控制指令,9.1 子程序控制指令,9.2 高速计数器控制指令,9.4 中断控制指令,9.3 脉冲输出控制指令,9.5 步进控制指令,9.6 特殊指令,9.1.1 子程序调用、子程序定义、子程序返回指令,SBS是于程序调用指令,SBN和RET是子程序定义和子程序返回指令。所编写的子程序应该在指令SBN和RET之间。主程序中,在需要调用于程序的地方安排SBS指令。若使用非微分指令SBS时,在它的执行条件满足时,每个扫描周期都调用一次
2、子程序。若使用SBS时只在执行条件由OFF变ON时调用一次子程序。所有子程序必须放在主程序之后和END之前。若子程序之后安排了主程序,则该段主程序不被执行。因为CPU扫描用户程序时,只要见到SBN则认为主程序结束,在编写程序时一定要注意这一点。,9.1 子程序控制指令,任务九 程序控制指令,9.1.1 子程序调用、子程序定义、子程序返回指令,任务九 程序控制指令,例一,任务九 程序控制指令,例二,任务九 程序控制指令,例三,任务九 程序控制指令,宏指令,任务九 程序控制指令,宏指令也是调用子程序的指令。宏指令的子程序的操作数只是形式上的操作数,在调用于程序时才赋予它们确定的数据。宏调用的于程序
3、也是用SBNRET来定义。与上述子程序的安排相同,子程序必须放在:程序之后和END指令之前。在使用MCRO指令时,通道232239已经被系统占用,用户不要再使用这几个通道。,任务九 程序控制指令,本节小结,编写子程序调用程序时要注意以下几点 所有子程序都必须放在主程序之后和END指令之 主程序调用各子程序的次数没有限制。子程序可以嵌套调用,即子程序中又调用别的子程 序。但是嵌套不能超过16级,且子程序不能自调用。要特别注意子程序执行完毕的返回地址。,9.2.1 旋转编码器,9.2 高速计数器控制指令,任务九 程序控制指令,PLC在进行高速计数时,有时会用到旋转编码器。旋转编码器能输出脉冲信号,
4、高速计数器配合使用旋转编码器,可以用于测量、处理转动或位移信号等。不同型号的旋转编码器输出的脉冲也不相同,有的旋转编码器能产生单相脉冲信号,如图(a)所示,其最高频率是5kHz,对应每个脉冲信号的前沿,高速计数器计数;有的旋转编码器能产生相位差为90。的两相脉冲信号,如图 下(b)所示,其最高频率是25kHz。至于A相和B相脉冲谁超前、谁滞后,这取决于旋转编码器的旋转方向。对应每个脉冲信号的前沿和后沿高速计数器计数。有的旋转编码器还能产生一个复位z信号。,旋转编码器的输出信号波形,任务九 程序控制指令,2.高速计数器的计数功能,1高速计数器的计数模式2高速计数器的复位方式,任务九 程序控制指令
5、,(1)高速计数器的计数模式,高速计数器有递增计数和增减计数两种计数方式。递增计数模式 增减计数模式,任务九 程序控制指令,递增计数模式,递增计数时,被计数的高频脉冲信号由PLC的00000输入点输入。这个脉冲信号可以是外部被计数的事件提供的信号,也可以是旋转编码器提供的单相脉冲信号。在输入计数脉冲信号的前沿,高速计数器的当前值加1。递增计数的最高计数频率是5kHz,递增计数的计数范围是065535(000000000000FFFF)。,任务九 程序控制指令,增减计数模式,在增减计数时可使用旋转编码器,旋转编码器的A相脉冲接在PLC的00000输入点,B相脉冲接在00001输入点,复位Z信号接
6、在00002输入点。递增计数:当A相超前B相90时,在A、B相脉冲的前沿,计数器的当前值加l。递减计数:当B相超前A相90时,在A、B相脉冲的前沿,计数器的当前值减1。增减计数的最高计数频率是2.5kHz,计数范围是32767+32767(F0007FFF一00007FFF,第一位的F表示负数)。,任务九 程序控制指令,3.高速计数器的复位方式,高速计数器复位时,其当前值PV0。CPM1A系列PLC的高速计数器有两种复位方式。(1)硬件复位Z信号+软件复位 这种复位分两种情况:其一,若高速计数器的复位标志位25200先为0N时,在复位z信号0N的前沿时刻,高速计数器复位;其二,若复位Z信号先O
7、N时,在252000N后一个 扫描周期时,高速计数器复位,如图(a)所示。图中Ts是扫描周期。(2)软件复位 当25200为ON一个扫描周期后高速计数器复位,如图(b)所示。另外,当PIC断电再上电时高速计数器会自动复位。,任务九 程序控制指令,4.高速计数器的设定,使用高速计数器前必须进行设定,不经过设定高速计数器是不工作的。对CPM1A系列的PLC,其设定值放在DM6642中(可用编程器写入设定值)。DM6642的内容和含义如下表所示。,任务九 程序控制指令,高速计数器的复位方式,任务九 程序控制指令,5.高速计数器的溢出,当高速计数器计数时,若从上限值开始进行递增计数就会发生上溢出,其当
8、前值为0FFFFFFF;若从下限开始进行递减计数就会发生下溢出,其当前值为FFFF FFFF。发生溢出时计数器停止计数。重新复位高速计数器时,将清除溢出状态。,任务九 程序控制指令,6.高速计数器的当前值存储区,对CPM1A系列PLC,高速计数器的当前值放在SR248和SR249中。SR248存放当前值的低4位,SB249存放当前值的高4位。,任务九 程序控制指令,7.高速计数器的中断功能,所谓中断,是指在外部或内部触发信号的作用下,中断主程序的执行而转去执行一个预先编写的子程序,即中断处理子程序(也称中断服务程序),中断处理子程序执行完毕再返回断点处继续执行主程序的现象。中断程序的结构和执行
9、流程如下图所示。中断功能具有非常重要的意义,因为在实际控制过程中,控制系统中有些随时可能发生的情况需要PLC处理,具有中断功能的PLC可以不受扫描周期的影响,及时地把这种随机的信息输入到PLC中,从而提高了PLC对外部信息的响应速度。高速计数器有两类中断方式,即目标值比较中断和区域比较中断。,任务九 程序控制指令,中断程序示意图,任务九 程序控制指令,(1)目标值比较中断,在采取目标值比较中断时,要建立一个目标值比较表,如下图所示。目标值比较表占用一个区域的若干个通道,其中首通道存放目标值个数(BCD数)。比较表中最多放16个目标值,每个目标值占2个通道(各存放目标值的低4位和高4位)。每个目
10、标值对应一个中断子程序号,存放16个子程序号需16个通道,所以目标值比较表最多占用48个通道。目标值比较表中的数据可用编程器预先写入。目标值比较中断的执行过程是:在高速计数器计数过程中,若其当前值与比较表中某个目标值相同,则停止执行主程序而转去执行与该目标值对应的子程序。于程序执行完毕,返回到断点处继续执行主程序。,任务九 程序控制指令,目标值比较表,任务九 程序控制指令,(2)区域比较中断,在采取区域比较中断时,要建立一个区域比较表,如下图所示。区域比较表分8个区域,每个区域占5个通道,其中两个通道用来存放下限值的低4位和高4位,两个通道用来存放上限值的低4位和高4位,一个通道存放与该区域对
11、应的中断子程序号。8个区域要占40个通道。当实际使用的比较区域不满8个时,要把其余区域存放上、下限值的通道都置为0,将存放子程序号的通道都置为万FFF。区域比较表中的数据可用编程器预先写入。区域比较中断的执行过程是:在高速计数器计数过程中,若其当前值落在区域比较表中某个区域时,即下限值(高速计数器PV值之上限值,则停止执行主程序而转去执行与该区域对应的中断处理子程序。子程序执行完毕,返回到断点处继续执行主程序。执行区域比较中断时,比较结果存放在AR1100一AR1107中。例如,当高速计数器的当前值落在区域比较表的区域1中时,AR1101置为ON,当高速计数器的当前值落在比较表的区域2中时,A
12、Rll01置为ON,以此类推。,任务九 程序控制指令,区域比较表,任务九 程序控制指令,8.高速计数器的控制指令,下表是高速计数器控制指令的格式、梯形图符号、操作数的含义及范围、指令的功能及执行指令对标志位的影响。,任务九 程序控制指令,高速计数器的控制指令,任务九 程序控制指令,任务九 程序控制指令,任务九 程序控制指令,1.高速计数器的目标值比较中断,图(a)是采用高速计数器目标值比较中断的例子,图(b)是目标值比较表的内编写高速计数器中断处理子程序时,也要把子程序放在主程序之后和END之前。程序运行前要向DM6642写入设定值,以确定高速计数器的计数方式、复位方式及是否使用高速计数器等。
13、本例,DM6642的内容为0104,表示使用高速计数器、递增计数方式、洪复位方式采用Z信号+软复位。图(a)中,CTBL指令的操作数P固定为000,C为000表示登录一个目标值比较表并开始进行比较,DM0000是比较表的开始通道。图(b)的目标值比较表中设了2个目标值。图(a)中,若高速计数器的当前值等于目标值1时,中断主程序而执行010号中断子程序,把律5000传送到HR00中。子程序执行完毕返回断点处继续执行主程序(本例没写其他主程序)。若高速计数器的当前值等于目标值2时,中断主程序而执行011号中断于程序,将HR00与HRl0中的内容进行一次比较,若HR00的内容大于HRl0时,0110
14、1为ON。子程序执行完毕返回断点处继续执行主程序。若001000N且有z信号时,高速计数器复位。,任务九 程序控制指令,高速计数器目标值比较中断的例子,任务九 程序控制指令,2.高速计数器的区域比较中断,图是高速计数器区域比较中断的例子,图(b)是区域比较表的内容。程序运行前要设置 DM6642的内容。本例DM6642的内容为0100,表示使用高速计数器、增减计数方式、复位方式是采用z信号十软复位。图中CTBL指令的操作数P是固定值000,C为003,表示登录一个区域比较表,并用INI指令启动比较,DM0000是区域比较表的开始通道。图中用了两个INI指令。其中的非微分型INI指令执行的操作是
15、:在PLC上电的第一个扫描周期中,将HR00和HR01两个通道的内容(PLC断电前瞬时的高速计数器的当前值)传送到高速计数器的当前值寄存器248、249中/以作为高速计数器的新当前值。这样做的目的是,使PLC上电前、后高速计数器的当前值连续,这种作法在控制中有一定的实际意义。微分型INI指令用来启动比较。,任务九 程序控制指令,在00005由OFF变为ON时执行一次则I指令,使高速计数器的当前值开始与CTBL指令所登录的区域比较表进行比较,即CTBL指令所登录的区域比较表在00005为ON时才开始启动比较。图(b)的区域比较表是设在DM0000一DM0039这40个通道中,本例表中只设定了个比
16、较区域,因此其余6个区域中存放上、下限值的通道都置为0000,存放子程序号的通道都置为FFFF。本例的中断执行过程是:若高速计数器的当前值落在区域1中时,中断主程序,转去执000号中断子程序,执行完毕返回断点处继续执行主程序;若高速计数器的当前值落在区域2中时,中断执行主程序,转去执行001号中断于程序,执行完毕返回断点处继续执行主程序。,任务九 程序控制指令,图中还使用了块传送指令XFER(70),执行该指令是将高速计数器的当前值寄存器248和249两个通道的内容传送到HR00和HR01中。这样做的目的是,一旦PLC掉电,高速计数器的当前值能被保存在HR00和HR01中,再上电时通过执行第一
17、个INI指令,就可以把掉电前的当前值传送到高速计数器的当前值通道248、249中,以作为高速计数器的新当前值,使PLC上电前、后高速计数器的当前值连续。图中还使用当前值读出指令PRV,目的是随时将248、249中的当前值读到LR00中去。若001000N且有z信号,则高速计数器复位。,任务九 程序控制指令,高速计数器具有高速计数和中断功能,现归纳如下:使用高速计数器前必须进行设定,设定数据存放在DM6642中,以确定高速计数器的使用/不使用、复位方式、计数模式等。使用高速计数器时,SR248和SR249通道已经被占用,不能再作它用。使用高速计数时0000000002三个输入点被占用,不能再作它
18、用。高速计数器有计数功能。递增计数时,计数脉冲可以是外部输入的信号或旋转编码器输出的单相脉冲。增减计数时可用旋转编码器的输出脉冲作为计数脉冲,旋转编码器正转时为递增计数,反转时为递减计数 高速计数器具有中断功能。在使用其中断功能时,要用CTBL指令登录一个目标值比较表或区域比较表。所登录的比较表可以立即启动比较,也可以用INI启动比较。高速计数器的中断处理子程序与普通子程序的编写规则相同。,本节小结,任务九 程序控制指令,9.3脉冲输出控制指令,任务九 程序控制指令,CPM1A系列晶体管输出型的PLC,其主机的01000和01001两个输出点可以输出20H22kHz的单相脉冲,如下图所示。脉冲
19、输出可以设置成连续模式或独立模式。在设置成连续模式时,要用指令来控制脉冲的输出和停止;在设置成独立模式时,当输出的脉冲个数达到指定的数目(116777215)时,脉冲输出将自动停止。下表是脉冲输出控制指令的格式、梯形图符号、操作数的含义及范围、指令的功能及执行指令对标志位的影响。,脉冲输出控制指令,任务九 程序控制指令,任务九 程序控制指令,下图是连续模式脉冲输出的例子。图中,SPED指令的操作数P为000,表示脉冲是从01000输出,M为001,表示为连续模式,F为0150,表示输出脉冲的频率是1500Hz。INI指令的操作数P、P1固定为000,C为003表示当其执行条件为ON时停止脉冲输
20、出(见表),该图的控制功能是:当执行条件00000由OFF变为ON时,执行SPED指令启动脉冲输出,从01000输出1500Hz的连续脉冲信号。当执行条件00001由O FF变为ON时,执行 INI指令停止脉冲输出。,9.3.1 连续模式脉冲输出,任务九 程序控制指令,连续模式脉冲输出的例子,任务九 程序控制指令,9.3.2 独立模式脉冲输出,下图是独立模式脉冲输出的例子。图中指令PULS的操作数表示设置的脉冲个数存放在DM0000中。指令SPED的操作数表示脉冲是从01001输出、独立模式、输出脉冲的频率是500Hz。对图,当脉冲输出指令的执行条件00100由OFF变为0N时,执行PULS指
21、令设置输出脉冲的个数(DM0000的内容),执行SPED指令启动脉冲输出i从01001输出500Hz的脉冲信号。当输出脉冲达到设定的脉冲个数时,自动停止脉冲输出。在使用脉冲输出指令时,要注意以下几点:同一时刻只能从一个输出点输出脉冲;正在输出脉冲时,不能用PULS指令改变输出脉冲的个数。独立模式时,当达到指定脉冲数时停止脉冲输出;在连续输出模式时,设为0000、或将则I指令的C设为003,都可以使脉冲输出停止。,任务九 程序控制指令,独立模式脉冲输出的例子,任务九 程序控制指令,CPM1A系列晶体管输出型的PLC,其主机的01000和01001两个输出点可以输出20H22kHz的单相脉冲。脉冲
22、输出可以设置成连续模式或独立模式。在设置成连续模式时,要用指令来控制脉冲的输出和停止;在设置成独立模式时,当输出的脉冲个数达到指定的数目(116777215)时,脉冲输出将自动停止。,本节小结,任务九 程序控制指令,9.4 中断控制指令,任务九 程序控制指令,CPM1A系列PLC的中断功能比较完备。在前几节己介绍了中断的概念及高速计数器的中断功能,此外还有外部输入中断和间隔定时器中断的功能。本节介绍外部输入中断和间隔定时器中断的控制指令及程序的编写方法。,9.4.1 外部输入中断功能,1.外部输入中断的输入点2.外部输入中断的优先级3.外部输入中断的模式4.外部输入中断的子程序5.外部输入中断
23、的设定,任务九 程序控制指令,(1)外部输入中断的输入点,在CPM1A系列PLC中,20、30、40点的主机,其0000300006这四个点是外部输入中断的输入点。10点的主机,00003和00004是外部输入中断的输入点。外部发生的事件所产生的信号通过中断输入点送入PLC,当某个中断输入点为ON或ON一定次数时,产生中断请求信号。当不使用中断功能时,这些点可以作为普通输入点使用。各中断输入点的编号为:00003:中断输入0 00004:中断输入l 00005:中断输入2 00006:中断输入3,任务九 程序控制指令,(2).外部输入中断的优先级,若几个中断输入点同时为ON时,则执行中断的优先
24、顺序为:中断输入0一中断输入1一中断输入2一中断输入3。,任务九 程序控制指令,(3).外部输入中断的模式,外部输入中断有输入中断和计数中断两种模式。(1)输入中断模式 在非屏蔽情况下,只要中断输入点接通则产生中断响应。若在屏蔽情况下,即使中断输入点接通也不能产生中断响应,但该中断信号被记忆下来,待屏蔽解除后立即产生中断。若屏蔽解除后不希望响应所记忆的中断,可用指令清除该记忆。(2)计数器中断模式 这种模式的中断,是对中断输入点接通的次数进行高速计数(减计数),当达到设定的次数时产生中断,且计数器停止计数、中断被屏蔽。若想再产生中断需使用指令进行设定。计数器的计数范围为065535,计数频率最
25、高为1kHz。对计数模式的中断,CPM1A系列规定用通道SR240243存放计数器设定值,通道S脆44247存放计数器当前值1的数据。各输入点与上述通道的对应关系如表所示:,任务九 程序控制指令,(4).外部输入中断的子程序,中断处理子程序的结构与前面节的介绍相同,也是用SBN定义其开始,用血T定义其结免而且中断处理子程序也必须放在主程序之后和END之前。,任务九 程序控制指令,外部输入点对应的中断处理子程序编号是固定的,其对应关系为:中断输入0(输入点00003):子程序号为000 中断输入1(输入点00004):于程序号为001 中断输入2(输入点00005):子程序号为002 中断输入3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 欧姆 高速 计数器
链接地址:https://www.31ppt.com/p-6422652.html