西门子PLC的ATCH中断指令使用

西门子PLC的ATCH中断指令使用,第1张

中断连接指令(ATCH)使中断事件(EVNT)与中断程序号码(INT)相联系,并启动中断事件。根据指定事件优先级组,PLC按照先来先服务的顺序对中断提供服务。

任何时刻只能激活一个用户中断。其它中断处于激活状态时,CPU发出中断暂时入队,等待以后处理。如果发生的中断数目过多,队列无法处理,则设定队列溢出状态位。当队空时,重置这些位。

中断程序必须由三部分构成:中断程序标号(即中断事件的编号)、中断程序指令和无条件返回指令。在中断程序中不能使用DISI、ENI、HDEF、LSCR和END指令。

扩展资料:

中断优先级

给中断源指定处理的次序就是给中断源确定中断优先级。中断按以下固定的优先级顺序执行:通信(最高优先级)、I/O中断和定时中断(最低优先级)。在上述3个优先级范围内,CPU按照先来先服务的原则处理中断,任何时刻只能执行一个用户中断程序。

如果发生中断过于频繁,使中断产生的速率比可处理的速率快,或中断被DISI指令禁止,中断队列溢出状态位被置1。只应在中断程序中使用这些位,因为当队列变空或返回主程序时,这些位会被复位。

参考资料:

百度百科-中断指令

硬件故障中断、试管访问中断、程序中断、外部中断、输入输出中断。 根据中断事件的重要性和紧急程度来确定中断的优先级。中断优先级在硬件设计中是固定的,不同的系统对优先级的划分是不同的。一般来说,优先级从高到低的顺序是:硬件故障中断、访问中断、程序中断、外部中断、输入输出中断。一般来说,中断设备以预定的顺序响应同时发生的中断事件。这种预先确定的顺序被称为中断的优先级。中断设备首先响应高优先级的中断事件,然后响应低优先级的中断事件。在实际系统中,经常会遇到多个中断源同时请求中断的情况。这时,CPU必须确定首先服务哪个中断源,以及服务的顺序。解决方法是中断优先级排队,即根据中断源请求的优先级,排列中断处理的优先级,也称为优先级,优先级最高的中断请求先得到响应。另外,CPU在处理一个中断时,应该能够响应另一个优先级更高的中断请求,屏蔽同级或下级的中断请求,形成中断嵌套。

程序中断方式的由来是指由于某种事件的发生(硬件或者软件的),计算机暂停执行当前的程序,转而执行另一程序,以处理发生的事件,处理完毕后又返回原程序继续作业的过程。中断是处理器一种工作状态的描述。我们把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。

中断源

一般来说,外部中断主要有以下几种:

一、I/O设备:如显示器、键盘、打印机等。

二、数据通道:软盘、硬盘、光盘等。

三、实时时钟:如外部的定时电路等。

四、用户故障源:如掉电、奇偶校验错误等。

产生于CPU内部的中断源有几种:

一、由CPU得运行结果产生:如除数为0、结果溢出、单步执行等。

二、执行中断指令INT:INT3

三、非法 *** 作或指令引起异常处理。

你的外部中断应该是属于下降沿触发,当有一个下降沿到来时外部中断请求标志IE0或IE1(外部中断0或外部中断1请求中断标志,下面简称为IEx)就会置1,当进入中断程序后IEx由硬件归零。也就是说单片机当检测到IEx为1的时候就会进入到外部中断程序。

现在来分析一下为什么你的程序会执行两次中断。

当单片机外部中断引脚第一次接收到一个下降沿时,IEx被置1,进入中断程序,随即IEx被硬件清零。然而由于你用杜邦线接触P32口存在抖动(你感觉不到),外部中断引脚再次接受到一个下降沿,IEx又被置1,单片机又要响应中断,但此时由于上一个中断程序未执行完,单片机将等待外部中断程序执行完(你可以理解为有两个中断事件,但这两个事件优先级相同,所有按顺序响应)。在这个过程中,你的接触仍然会产生很多下降沿,但因为IEx只有响应了中断事件后才会清零,因此IEx一直为1。当第一次的中断程序执行结束后,单片机检测到IEx又是1,马上又再次进入中断。因为你的接触时间远远小于你的中断程序执行时间,因此在第二次执行中断程序前已不存在下降沿,所以进入第二次中断程序后,IEx就被清零了,这样执行完第二次中断程序后就不会再次进入中断了。

