- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
子程序控制指令
* 子程序控制指令 子程序调用指令 子程序定义指令 宏 指 令 功能:当执行条件ON时,调用编号为N的子程序。 一、子程序调用和子程序定义指令 功能:用SBN定义子程序N开始,用RET定义子程序结束。 1. 指令格式和功能 SBS (91) N @ SBS (91) N SBS (91) N @ SBS (91) N SBN (92) N RET (93) SBN (92) N RET (93) 2. 执行子程序调用指令的过程 主程序段 SBS(91) 000 主程序段 SBS(91) 001 主程序段 SBN(92) 000 子程序000 RET(93) SBN(92) 001 子程序001 RET(93) END(01) 主程序段 1 主程序段 2 主程序段 3 子程序 001 注意的问题: (1) 指令SBS必须满足执行条件时,才能调用子程序。 (2) 子程序段必须用指令SBN/RET来定义。 (3) 子程序必须放在主程序之后、指令END之前。 子程序 000 (4) 子程序不能自调用。 (5) 子程序嵌套不能超过16级。 ①执行指令MOV向通道220传送数据0001(使22000ON)。 3. 子程序调用举例( 1 ) 主程序 子程序 25502 END(01) RET(93) MOV(21) 220 010 MOV(21) # 0001 220 SBS(91) 005 00100 00100 25313 KEEP 01100 25314 SBN(92) 005 22007 25502 00100 25313 SFT(10) 220 220 分析程序功能 (1) 当00100为OFF时,执行主程序。 ② 执行指令KEEP,由01100输出秒脉冲(注意25502的作用)。 ① 只要00100一直ON,每个扫描周期都执行移位寄存器指令SFT,使22000的ON状态每秒向高位移一位。 移位时间取决于00100 ON的时间。 (2) 当00100为ON时,执行主程序中的指令SBS,中断执行主程序,转去执行子程序 005: 25502 ② 执行指令MOV,将通道220的内容传送到通道010。 注意几个问题: ①主程序中若将SBS改成@SBS,会产生什么现象? ② 当22007为ON时,通道220的内容将如何变化?此后220的内容如何变化? ③ 返回主程序,继续执行主程序中的指令KEEP。 只要00100ON,上述过程将持续进行。 主程序 子程序 END(01) RET(93) MOV(21) 220 010 MOV(21) # 0001 220 SBS(91) 005 00100 00100 25313 KEEP 01100 25314 SBN(92) 005 22007 25502 00100 25313 SFT(10) 220 220 子程序调用指令举例(2) @MOV # 0004 200 25315 SBS(91) 002 CNT000 25315 00000 25502 CNT000 CNT000 200 TIM001 # 0020 01000 01000 CNT000 TIM001 SBN(92) 002 25313 200 ADD(30) 200 #0002 CMP(20) 200 #0010 25506 MOV(21) # 0004 200 RET(93) END(01) 主程序 子程序 MOV # 0004 200 25315 SBS(91) 002 CNT000 25315 00000 25502 CNT000 CNT000 200 TIM001 # 0020 01000 01000 CNT000 TIM001 主程序 先分析主程序 PLC上电,即将#0004传送到通道200,复位CNT000。 (1)若00000ON ,CNT000开始计数(或定时)。计数器设定值为通道200的内容,计数器能自复位。 (2) 若CNT000 ON ( ON一个扫描周期 ): ① 停止执行主程序,转去执行子程序002。 ②子程序执行完毕,返回执行主程序:将01000置为ON、并使TIM001开始定时(2s)。 SBN(92)
文档评论(0)