电气控制 第5章 -3_第1页
电气控制 第5章 -3_第2页
电气控制 第5章 -3_第3页
电气控制 第5章 -3_第4页
电气控制 第5章 -3_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、有条件结束指令 END5.3.6 程序控制指令是有条件结束指令,根据前面的逻辑关系,终止用户主程序,并返回主程序起始点,它只能用于主程序,不能用于子程序和中断程序。如左图,当I0.0接通,结束主程序。STEP7 自动在主程序中增加无条件结束指令(MEND)2 暂停指令 STOP功能是使CPU立即终止程序执行,强迫CPU从RUN方式转为STOP方式。如果暂停指令在中断程序中执行,该中断立即停止,但继续扫描主程序剩余部分,直至本次扫描完成终止程序的执行例:下图程序中,I0.0接通Q0.0有输出。若I0.1接通,Q0.0仍保持接通,但不会执行以下的程序,并返回主程序的起点。若I0.1断开,I0.

2、2接通则Q0.1有输出,若I0.3接通,则Q0.0,Q0.1均复位,CPU转为STOP方式。3、监视定时器复位指令 WDR跳转及标号指令成对出现在程序中跳转指令(JMP)可使程序流程转移到同一程序中指定的标号(n)处。标号指令(LBL)是使程序跳转到指定的目标位置(n)。4、跳转与标号指令 JMP、LBL例:右图程序执行顺序是,当JMP条件满足,(即I0.0为ON)程序跳转执行LBL标号后的指令,即使I0.1接通Q0.1也不会有输出。JMP条件不满足时,当I0.1接通,Q0.1有输出。注意:1、跳转和标号指令可以用在主程序、子程序及中断程序中,但不能从主程序跳到子程序和中断程序,同样也不能从子

3、程序或中断程序跳出。操作数n:0255。 2、执行跳转后,被跳过程序段中各元件的状态各有不同 :Q、M、S、C等保持跳转前的位状态FOR和NEXT之间的程序段称为循环体,每执行一次循环体,当前计数值增1 ,并且将其结果同终值比较,如果大于终值,则终止循环。循环指令可嵌套,最多8层5、循环指令 FOR和NEXTFOR:循环开始指令,用来标记 循环体的开始。NEXT:循环结束指令,表示循环体结束,无操作数INDX为当前循环计数器。执行循环指令时,必须指定初值(INIT)和终值(FINAL)。如:给定INIT为1,FINAL为10,那么随着当前计数值INDX从1增加到10,FOR和NEXT之间指令被

4、执行10次。指令格式:FOR INDX,INIT,FINALNEXT例:右图,当I0.0为ON时,所示的外循环执行2次,由VW100累积循环次数。当I0.1为ON时,外循环每执行1次,所示的内循环执行3次,由VW110累计循环次数。1)建立子程序通过编程软件完成,2)子程序调用和返回 CALL6、子程序调用与返回指令对一些需要经常执行的程序段,可以设计成子程序的形式,每个子程序赋予不同的编号,在程序执行过程中,可随时调用某个编号的子程序。子程序调用指令CALL的功能是将程序执行转移到编号为n的子程序。子程序入口用SBR n表示,在子程序执行过程中,如果条件返回指令CRET条件满足,则结束该子程

5、序,返回到原调用处继续执行,否则,执行子程序到最后一条,这时执行无条件返回指令RET,结束子程序的运行,返回到原调用处。3)子程序调用的特点在子程序(n)调用过程中,CPU把程序控制权交给子程序(n),系统将当前逻辑堆栈的数据自动保存,并将栈顶置1,堆栈中的其它数据置0。当子程序结束后,通过返回指令自动恢复原来逻辑堆栈的数据。把程序控制权重新交给原调用程序。允许嵌套调用,深度为8层。1、高速计数器指令5.3.7 特殊指令高速计数器处理比扫描频率高的输入信号的任务。常用于电动机的转速检测场合1) 高速计数器的状态字节 为了监视高速计数器的工作状态,执行由高速计数器引起的中断事件,每个高速计数器在

6、特殊继电器区SMB安排一个状态字节。2) 高速计数器的工作模式 每个高速计数器都有多种工作模式,可通过编程使用定义高速计数器指令HDEF来选定工作模式。下面以HC1为例说明高速计数器的工作模式。具有内部方向控制的单相增/减计数器具有外部方向控制的单相增/减计数器具有增/减计数脉冲输入端的双相计数器A/B相正交计数器 外部输入I0.6是A相脉冲输入,I0.7是B相脉冲输入。当A相脉冲超前B相脉冲90时,计数方向为递增计数,当B相脉冲超前A相脉冲90时,计数方向为递减计数。正交计数器有两种工作状态:计数倍率为1计数倍率为43) 高速计数器指令定义高速计数器指令HDEF 每个高速计数器使用前,都要用

7、HDEF指令来定义工作模式。HSC端指定编号:05,MODE端指定工作模式号:011执行高速计数器指令HSC 该指令是根据与高速计数器相关的特殊继电器确定的控制方式和工作状态,使高速计数器的设置有效,安照指定的工作模式执行操作。N端指定计数器编号:05,当EN有效时,启动N号高速计数器工作。4) 高速计数器的控制字节 每个高速计数器对应一个特殊继电器的控制字节,通过对控制字节指定位的编程,确定高速计数器的工作方式。5)高速计数器的当前值寄存器和设定值寄存器6)高速计数器的初始化 一般以子程序的形式进行初始化,下面以HC1为例,介绍初始化的步骤。利用SM0.1调用一个初始化子程序。在初始化子程序

8、中,根据需要向SMB47装入控制字节,例如SMB47=16#F8,其意义是:允许计数,允许写入新的当前值,允许写入新的设定值,计数方向为增计数,启动和复位信号均为高电平有效。执行HDEF指令,其输入参数为:HSC端为1(选择1号高速计数器),MODE端为011中的一个数,对应12个工作模式中的一个。将希望的当前计数值装入SMD48(装入0可进行计数器清0操作)将希望的设定值装入SMD52。如果希望捕获当前值等于设定值的中断事件,编写中断事件号13相关联的中断服务程序。执行ENI(全局开中断)指令。执行HSC指令。退出初始化子程序。7)高速计数器应用举例 某产品包装生产线应用高速计数器对产品进行

9、累计和包装。每检测到1000个,自动启动包装机包装。计数方向可由外部信号控制。设计步骤:选择高速计数器,确定工作模式。 本例选择HC0,工作模式3,采用当前值等于设定值的中断事件,中断事件号12,启动包装机工作子程序。用SM0.1调用初始化子程序SBR_1写入控制字SMB37=16#F8执行HDEF指令,输入参数HSC为0,MODE为3.写入当前值SMD38=0。写入设定值SMD42=1000执行建立中断连接指令ATCH,输入参数:INT为INT_0,EVNT为12。编写中断服务程序INT0是调用包装机子程序,子程序号SBR_2。执行全局开中断指令ENI执行HSC指令,对高速计数器编程并投入运行。2、 中断指令中断允许 当进入RUN模式时,所有中断被禁止,执行ENI指令后,可以全局地允许所有的被连接的中断事件。中断禁止 全局地禁止所有中断事件,允许中断事件排队,但不激活中断服务程序。中断连接 ATCH 把一个中断事件(EVNT)和一个中断服务程序(INT)联系起来,并允许这个中断事件。INT和EVNT都是常数。中断分离(DTCH) 截断中断事件和所有中断服务程序的联系,并禁止该中断。中断指令举例 在应用高速计数器指令时,为了在计数值等于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论