- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2. 中断优先级和排对等候 优先级是指多个中断事件同时发出中断请求时,CPU对中断事件响应的优先次序。 S7-200规定的中断优先由高到低依次是:通信中断、I/O中断和定时中断。 每类中断中不同的中断事件又有不同的优先权。 一个程序中总共可有128个中断。 S7-200在各自的优先级组内按照先来先服务的原则为中断提供服务。在任何时刻,只能执行一个中断程序。 中断指令 LAD STL ENI DISI ATCH INT,EVNT DTCH EVNT 操作数及数据类型 无 无 INT:常量 0-127 EVNT:常量,INT/EVNT数据类型:字节 EVNT:常量, 数据类型:字节 中断程序 1. 中断程序的概念 中断程序是为处理中断事件而事先编好的程序。中断程序不是由程序调用,而是在中断事件发生时由操作系统调用。在中断程序中不能改写其他程序使用的存储器,最好使用局部变量。中断程序应实现特定的任务,应“越短越好”,中断程序由中断程序号开始,以无条件返回指令(CRETI)结束。在中断程序中禁止使用DISI、ENI、HDEF、LSCR和END指令。 2. 建立中断程序的方法 方法一:从“编辑”菜单→选择插入(Insert)→ 中断(Interrupt)。 方法二:从指令树,用鼠标右键单击“程序块”图标并从弹出菜单→选择插入(Insert)→ 中断(Interrupt)。 方法三:从“程序编辑器”窗口,从弹出菜单用鼠标右键单击插入(Insert)→ 中断(Interrupt)。 程序编辑器从先前的POU显示更改为新中断程序,在程序编辑器的底部会出现一个新标记,代表新的中断程序。 例:编写由I0.1的上升沿产生的中断事件的初始化程序。 分析:查表可知,I0.1上升沿产生的中断事件号为2。所以在主程序中用ATCH指令将事件号2和中断程序0连接起来,并全局开中断。程序如图所示。 网络1 LD SM0.1 //首次扫描时 ATCH INT_0 2 //将INT_0 和EVNT2连接 ENI //并全局启用中断 网络2 LD SM5.0 //如果检测到I/O错误 DTCH 2 //禁用用于I0.1的上升沿中断 (本网络为选项) 网络3 LD SM5.0 // 当SM5.0=1时 DISI //禁用所有的中断 【例】编程完成采样工作,要求每10ms采样一次 分析:完成每10ms采样一次,需用定时中断,查表可知,定时中断0的中断事件号为10。因此在主程序中将采样周期(10ms)即定时中断的时间间隔写入定时中断0的特殊存储器SMB34,并将中断事件10和INT-0连接,全局开中断。在中断程序0中,将模拟量输入信号读入,程序如图所示。 LD I0.0 MOVB 10, SMB34 // 将采样周期设为10毫秒 ATCH INT_0, 10 // 将事件10连接INT_0 ENI // 全局开中断 LD SM0.0 MOVW AIW0, VW100 //读入模拟量AIW0 【例】利用定时中断功能编制一个程序,实现如下功能:当I0.0由OFF→ON,Q0.0亮1s,灭1s,如此循环反复直至I0.0由ON→OFF,Q0.0变为OFF。 主程序:网络1 LD I0.0 EU ATCH INT_0, 21 ENI 网络2 LDN M0.0 A I0.0 TON T32, +1000 中断程序INT-0 LDN Q0.0 = Q0.0 网络3 LD T32 = M0.0 网络4 LD I0.0 ED DTCH 21 DISI 中断程序编程实训 (1)利用T32定时中断编写程序,要求产生占空比为50%,周期为4s的的方波信号。 (2)用定时中断实现喷泉的模拟控制,控制要求如前面例子。 3. 参考程序 (1)产生占空比为50%,周期为4s的的方波信号,主程序和中断程序如图所示 。 (2)喷泉的模拟控制参考程序如图所示。 分析:程序中采用定时中断0,其中断号为10,定时中断0的周期控制字SMB34中的定时时间设定值的范围为1-255ms。喷泉模拟控制的移位时间为0.5s,大于定时中断0的最大定时时间设定值255ms,所以将中断的时间间隔设为100ms,这样中断执行5次,其时间间隔为0.5s,在程序中用VB0来累计中断的次数,每执行一次中断,VB0在中断程序中加1,当VB0=5时,即时间间隔为0.5s,QB0移一位。 7.8 高速计数器与高速脉冲输出指令 7.8.2 高速计数器的工
原创力文档


文档评论(0)