- 1、本文档共100页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AN Q4.0 = Q4.0 把中断程序下载到PLC中,令CPU进入RUN状态,Q4.0就会以2Hz频率闪烁。 五、事件驱动的组织块 (一)延时中断组织决 ( OB20~OB23) 1.概述。PLC中的普通定时器的工作与扫描工作方式有关, 其定时精度受到不断变化的循环周期的影响。使用延时中断可以获得精度较高的延时, 延时时间分辨率为1ms。 各CPU可以使用的延时中断OB (OB20~OB23) 的个数与CPU的型号有关,S7-300 CPU(不包括 CPU 318) 只能使用OB20。延时中断OB 优先级的默认设置值为3~6 级。下面以 OB20 为例来说明其用法。 延时中断OB20 用 SFC 32 “SRT_DINT” 启动, 延时时间在SFC 32 中设置, 启动后经过设定的延时时间后触发中断, 调用SFC 32 指定的OB20。需要延时执行的操作放在OB20 中, 必须将延时中断OB20作为用户程序的一部分下载到CPU。 如果延时中断已被启动, 延时时间还没有到达, 可以用SFC33 “CAN DINT”取消延时中断的执行。SFC34“QRY_DINT”用来查询延时中断的状态。表6-25给出SFC 34 输出的状态字节 STATUS。表 6-26 所示为 SFC32 ~ SFC34 的参数说明。 只有在CPU 处于运行状态时才能执行延时中断OB20, 暧启动或冷启动都会清除延时中断OB 的启动事件。 如果下列任何一种情况发生, 操作系统将会调用异步错误OB: ①延时中断OB已经被 SFC 32 启动, 但是没有下载到 CPU。 ②延时中断OB正在执行延时, 又有一个延时中断OB被启动。 OB20的局部变量如表6-27所示, 这些变量的定义为用户编程提供了方便。其中变量“OB20_ PRIORITY”是代表OB20 的优先级, 默认为3, 可以通过设置这个变量参数改变优先级。 2.应用方法 首先可以在 STEP 7 中查看可支持的延时中断OB。具体方法是:在 STEP 7 的硬件组态窗口中 , 双击项目中机架上CPU 所在的行, 打开CPU 属性对话框, 点击 “Interrupts”选项页, 设置框中显示出当前CPU 支持的延时中断组织块, 如图6-36 所示。 在主程序 OB1中实现下列功能: (1) 在 I0.0 的上升沿用 SFC 32 启动延时中断OB20,l0s 后OB20被调用,在OB20中将Q4.0置位,并立即输出。 (2) 在延时过程中,如果I0.1由0变为1,在 OB1中用 SFC 33 取消延时中断,OB20不会再被调用。 (3) I0.2 由0变为1时,Q4.0 被复位。 项目的名称取为 “OB20 例程 ”, 下面是用 STL 编写的 OB1程序。 Network 1: I0.0 的上升沿时启动延时中断 A I0.0 FP M1.0 //I0.0上升沿检测 JNB m 001 //不是 I0.0 的上升沿则跳转 CALL SFC32 // 启动延时中断 OB20 OB_ NO : = 20 //组织块编号 DTME : = T#10S //延时时间为1Os SIGN : = MW12 //保存延时中断是否启动的标志 RET _VAL : = MW100 // 保存执行时可能出现的错 误代码, 为 0 时无错误 m001: NOP0 Network 2: 查询延时中断 CALL SFC 34 //查询延时中断 OB20 的状态 OB _NO : = 20 //组织块编号 RET_ VAL : = MWI02 //保存执行时可能出现的错误代码, 为 0 时无错误
文档评论(0)