欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    欧姆龙高速计数器.ppt

    • 资源ID:6422652       资源大小:1.27MB        全文页数:111页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    欧姆龙高速计数器.ppt

    ,任务九 程序控制指令,任务九 程序控制指令,学习目标:,1.掌握可编程序控制器程序控制指令的功能和使用方法 2.熟练使用程序控制指令编写程序,教学内容:,任务九 程序控制指令,9.1 子程序控制指令,9.2 高速计数器控制指令,9.4 中断控制指令,9.3 脉冲输出控制指令,9.5 步进控制指令,9.6 特殊指令,9.1.1 子程序调用、子程序定义、子程序返回指令,SBS是于程序调用指令,SBN和RET是子程序定义和子程序返回指令。所编写的子程序应该在指令SBN和RET之间。主程序中,在需要调用于程序的地方安排SBS指令。若使用非微分指令SBS时,在它的执行条件满足时,每个扫描周期都调用一次子程序。若使用SBS时只在执行条件由OFF变ON时调用一次子程序。所有子程序必须放在主程序之后和END之前。若子程序之后安排了主程序,则该段主程序不被执行。因为CPU扫描用户程序时,只要见到SBN则认为主程序结束,在编写程序时一定要注意这一点。,9.1 子程序控制指令,任务九 程序控制指令,9.1.1 子程序调用、子程序定义、子程序返回指令,任务九 程序控制指令,例一,任务九 程序控制指令,例二,任务九 程序控制指令,例三,任务九 程序控制指令,宏指令,任务九 程序控制指令,宏指令也是调用子程序的指令。宏指令的子程序的操作数只是形式上的操作数,在调用于程序时才赋予它们确定的数据。宏调用的于程序也是用SBNRET来定义。与上述子程序的安排相同,子程序必须放在:程序之后和END指令之前。在使用MCRO指令时,通道232239已经被系统占用,用户不要再使用这几个通道。,任务九 程序控制指令,本节小结,编写子程序调用程序时要注意以下几点 所有子程序都必须放在主程序之后和END指令之 主程序调用各子程序的次数没有限制。子程序可以嵌套调用,即子程序中又调用别的子程 序。但是嵌套不能超过16级,且子程序不能自调用。要特别注意子程序执行完毕的返回地址。,9.2.1 旋转编码器,9.2 高速计数器控制指令,任务九 程序控制指令,PLC在进行高速计数时,有时会用到旋转编码器。旋转编码器能输出脉冲信号,高速计数器配合使用旋转编码器,可以用于测量、处理转动或位移信号等。不同型号的旋转编码器输出的脉冲也不相同,有的旋转编码器能产生单相脉冲信号,如图(a)所示,其最高频率是5kHz,对应每个脉冲信号的前沿,高速计数器计数;有的旋转编码器能产生相位差为90。的两相脉冲信号,如图 下(b)所示,其最高频率是25kHz。至于A相和B相脉冲谁超前、谁滞后,这取决于旋转编码器的旋转方向。对应每个脉冲信号的前沿和后沿高速计数器计数。有的旋转编码器还能产生一个复位z信号。,旋转编码器的输出信号波形,任务九 程序控制指令,2.高速计数器的计数功能,1高速计数器的计数模式2高速计数器的复位方式,任务九 程序控制指令,(1)高速计数器的计数模式,高速计数器有递增计数和增减计数两种计数方式。递增计数模式 增减计数模式,任务九 程序控制指令,递增计数模式,递增计数时,被计数的高频脉冲信号由PLC的00000输入点输入。这个脉冲信号可以是外部被计数的事件提供的信号,也可以是旋转编码器提供的单相脉冲信号。在输入计数脉冲信号的前沿,高速计数器的当前值加1。递增计数的最高计数频率是5kHz,递增计数的计数范围是065535(000000000000FFFF)。,任务九 程序控制指令,增减计数模式,在增减计数时可使用旋转编码器,旋转编码器的A相脉冲接在PLC的00000输入点,B相脉冲接在00001输入点,复位Z信号接在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信号先ON时,在252000N后一个 扫描周期时,高速计数器复位,如图(a)所示。图中Ts是扫描周期。(2)软件复位 当25200为ON一个扫描周期后高速计数器复位,如图(b)所示。另外,当PIC断电再上电时高速计数器会自动复位。,任务九 程序控制指令,4.高速计数器的设定,使用高速计数器前必须进行设定,不经过设定高速计数器是不工作的。对CPM1A系列的PLC,其设定值放在DM6642中(可用编程器写入设定值)。DM6642的内容和含义如下表所示。,任务九 程序控制指令,高速计数器的复位方式,任务九 程序控制指令,5.高速计数器的溢出,当高速计数器计数时,若从上限值开始进行递增计数就会发生上溢出,其当前值为0FFFFFFF;若从下限开始进行递减计数就会发生下溢出,其当前值为FFFF FFFF。发生溢出时计数器停止计数。重新复位高速计数器时,将清除溢出状态。,任务九 程序控制指令,6.高速计数器的当前值存储区,对CPM1A系列PLC,高速计数器的当前值放在SR248和SR249中。SR248存放当前值的低4位,SB249存放当前值的高4位。,任务九 程序控制指令,7.高速计数器的中断功能,所谓中断,是指在外部或内部触发信号的作用下,中断主程序的执行而转去执行一个预先编写的子程序,即中断处理子程序(也称中断服务程序),中断处理子程序执行完毕再返回断点处继续执行主程序的现象。中断程序的结构和执行流程如下图所示。中断功能具有非常重要的意义,因为在实际控制过程中,控制系统中有些随时可能发生的情况需要PLC处理,具有中断功能的PLC可以不受扫描周期的影响,及时地把这种随机的信息输入到PLC中,从而提高了PLC对外部信息的响应速度。高速计数器有两类中断方式,即目标值比较中断和区域比较中断。,任务九 程序控制指令,中断程序示意图,任务九 程序控制指令,(1)目标值比较中断,在采取目标值比较中断时,要建立一个目标值比较表,如下图所示。目标值比较表占用一个区域的若干个通道,其中首通道存放目标值个数(BCD数)。比较表中最多放16个目标值,每个目标值占2个通道(各存放目标值的低4位和高4位)。每个目标值对应一个中断子程序号,存放16个子程序号需16个通道,所以目标值比较表最多占用48个通道。目标值比较表中的数据可用编程器预先写入。目标值比较中断的执行过程是:在高速计数器计数过程中,若其当前值与比较表中某个目标值相同,则停止执行主程序而转去执行与该目标值对应的子程序。于程序执行完毕,返回到断点处继续执行主程序。,任务九 程序控制指令,目标值比较表,任务九 程序控制指令,(2)区域比较中断,在采取区域比较中断时,要建立一个区域比较表,如下图所示。区域比较表分8个区域,每个区域占5个通道,其中两个通道用来存放下限值的低4位和高4位,两个通道用来存放上限值的低4位和高4位,一个通道存放与该区域对应的中断子程序号。8个区域要占40个通道。当实际使用的比较区域不满8个时,要把其余区域存放上、下限值的通道都置为0,将存放子程序号的通道都置为万FFF。区域比较表中的数据可用编程器预先写入。区域比较中断的执行过程是:在高速计数器计数过程中,若其当前值落在区域比较表中某个区域时,即下限值(高速计数器PV值之上限值,则停止执行主程序而转去执行与该区域对应的中断处理子程序。子程序执行完毕,返回到断点处继续执行主程序。执行区域比较中断时,比较结果存放在AR1100一AR1107中。例如,当高速计数器的当前值落在区域比较表的区域1中时,AR1101置为ON,当高速计数器的当前值落在比较表的区域2中时,ARll01置为ON,以此类推。,任务九 程序控制指令,区域比较表,任务九 程序控制指令,8.高速计数器的控制指令,下表是高速计数器控制指令的格式、梯形图符号、操作数的含义及范围、指令的功能及执行指令对标志位的影响。,任务九 程序控制指令,高速计数器的控制指令,任务九 程序控制指令,任务九 程序控制指令,任务九 程序控制指令,1.高速计数器的目标值比较中断,图(a)是采用高速计数器目标值比较中断的例子,图(b)是目标值比较表的内编写高速计数器中断处理子程序时,也要把子程序放在主程序之后和END之前。程序运行前要向DM6642写入设定值,以确定高速计数器的计数方式、复位方式及是否使用高速计数器等。本例,DM6642的内容为0104,表示使用高速计数器、递增计数方式、洪复位方式采用Z信号+软复位。图(a)中,CTBL指令的操作数P固定为000,C为000表示登录一个目标值比较表并开始进行比较,DM0000是比较表的开始通道。图(b)的目标值比较表中设了2个目标值。图(a)中,若高速计数器的当前值等于目标值1时,中断主程序而执行010号中断子程序,把律5000传送到HR00中。子程序执行完毕返回断点处继续执行主程序(本例没写其他主程序)。若高速计数器的当前值等于目标值2时,中断主程序而执行011号中断于程序,将HR00与HRl0中的内容进行一次比较,若HR00的内容大于HRl0时,01101为ON。子程序执行完毕返回断点处继续执行主程序。若001000N且有z信号时,高速计数器复位。,任务九 程序控制指令,高速计数器目标值比较中断的例子,任务九 程序控制指令,2.高速计数器的区域比较中断,图是高速计数器区域比较中断的例子,图(b)是区域比较表的内容。程序运行前要设置 DM6642的内容。本例DM6642的内容为0100,表示使用高速计数器、增减计数方式、复位方式是采用z信号十软复位。图中CTBL指令的操作数P是固定值000,C为003,表示登录一个区域比较表,并用INI指令启动比较,DM0000是区域比较表的开始通道。图中用了两个INI指令。其中的非微分型INI指令执行的操作是:在PLC上电的第一个扫描周期中,将HR00和HR01两个通道的内容(PLC断电前瞬时的高速计数器的当前值)传送到高速计数器的当前值寄存器248、249中/以作为高速计数器的新当前值。这样做的目的是,使PLC上电前、后高速计数器的当前值连续,这种作法在控制中有一定的实际意义。微分型INI指令用来启动比较。,任务九 程序控制指令,在00005由OFF变为ON时执行一次则I指令,使高速计数器的当前值开始与CTBL指令所登录的区域比较表进行比较,即CTBL指令所登录的区域比较表在00005为ON时才开始启动比较。图(b)的区域比较表是设在DM0000一DM0039这40个通道中,本例表中只设定了个比较区域,因此其余6个区域中存放上、下限值的通道都置为0000,存放子程序号的通道都置为FFFF。本例的中断执行过程是:若高速计数器的当前值落在区域1中时,中断主程序,转去执000号中断子程序,执行完毕返回断点处继续执行主程序;若高速计数器的当前值落在区域2中时,中断执行主程序,转去执行001号中断于程序,执行完毕返回断点处继续执行主程序。,任务九 程序控制指令,图中还使用了块传送指令XFER(70),执行该指令是将高速计数器的当前值寄存器248和249两个通道的内容传送到HR00和HR01中。这样做的目的是,一旦PLC掉电,高速计数器的当前值能被保存在HR00和HR01中,再上电时通过执行第一个INI指令,就可以把掉电前的当前值传送到高速计数器的当前值通道248、249中,以作为高速计数器的新当前值,使PLC上电前、后高速计数器的当前值连续。图中还使用当前值读出指令PRV,目的是随时将248、249中的当前值读到LR00中去。若001000N且有z信号,则高速计数器复位。,任务九 程序控制指令,高速计数器具有高速计数和中断功能,现归纳如下:使用高速计数器前必须进行设定,设定数据存放在DM6642中,以确定高速计数器的使用/不使用、复位方式、计数模式等。使用高速计数器时,SR248和SR249通道已经被占用,不能再作它用。使用高速计数时0000000002三个输入点被占用,不能再作它用。高速计数器有计数功能。递增计数时,计数脉冲可以是外部输入的信号或旋转编码器输出的单相脉冲。增减计数时可用旋转编码器的输出脉冲作为计数脉冲,旋转编码器正转时为递增计数,反转时为递减计数 高速计数器具有中断功能。在使用其中断功能时,要用CTBL指令登录一个目标值比较表或区域比较表。所登录的比较表可以立即启动比较,也可以用INI启动比较。高速计数器的中断处理子程序与普通子程序的编写规则相同。,本节小结,任务九 程序控制指令,9.3脉冲输出控制指令,任务九 程序控制指令,CPM1A系列晶体管输出型的PLC,其主机的01000和01001两个输出点可以输出20H22kHz的单相脉冲,如下图所示。脉冲输出可以设置成连续模式或独立模式。在设置成连续模式时,要用指令来控制脉冲的输出和停止;在设置成独立模式时,当输出的脉冲个数达到指定的数目(116777215)时,脉冲输出将自动停止。下表是脉冲输出控制指令的格式、梯形图符号、操作数的含义及范围、指令的功能及执行指令对标志位的影响。,脉冲输出控制指令,任务九 程序控制指令,任务九 程序控制指令,下图是连续模式脉冲输出的例子。图中,SPED指令的操作数P为000,表示脉冲是从01000输出,M为001,表示为连续模式,F为0150,表示输出脉冲的频率是1500Hz。INI指令的操作数P、P1固定为000,C为003表示当其执行条件为ON时停止脉冲输出(见表),该图的控制功能是:当执行条件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指令设置输出脉冲的个数(DM0000的内容),执行SPED指令启动脉冲输出i从01001输出500Hz的脉冲信号。当输出脉冲达到设定的脉冲个数时,自动停止脉冲输出。在使用脉冲输出指令时,要注意以下几点:同一时刻只能从一个输出点输出脉冲;正在输出脉冲时,不能用PULS指令改变输出脉冲的个数。独立模式时,当达到指定脉冲数时停止脉冲输出;在连续输出模式时,设为0000、或将则I指令的C设为003,都可以使脉冲输出停止。,任务九 程序控制指令,独立模式脉冲输出的例子,任务九 程序控制指令,CPM1A系列晶体管输出型的PLC,其主机的01000和01001两个输出点可以输出20H22kHz的单相脉冲。脉冲输出可以设置成连续模式或独立模式。在设置成连续模式时,要用指令来控制脉冲的输出和停止;在设置成独立模式时,当输出的脉冲个数达到指定的数目(116777215)时,脉冲输出将自动停止。,本节小结,任务九 程序控制指令,9.4 中断控制指令,任务九 程序控制指令,CPM1A系列PLC的中断功能比较完备。在前几节己介绍了中断的概念及高速计数器的中断功能,此外还有外部输入中断和间隔定时器中断的功能。本节介绍外部输入中断和间隔定时器中断的控制指令及程序的编写方法。,9.4.1 外部输入中断功能,1.外部输入中断的输入点2.外部输入中断的优先级3.外部输入中断的模式4.外部输入中断的子程序5.外部输入中断的设定,任务九 程序控制指令,(1)外部输入中断的输入点,在CPM1A系列PLC中,20、30、40点的主机,其0000300006这四个点是外部输入中断的输入点。10点的主机,00003和00004是外部输入中断的输入点。外部发生的事件所产生的信号通过中断输入点送入PLC,当某个中断输入点为ON或ON一定次数时,产生中断请求信号。当不使用中断功能时,这些点可以作为普通输入点使用。各中断输入点的编号为:00003:中断输入0 00004:中断输入l 00005:中断输入2 00006:中断输入3,任务九 程序控制指令,(2).外部输入中断的优先级,若几个中断输入点同时为ON时,则执行中断的优先顺序为:中断输入0一中断输入1一中断输入2一中断输入3。,任务九 程序控制指令,(3).外部输入中断的模式,外部输入中断有输入中断和计数中断两种模式。(1)输入中断模式 在非屏蔽情况下,只要中断输入点接通则产生中断响应。若在屏蔽情况下,即使中断输入点接通也不能产生中断响应,但该中断信号被记忆下来,待屏蔽解除后立即产生中断。若屏蔽解除后不希望响应所记忆的中断,可用指令清除该记忆。(2)计数器中断模式 这种模式的中断,是对中断输入点接通的次数进行高速计数(减计数),当达到设定的次数时产生中断,且计数器停止计数、中断被屏蔽。若想再产生中断需使用指令进行设定。计数器的计数范围为065535,计数频率最高为1kHz。对计数模式的中断,CPM1A系列规定用通道SR240243存放计数器设定值,通道S脆44247存放计数器当前值1的数据。各输入点与上述通道的对应关系如表所示:,任务九 程序控制指令,(4).外部输入中断的子程序,中断处理子程序的结构与前面节的介绍相同,也是用SBN定义其开始,用血T定义其结免而且中断处理子程序也必须放在主程序之后和END之前。,任务九 程序控制指令,外部输入点对应的中断处理子程序编号是固定的,其对应关系为:中断输入0(输入点00003):子程序号为000 中断输入1(输入点00004):于程序号为001 中断输入2(输入点00005):子程序号为002 中断输入3(输入点00006):子程序号为003 当不使用中断功能时,这些子程序号可以作为普通子程序编号使用。,任务九 程序控制指令,(5).外部输入中断的设定,在外部输入中断使用之前,要用编程器对DM6628进行设定,若不进行设定就没有中断功能。nM6628设定的内容和含义为:,任务九 程序控制指令,9.4.2 间隔定时器的中断功能,1.间隔定时器2.间隔定时器的中断模式3.间隔定时器的中断处理子程序,任务九 程序控制指令,(1).间隔定时器,CPM1A系列PLC有一个间隔定时器,它是个递减计数器(从设定值开始按一定的时间间隔进行减计数),当其定时时间到时,可以不受扫描周期的影响,停止执行主程序并建立断点立即转去执行中断处理子程序,从而实现高精度的定时中断处理。间隔定时器有两种工作模式,即单次模式和重复模式,因此由间隔定时器产生的中断也有两种模式。,任务九 程序控制指令,(2).间隔定时器的中断模式,(1)单次中断模式 当间隔定时器的定时时间到时,停止定时并产生中断信号,但只执行一次中断。至于是否启动单次中断、其设定值是多少、中断子程序的编号等,都要由STIM指令来确定。(2)重复中断模式 这种中断模式是每隔一定的时间产生一次中断,因此是循环地执行中断,直到定时器停止计数为止。与单次中断不同的是,在执行中断于程序的同时,定时器的当前值又恢复为设定值并重新开始定时。至于是否启动重复中断、其设定值是多少、中断处理子程序的编号等,都要由STIM指令来确定。,任务九 程序控制指令,(3).间隔定时器的中断处理子程序,不论是单次中断模式还是重复中断模式,其子程序号都由STIM指令来确定,其范围为000049。编写中断处理子程序应注意以下几点:在中断处理子程序内部可以定义新的中断,也可以解除中断。在中断处理子程序内部不可以调用别的中断处理子程序。在中断处理子程序内部不可以调用普通子程序。在普通子程序中不可以调用中断处理子程序。,任务九 程序控制指令,9.4.4 中断控制指令,下表是中断控制指令的格式、梯形图符号以及操作数的含义、指令功能及执行指令对标志位的影响,下面举例说明各种中断模式时程序的编写方法。,任务九 程序控制指令,中断控制指令,任务九 程序控制指令,任务九 程序控制指令,(1).外部输入中断模式,下图是外部输入中断模式的例子。设置DM6628为0011,即设定00003和00004为中断输入端子。图中,当00003 接通时产生中断,停止执行主程序,转去执行中断处理子程序000,则200000N,返回主程序使010000N;若00004接通产生中断时,转去执行中断处理子程序001,则200010N,返回主程序使010000FF。若00003和00004两个输入点同时接通,则00003产生的中断优先执行。,任务九 程序控制指令,外部输入中断模式的例子,任务九 程序控制指令,(2).外部输入的计数中断模式,图是外部输入的计数中断模式的例子。设置DM6628为0010,即设定00004为中断输入点。在PLC上电后的第一个扫描周期,执行一次MOV指令,将#00FA(十进制的250)传送到存放00004中断输入点计数设定值的24l通道;执行一次INT指令,设置输入中断1为计数中断模式,设定00004输入点为非屏蔽。所以,当00004输入点接通250次时将产生中断,停止执行主程序并转去执行中断处理子程序00l。执行子程序001使200000N,返回主程序使TM000开始定时。经过5秒TIM0000N,使010000N。,任务九 程序控制指令,外部输入的计数中断模式的例子,任务九 程序控制指令,下图是说明INT指令各种设定时程序的编写方法。将DM6628设为0001,指定00003是中断输入点。该图的功能简介如下:PLC上电后只要00005先接通,00003输入点就被屏蔽,中断输入点00003产生的中断不能被响应,只有断开00005才能响应中断。PLC上电后,当00005和00001断开时,当00000接通一次时,则确定00003为中断输入点,且为计数中断模式,计数设定值是律0030。当00003接通30次时产生中断,转去执行中断处理子程序000,使200000N,于是01000开始输出秒脉冲。PLC上电后,当00005和o0000断开时,若00001接通一次,则00003输入点的计数设定值更新为并0050。所以当00003接通50次时产生中断。在程序运行过程中若欲查看各中断输入点的屏蔽情况,可接通00006,并用通道监视功能观察DM0000的内容,此时编程器的显示屏上就显示出四位十六进制数,其最低位数字表示各中断输入点的屏蔽状态。例如DM0000的内容是000C,则表示输入点00003和00004为非屏蔽,而00005和00006是屏蔽的。,任务九 程序控制指令,任务九 程序控制指令,(3).间隔定时器单次中断模式,下图是间隔定时器单次中断模式的程序结构。要用STIM指令确定中断模式、设定间隔定时器的定时时间、确定子程序编号。本例中执行STIM指令后,确定间隔定时器是单次中断模式,间隔定时器的实际定时值为200100.1=200ms,子程序号为010。图中,当PLC上电后,在STIM指令的执行条件00000为0N时,启动间隔定时器开始定时。当达到设定值时间200ms时产生中断并转去执行010号中断处理子程序,使200000N。返回去执行主程序使010000N、TIM000开始定时,5秒后010000FF。,任务九 程序控制指令,间隔定时器单次中断的例子,任务九 程序控制指令,(4).间隔定时器重复中断模式,下图是间隔定时器重复中断模式的程序结构。本例中执行STIM指令后确定间隔定时器为重复中断模式,间隔定时器的实际定时值为50ms,于程序号为005。图中,当PLC上电后,间隔定时器开始定时。当达到设定值时间50ms时产生中断并转去执行005号中断处理于程序,同时定时器的当前值又恢复为设定值并重新开始定时,再过50ms时又产生中断。第一次中断执行子程序时20001 ON、20000 OFF,返回去执行主程序使01001 ON 50ms、01000 OFF。第二次中断执行子程序时20000 ON、20001OFF,所以01000 ON 50ms、01001OFF。可见该段程序的功能是01000和01001均能产生0.1s的脉冲(占空比1:1),直到间隔定时器停止计数为止。间隔定时器的定时时间最小可达05ms,所以用间隔定时器可实现高精度的定时中断控制。,任务九 程序控制指令,间隔定时器重复中断的例子,任务九 程序控制指令,STIM指令几种设定时的编程,图中使用了三个STIM指令,用00000控制的STIM指令是启动间隔定时器重复中断模式,用00001控制的STIM指令是读出定时器当前值,用00002控制的STIM指令是停止间隔定时器的定时。该段程序的功能是:自00000接通后过400ms产生中断,转去执行子程序002,使20000ON,返回执行主程序CNT000开始计数(此处计数器是个定时器)。经过200ms CNT000 ON,使CNT000和20000复位。自此再过200ms产生第二次中断,计数器CNT000重复上述定时过程。可见从第一次中断之后,每过200ms,CNT000 ON一次。程序执行过程中,当00001接通时执行第二个STIM指令,这时可从编程器的显示屏上看到DM0000DM0002的内容,根据这些内容可以计算出定时器的当前值(算法见前表)。在程序执行过程中,当00002接通时执行第三个STIM指令,这时将停止间隔定时器的定时。在断开00002后,间隔定时器又恢复工作。,任务九 程序控制指令,STIM指令几种设定时的编程的例子,任务九 程序控制指令,普通子程序与中断处理子程序的问题进行归纳。,本节小结,(1)两种子程序的相同点,子程序都必须由SBN和RET指令来定义其开始和结束。子程序都要放在主程序之后和END之前,即子程序之后不能再写主程序。当SBS指令的执行条件不满足时或没产生中断时,CPU都不扫描子程序。,任务九 程序控制指令,(2)两种子程序调用的不同之处,在于程序调用的控制方式上的区别。普通子程序的调用是受程序的控制,即必须在主程序中安排SBS指令,当CPU扫描到SBS指令且其执行条件满足时调用于程序。中断处理子程序的调用不是由程序直接控制的,在中断控制指令设定之后,是否调用子程序取决于有无中断请求信号。而且,对外部输入中断,若中断被屏蔽,即使有中断请求信号也不能立即执行中断处理子程序。两种子程序执行完毕返回地址的区别。用SBS指令调用于程序时,其返回地址只能是与SBS指令相邻的下一条指令。中断处理子程序执行完毕也要返回断点处,但其断点地址是随机的。用SBS调用的各子程序之间没有优先级的问题,而由于各种中断存在优先级,所以与各种中断对应的中断处理子程序在执行时有优先顺序。,任务九 程序控制指令,(3)注意的问题,在中断处理子程序内部不可使用SBS指令,即中断处理子程序不可调用普通子程序。不可用SBS指令去调用中断处理子程序,即普通子程序不可调用中断处理于程序。中断处理子程序内部不可以调用别的中断处理子程序。,任务九 程序控制指令,9.5 步进控制指令,任务九 程序控制指令,在实际控制中有这样一类情况,其整个控制过程可以分成若干个子过程。当一个子过程结束时立即启动下一个子过程。各子过程的执行像接力一样按一定的顺序进行。对这类控制编写程序时,可以把较大的程序分成若干个程序段,一个程序段称为一个步,每步对应一个实际的子过程,用指令来控制各步执行的顺序。CPM1A系列的步进指令SNXT、STEP就是用于对各步设置断点并执行步进程序的。当执行步进程序时,在执行完上一步、启动下一步之前,将上一步使用的定时器和数据区复位。这样在各步程序中还可以重复使用PLC的部分资源。下表是步进控制指令的格式、梯形图符号、操作数的含义及范围、指令的功能及执行指令对标志位的影响。,步进控制指令,任务九 程序控制指令,1.步进程序的结构及程序的编写规则,(1).步进程序的基本结构(2).步进程序结构的几种类型(3).编写步进程序时注意的问题,任务九 程序控制指令,(1).步进程序的基本结构,步进控制程序是由多个步组成的,每一步都是由有执行条件的指令SNXT(09)B开始,其后是无执行条件的且用来定义步开始的指令STEP(08)B,两者的B相同。STEP(08)B指令之后是步的内容。各步编写完毕,要安排一个有执行条件的SNXT(09)B指令,指令中的B无任何意义,它可以是程序中没有使用过的某一个位号。紧随其后再写一条无执行条件且无操作数的STEP(08)指令,用以表示全部步的结束。在无操作数的STEP(08)指令之后还可以安排普通程序。步进程序的基本结构如下图所示。,任务九 程序控制指令,步进程序的基本结构,任务九 程序控制指令,(2).步进程序结构的几种类型,步进程序的结构可以分为三种类型,即顺序执行类、选择分支执行类、并行分支执行类。下图是几种类型的步进程序的结构示意图,也称步进程序的流程图。,任务九 程序控制指令,图(a)是顺序执行类的步进程序结构示意图。这种结构的程序中无分支,前一步结束被清除、复位,后一步即被启动并开始执行,如此一步接一步地捌顷序执行。图(b)是选择分支执行类的步进程序结构示意图。这种结构的程序有几个分支,每个分支可能有若干个步。在同一时刻只能执行其中的一个分支,因此几个分支中首步的启动条件一定是互锁的。至于执行哪个分支,要看哪个分支满足了执行条件。每个分支执行完毕都要去执行同一个步,如图中步E。图(c)是并行分支执行类的步进程序结构。这种结构的程序有几个分支,每个分支可能有若干个步。与选择分支类不同的是,在满足某个条件时几个分支将同时被启动,例如图中条件1满足时,步A和步C同时启动。当几个分支都执行完毕时,又被同一个执行条件所清除,同时进入下一步。如图中的步B和步D执行完毕,被条件4复位并同时进入步E。,任务九 程序控制指令,(3).编写步进程序时注意的问题,各步的控制位必须在同一个区,并且前后步的控制位要连续。步程序段内不能使用以下几个指令:END、IL/ILC、JMP/JME、SBN。当SNXT(09)B执行时,将结束前一步(B-1)的执行,并复位前一步使用的定时器和数据区。此时前一步使用的定时器和数据区的状态为:IR、HR、AR、LR为OFF,定时器 复位,移位寄存器、计数器及KEEP、SET、阳SET等指令的输出位保持。若步的控制位使用HR、AR,则具有掉电保护功能。,任务九 程序控制指令,各步必须以前一步的结束及清除为启动条件,即不能先启动中间的步。而在下一步开始执行后,若前一步的执行条件再次满足,前一步可再启动。如果不希望前一步再启动,应采取措施。各步的执行条件是脉冲信号,所以PLC上电即ON的执行条件无效。另外,当执行STEP(08)B指令时,标志位25407 ON一个扫描周期,编程时可以利用。被启动的步CPU对其进行扫描,而末启动的步则CPU不对其扫描。步进程序的前后都可以安排普通程序。,任务九 程序控制指令,2.步进程序的执行过程,1.顺序执行类步进程序的执行过程2.选择分支执行类步进程序的执行过程3.并行分支执行类步进程序的执行过程,任务九 程序控制指令,(1).顺序执行类步进程序的执行过程,以下图为例,说明帧序执行类步进程序的执行过程。图中,当执行条件00000由OFF ON OFF时,执行指令SNXT(09)HR000,则由HR0000为控制位的步1被启动并执行;当00001由OFF ON OFF时,执行指令SNXT(09)HR000l,停止执行步1并复位步1所使用的定时器及数据区,并启动由HR0001控制的步2;当00002由0FF 0N 0FF时,执行指令SNXT(09)00005(00005无意义)和STEP(08),停止执行步2并复位步2所使用的定时器及数据区,步程序全部结束。,任务九 程序控制指令,步进程序的基本结构,任务九 程序控制指令,(2).选择分支执行类步进程序的执行过程,以下图为例,说明选择分支执行类的步进程序的执行过程。图(b)是图(a)的步程序流程图。从流程图可以看出这是有两个分支的步进程序,每个分支各有两个步。无论哪个分支,最后都要执行步E。当00000由OFF ON OFF时,程序的执行顺序是A B E;当00001由OFF ON OFF时,程序的执行顺序是C D E。其执行过程如下:对A B E分支,当00000由OFF ON OFF时,执行指令SNXT(09)HR0000,启动并执行步丸使01000为0N;在00002由0FF 0N OFF时,结束、复位步A同时启动步B,使01000为OFF、01001为0N;在00003由OFF 0NOFF时,结束、复位步B并启动步E,使01001为OFF、0000为ON;当00006由OFF ON OFF时,结束、复位步E,使010000FF,该分支步程序结束。,任务九 程序控制指令,对C D E分支,当00001由OFFON OFF时,执行指令SNXT(09)HR0002,启动并执行步C,使01002为0N;在00004由OFF ONOFF时,结束、复位步C并启动步D,使01002为OFF、01001为ON。在00005由OFF ON OFF时,结束、复位步D并启动步E,使01001为OFF、01000为0N。当00006由OFF ON OFF时结束、复位步E,使01000为OFF,该分支步程序结束。本例是选择分支步程序,所以两个分支中首步的启动条件互锁。程序中,以00005为执行条件的指令SNXT(09)HR0004与STEP(08)HR0004相邻,这与前面介绍的步进程序的结构形式相符。而以00003为执行条件的指令SNXT(09)HR004 与STEP(08)HR0004相隔较远,这种编写法是允许的。,任务九 程序控制指令,任务九 程序控制指令,(3).并行分支执行类步进程序的执行过程,图是并行分支类的步进程序。图(b)是图(a)的流程图。从流程图可以看出,这是由两个分支的步进程序和一段普通程序组成的程序段。步进程序中每个分支各有两个步。当00000由OFF ON 0FF时步程序启动,分支A B与分文C D同时开始执行。当00003由0FF ON OFF时,两分文同时进入步E。其执行过程如下:普通程序的执行不受步程序的制约。在PLC上电后,无论00000 00004是何种状态,01000和01005的状态只取决于00100。当00000由OFF ON OFF时,执行指令SNXT(09)20000和SNXT(09)20002,同时启动并执行步A和步C。对分支A B,在0000l由OFF ON OFF时,结束、复位步A并启动步B;对分支C D,在00002由OFF ON OFF N时,结束、复位步C并启动步D。当00003由OFF 0N 0FF时,结束、复位步B和步D,启动并执行步E。在00004 OFFON OFF时,结束、复位步E,步程序结束。,任务九 程序控制指令,程序中,以00003为执行条件的指令SNXT(09)20004在两处出现过。一个是用来清除步B、启动步E的,另一个是用来清除步D、启动步E的。本例中,在步进程序段的末尾安排了一段普通程序,其执行不受步程序的制约。同样在步进程序段之前也可以安排普通程序。与用其他指令编写的有相同功能的程序相比,用步进控制指令编写的程序语句比较多,但是这种程序的优点是逻辑关系清楚,程序编写过程中不易出差错,而且程序可读性好。,任务九 程序控制指令,CPM1A系列的步进指令SNXT、STEP就是用于对各步设置断点并执行步进程序的。当执行步进程序时,在执行完上一步、启动下一步之前,将上一步使用的定时器和数据区复位。这样在各步程序中还可以重复使用PLC的部分资源。,本节小结,任务九 程序控制指令,9.6 特殊指令,任务九 程序控制指令,任务九 程序控制指令,任务九 程序控制指令,任务

    注意事项

    本文(欧姆龙高速计数器.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开