首页 理论教育 应用延时中断组织块的实训二十八

应用延时中断组织块的实训二十八

时间:2023-06-20 理论教育 版权反馈
【摘要】:延时时间到时触发中断,调用SFC32指定的OB。用复选框启用硬件中断,设置I0.0产生上升沿中断。10s的延时时间到时,CPU调用OB20,M9.2变为0状态,表示延时结束。OB20中的程序将Q4.0置位为1状态,并且用MOVE指令立即写入DO模块。在OB20中保存在MD24的当前时间值为25分19秒643毫秒,与OB40中保存的时间值相减,可知定时精度是相当高的。图4-40 变量表在延时过程中用仿真软件将I0.1置位为1,M9.2变为0状态,表示OB20的延时被取消,定时时间到不会调用OB20。

应用延时中断组织块的实训二十八

PLC的普通定时器的定时精度较差,如果需要高精度的延时,可以使用延时中断OB。

用SFC32“SRT_DINT”启动延时中断,延迟时间为1~60000ms,精度为1ms。延时时间到时触发中断,调用SFC32指定的OB。CPU 316及以下的CPU只能使用OB20。

1.硬件组态

用新建项目向导生成一个名为“OB20”的项目(见随书光盘中的同名例程),CPU模块的型号为CPU 315-2DP。

打开硬件组态工具HW Config,将硬件目录中名为“DI4xNAMUR,Ex”的4点DI模块插入4号槽,自动分配的DI模块的字节地址为0。双击该模块,打开它的属性对话框(见图4-32)。用复选框启用硬件中断,设置I0.0产生上升沿中断。

2.程序设计

在OB1中调用SFC34“QRY_DINT”来查询延时中断的状态字STATUS(见图4-36),查询的结果保存在MW8,其低字节为MB9。OB_NR是延时中断OB的编号,RET_VAL为SFC执行时的错误代码,为0时无错误。

978-7-111-31641-1-Chapter04-56.jpg

图4-36 OB1中的程序

在延时过程中,可以用I0.1调用SFC33“CAN_DINT”来取消延时中断过程。

在I0.0的上升沿触发硬件中断,CPU调用OB40,在OB40中调用SFC32“SRT_DINT”启动延时中断(见图4-37),延时时间为10s。从LD12开始的8B临时局部变量是调用OB40的日期时间值,用MOVE指令保存其中的后4个字节LD16。

978-7-111-31641-1-Chapter04-57.jpg

图4-37 OB40中的程序

10s后延时时间到,CPU调用SFC32指定的OB20。在OB20中用MOVE指令保存调用OB20的日期时间值的后4个字节(见图4-38)。同时将Q4.0置位,并通过PQB4立即输出。可以用I0.2将Q4.0复位(见图4-36)。(www.xing528.com)

978-7-111-31641-1-Chapter04-58.jpg

图4-38 OB20中的程序

3.仿真实验

打开仿真软件PLCSIM,将程序和组态信息下载到仿真PLC。切换到RUN-P模式时,M9.4马上变为1状态(见图4-39),表示OB20已经下载到了CPU中。

978-7-111-31641-1-Chapter04-59.jpg

图4-39 PLCSIM

执行PLCSIM的菜单命令“Execute”→“Trigger Error OB”→“Hardware Interrupt (OB40-OB47)…”(见图4-34),在“Hardware Interrupt OB(40-47)”对话框中,输入模块的起始字节地址0和模块内的位地址0。单击“Apply”按钮,I0.0产生硬件中断,CPU调用OB40,M9.2变为1状态,表示正在执行SFC 32启动的时间延时。

在SIMATIC管理器中生成变量表(见图4-40),单击工具栏上的978-7-111-31641-1-Chapter04-60.jpg按钮,起动监控功能。MD20是在OB40中读取的BCD格式的时间值(25分9秒643毫秒),最后1位为星期的代码,5表示星期4。

10s的延时时间到时,CPU调用OB20,M9.2变为0状态,表示延时结束。OB20中的程序将Q4.0置位为1状态(见图4-38),并且用MOVE指令立即写入DO模块。可以用I0.2复位Q4.0。在OB20中保存在MD24的当前时间值为25分19秒643毫秒,与OB40中保存的时间值相减,可知定时精度是相当高的。

978-7-111-31641-1-Chapter04-61.jpg

图4-40 变量表

在延时过程中用仿真软件将I0.1置位为1,M9.2变为0状态,表示OB20的延时被取消,定时时间到不会调用OB20。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