完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
中断处理用来实现对特殊内部事件或外部事件的快速响应。CPU检测到中断请求时,立即响应中断,调用中断源对应的中断程序(OB)。执行完中断程序后,返回被中断的程序中。
中断源类型主要有:I/O模块的硬件中断,软件中断,例如日期时间中断、延时中断、循环中断和编程错误引起的中断等。 1.日期时间中断组织块 日期时间中断组织块有OB10~OB17.CPU318只能支持OB10和OB11,其余的S7-300CPU只支持OB10.S7-400支持的日期时间中断OB的个数与CPU的型号有关。 日期时间中断可以在某一特定的时间和日期执行一次,也可以从设定的日期时间开始,周期性地重复执行,例如每分钟、每小时、每天、甚至每年执行一次。 1)设置日期时间中断有两种方法 A.采用SFC28“SET_TINT”和SFC30“ACT_TINT”设置和激活日期时间中断。 B.在硬件组态界面,通过右击CPU模块,设置选项卡”Time-Of-Day Interrupts“进行设置。在“Time-Of-Day Interrupts”选项卡中设置好时间,同时选择“Active”激活多选框,将硬件下载到CPU中,即可实现日期时间中断的自动启动。 C.结合A、B两种方法,使用B中的方法,但是不勾选“Active”复选框,用来设置中断循环周期及相关中断参数;在代码中使用SFC30“ACT_TINT”来激活日期时间中断。 2)查询日期时间中断 使用SFC31”ORY_TINT“可以查询出程序中都设置了哪些日期时间中断,以及这些中断什么时候发生。SFC31输出的状态字节如下表所示: 3)禁止和激活日期时间中断 SFC28用于取消日期时间中断、SFC29用于重新设置时间中断、SFC30用于激活日期时间中断。 在调用SFC28设置循环周期”OB10_PERIOD_EXE“时,可以设置以下参数: W#16#0000(仅执行一次)、W#16#0201(每分钟执行一次)、W#16#0401(每小时执行一次)、W#16#1001(每天执行一次)、W#16#1201(每周执行一次)、W#16#1401(每月执行一次)、W#16#1801(每年执行一次)和W#16#2001(月末执行一次) 4)下面通过一个示例来说明日期中断的使用 例:在I0.0的上升沿时启动日期时间中断OB10,在I0.1为1时禁止日期时间中断,每次中断使用MW2加1。从2015年2月19日8时开始,每分钟中断一次,每次中断MW2被加1. 本程序使用了SFC3“D_TOD_DT”用于将日期和时间整合成日期时间类型,程序编写如下: a.日期时间中断设置及激活功能FC1 b.OB块调用功能FC1 c.OB10实现NW2增1功能 d.程序运行后效果图 2.延时中断 PLC中的普通定时器的工作与扫描工作方式有关,其定时精度受到不断变化的循环周期的影响。使用延时中断可以获得精度较高的延时,延时中断以ms为单位定时。 S7提供4个延时中断OB(OB20~OB23),CPU可以使用延时中断OB的个数与CPU的型号有关,S7-300(不含CPU318)只能使用OB20,。用SFC32”SRT_DINT“启动,经过设定的时间触发中断,调用SFC32指定的OB。延时中断可以用SFC33“CAN_DINT”取消。用SFC34”ORY_DINT“查询延时中断的状态,它输出的状态字节STATUS如表所示。 例:在I0.0的上升沿用SFC32启动延时中断OB20,10s后OB20被调用,在OB20中将Q4.0置位,并立即输出。在延时过程中如果I0.1由0变为1,在OB1中用SFC33取消延时中断,OB20不会再被调用。I0.2由0变为1时Q4.0被复位。 程序编写如下: 1)OB块设置延时中断定时器 2.延时中断定时器中置位输出 程序代码可以在此下载。 |
|
|
|
只有小组成员才能发言,加入小组>>
867浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 11:15 , Processed in 0.375827 second(s), Total 47, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号