第六章2程序流控制指令.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二节 程序流控制一、条件跳转指令 CJ二、子程序指令 CALL SRET三、中断指令IRET EI DI四、主程序结束指令 FEND 五、警戒时钟定时器指令 WDT六、循环指令 FOX NEXT1.条件跳转指令 CJ和CJ(P)为条件跳转指令,在某种条件下需要跳过一部分程序时,采用跳转指令,这样可以减少扫描时间,提高程序执行速度。 操作数:指针 P0~P127P63表示跳到ENDX10…CJCJP0P0Y1X11…X12P0梯形图X000CJP10Y001X001Y002X002标号P10(b)(a)图 CJ指令的使用 说明CJ指令跳过部分程序,可以缩短程序的扫描周期。 一个指针只能出现一次。如果积算型定时器和计数器的RST指令在跳转程序之内,即使跳转程序生效,RST指令仍然有效。该指令可以连续和脉冲执行方式。被跳过去的程序中各元件的状态为Y、M、S保持跳转前状态不变。定时器T和计数器C如果被CJ指令跳过,跳转期间它们的当前值将被保存。如果在跳转开始时定时器和计数器正在工作,在跳转期间它们将停止定时和计数。 T192~T199和高速计数器C235~C255如果在驱动后跳转,则继续工作,输出触点也会动作。如图, X000为ON时,程序跳到指针P8处。 X000为OFF时,不执行跳转,程序按原顺序执行。 如果用M8000的常开触点驱动CJ指令,相当于无条件跳转指令,因为运行时特殊辅助寄存器M8000总是ON。用跳转指令实现选择运行程序段 应用跳转指令的程序结构如图所示。X3是手动/自动选择开关的信号输入端。当X3未接通时,执行手动程序段,反之执行自动程序段。X3的常开/常闭接点起联锁作用,使手动、自动两个程序段只能选择其一。图 手动/自动程序跳转条件跳转指令应用举例【例题】 某台设备具有手动/自动两种操作方式。SB3是操作方式选择开关,当SB3处于断开状态时,选择手动操作方式;当SB3处于接通状态时,选择自动操作方式,不同操作方式进程如下:手动操作方式进程:按启动按钮SB2,电动机运转;按停止按钮SB1,电动机停机。自动操作方式进程:按启动按钮SB2,电动机连续运转1min后,自动停机。按停止按钮SB1,电动机立即停机。【解】 根据控制要求,设计程序梯形图如图所示。程序梯形图二、子程序指令子程序调用 CALL (Sub-Routine Call)操作数:指针P0~P127 子程序返回 SRET 无操作数 (Sub-Routine Return)无操作数说明子程序应该在主程序结束之后编程。CJ指令的指针与CALL的指针不能重复。主程序允许嵌套,嵌套级别最多为5级。子程序只能用T192~T199和T246~T249作定时器。 同一指针只能出现一次标号P63相当于END。CALLP8主程序X1…FENDY30Y21Y1X12P8子程序…X11SRET… 子程序编写在FEND指令的后面,以标号P开头,以返回指令SRET结束。 子程序调用指令CALL与跳转指令CJ不能使用相同的标号。 梯形图 CALLP8主程序X1…FENDY1Y30Y21X12P8子程序…X11SRET…三、主程序结束指令 FEND说明FEND指令表示主程序结束,与END指令的功能一样,程序执行到FEND时,进行输出处理、输入处理、监视定时器和计数器刷新,全部完成以后返回到程序的第00步。执行到该指令时程序返回到0步。中断服务子程序和子程序应该写在FEND之后,并且用IRET和SRET返回。如果多次使用FEND指令,在最后的FEND和END之间编写子程序或中断子程序。 FEND主程序结束指令使用时应注意,子程序和中断子程序必须写在主程序结束指令FEND和END指令之间。 子程序调用举例 程序功能是:X1、X2、X3分别接通时,将相应的数据传送到D0、D10,然后调用子程序;在子程序中,将D0、D10存储的数据相加,运算结果存储在D20,用D20存储数据控制输出字元件K1Y0。 EIX0开中断范围DIFENDX10I100中断子程序1IRETI101中断子程序2IRET四、中断指令中断返回 IRET(Interruption Return) 开中断 EI(Interruption Enable) 关中断 DI(Interruption Disable)均无操作数梯形图说明在执行某个中断子程序时,禁止其它中断请求。 用于中断的指针用来指明某一中断源的中断程序的入口。中断程序允许嵌套,嵌套级别为2级。中断指针共有15个:输入中断6个,定时器中断3个,计数器中断6个。中断程序用T192~T199和T246~T249作定时器。中断的优先级别多个中断信号不同时产生时,按先后顺序中断。多个中断信号同时产生时,按指针大小中断。I 0 输入中断 0:下降沿中断 1:上

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档