首页 理论教育 延时中断组织块仿真实验优化

延时中断组织块仿真实验优化

时间:2023-06-26 理论教育 版权反馈
【摘要】:用SFC32“SRT_DINT”启动延时中断,延迟时间为1~60000ms,精度为1ms。延时时间到时触发延时中断,调用SFC32指定的组织块。图4-39 变量表10s的延时时间到时,CPU调用OB20,M9.2变为0状态,表示延时结束。在延时过程中用仿真软件将I0.1置位为1,M9.2变为0状态,表示OB20的延时被取消,定时时间到不会调用OB20。

延时中断组织块仿真实验优化

PLC的普通定时器的工作与扫描工作方式有关,其定时精度较差。如果需要高精度的延时,可以使用延时中断OB。用SFC32“SRT_DINT”启动延时中断,延迟时间为1~60000ms,精度为1ms。延时时间到时触发延时中断,调用SFC32指定的组织块。S7-300的部分CPU只能使用OB20。

1.硬件组态

用新建项目向导生成一个名为“OB20例程”的项目(见随书光盘中的同名例程),硬件结构和组态方法与例程“OB40”的相同。型号为“DI4xNAMUR,Ex”的4点DI模块的字节地址为0,用复选框启用硬件中断,设置I0.0产生上升沿中断(见图4-31)。

2.程序设计

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

978-7-111-53804-2-Chapter04-56.jpg

图4-35 OB40中的程序

10s后延时时间到,CPU调用SFC32指定的OB20。在OB20中将它的局部变量的日期时间值的后4个字节保存到MD24(见图4-36)。同时将Q4.0置位,并通过PQB4立即输出Q4.0的新值。可以用I0.2将Q4.0复位(见图4-37)。

978-7-111-53804-2-Chapter04-57.jpg

图4-36 OB20中的程序

978-7-111-53804-2-Chapter04-58.jpg

图4-37 OB1中的程序

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

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

3.仿真实验

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

978-7-111-53804-2-Chapter04-59.jpg

图4-38 PLCSIM

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

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

978-7-111-53804-2-Chapter04-61.jpg

图4-39 变量表

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

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

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

我要反馈