说了那么多希望你能明白吧。不明白可以翻查相关单片机外部中断相关资料。

中断服务程序:处理器处理“急件”,可理解为是一种服务,是通过执行事先编好的某个特定的程序来完成的,这种处理“急件”的程序被称为——中断服务程序。

当中央处理器正在处理内部数据时,外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作,这样的过程称为中断。实现这一功能的部件称为中断系统,申请CPU中断的请求源称为中断源,单片机的中断系统一般允许多个中断源,当多个中断源同时向CPU请求中断时,就存在一个中断优先权的问题。通常根据中断源的优先级别,优先处理最紧急事件的中断请求源,即最先响应级别最高的中断请求。

1、中断请求:中断事件一旦发生或者中断条件一旦构成,中断源提交“申请报告”,与请求CPU暂时放下目前的工作而转为中断源作为专项服务

2、中断屏蔽:虽然中断源提交了“申请报告”,但是,是否得到CPU的响应,还要取决于“申请报告”是否能够通过2道或者3道“关卡”(中断屏蔽)送达CPU(相应的中断屏蔽位等于1,为关卡放行;反之相应的中断屏蔽位等于0,为关卡禁止通行);

3、中断响应:如果一路放行,则CPU响应中断后,将被打断的工作断点记录下来(把断点地址保护到堆栈),挂起“不再受理其他申请报告牌”(清除全局中断标志位GIE=0),跳转到中断服务子程序

4、保护现场:在处理新任务时可能破坏原有的工作现场,所以需要对工作现场和工作环境进行适当保护;

5、调查中断源:检查“申请报告”是由哪个中断源提交的,以便作出有针对性的服务;

6、中断处理:开始对查明的中断源进行有针对性的中断服务;

7、清除标志:在处理完毕相应的任务之后,需要进行撤消登记(清除中断标志),以避免造成重复响应;

8、恢复现场:恢复前面曾经被保护起来的工作现场,以便继续执行被中断的工作;

9、中断返回:将被打断的工作断点找回来(从堆栈中恢复断点地址),并摘下“不再受理其他申请报告牌”(GIE=1),继续执行原先被打断的工作。

概念:中断程序是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断程序。中断程序的应用大大提高了计算机效率。

不同的计算机其硬件结构和软件指令是不完全相同的,因此,中断系统也是不相同的。计算机的中断系统能够加强对多个任务事件的处理能力。中断机制是现代计算机系统中的基础设施之一,它在系统中起着通信网络作用,以协调系统对各种外部事件的响应和处理。中断是实现多道程序设计的必要条件。 中断对系统发生的某个事件作出的一种反应。 引起中断的事件称为中断源。

保存现场,分析原因,转中断处理程序,恢复现场。所谓中断是指系统发生某一事件后,CPU暂停正在执行的程序转去执行处理该事件的程序过程,处理中断事件的程序称为中断处理程序,产生中断信号的那个部件称为中断源。硬件的中断机构与处理这些中断的程序统称为中断系统。当中断发生时,硬件机构自动地进入响应中断过程,由 *** 作系统的中断处理程序对中断事件进行处理,中断模式时就是说CPU不主动访问这些设备,,只管处理自己的任务,没任务就闲着也就是说在那等着如果有设备要与CPU联系,或要CPU处理一些事情,他会给CPU发一个中断请求信号

以上就是关于西门子PLC的ATCH中断指令使用全部的内容,包括:西门子PLC的ATCH中断指令使用、中断优先级的顺序为、程序中断方式的由来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10112523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存