西门子PLC的ATCH中断指令使用
中断连接指令(ATCH)使中断事件(EVNT)与中断程序号码(INT)相联系,并启动中断事件。根据指定事件优先级组,PLC按照先来先服务的顺序对中断提供服务。
任何时刻只能激活一个用户中断。其它中断处于激活状态时,CPU发出中断暂时入队,等待以后处理。如果发生的中断数目过多,队列无法处理,则设定队列溢出状态位。当队空时,重置这些位。
中断程序必须由三部分构成:中断程序标号(即中断事件的编号)、中断程序指令和无条件返回指令。在中断程序中不能使用DISI、ENI、HDEF、LSCR和END指令。
扩展资料:
中断优先级
给中断源指定处理的次序就是给中断源确定中断优先级。中断按以下固定的优先级顺序执行:通信(***优先级)、I/O中断和定时中断(***优先级)。在上述3个优先级范围内,CPU按照先来先服务的原则处理中断,任何时刻只能执行一个用户中断程序。
如果发生中断过于频繁,使中断产生的速率比可处理的速率快,或中断被DISI指令***止,中断队列溢出状态位被置1。只应在中断程序中使用这些位,因为当队列变空或返回主程序时,这些位会被复位。
参考资料:百度百科-中断指令
中断的中断指令
中断指令的一般格式
INT n 其中,n称为中断类型码,n=0~255。
中断指令INT n调用n号中断处理程序,在中断处理程序中,用中断返回指令IRET指令使CPU返回主程序断点继续执行。 中断指令(INT n)和调用程序指令(CALL)很相似,它们均转入内存中其它程序段执行,执行完后再转回。
主程序用CALL 目标地址调用子程序,如图3-25所示。主程序用INT n调用中断处理程序,如图3-26所示。数值n是中断处理程序的编号,它代表了中断处理程序的地址。中断处理程序的地址称为中断矢量或中断向量,它是一个4字节值,2字节段地址,2字节偏移量。在8086处理器中,用中断矢量表或称中断向量表来管理256个中断处理程序的地址。
中断向量表存放在内存地址***区域上(0段0000H~03FFH),共1024字节(256×4),其内存放256个中断处理程序的地址。
例如,设在中断向量表中,0000:0084H~0000:0087H四个单元存放的值依此为00H、20H、00H、30H,则21H号中断处理程序的地址为3000H:2000H。 中断指令INT和中断返回指令IRET的执行过程是:
INT n:
① SP减2,把标志寄存器的值(记为FLAGS)推入堆栈。
② 标志位TF和IF清0,以***止跟踪方式(单步方式)和屏蔽INTR中断。
③ SP减2,把返回地址的段值(CS)推入堆栈。
④ SP减2,把返回地址的偏移量(IP)推入堆栈。
⑤ 根据中断类型码n,从中断矢量表中取得中断处理程序地址,取得的段地址送给CS,偏移量送给IP。从而使CPU转入中断处理程序运行。
IRET:
中断处理程序中最后被执行的指令是IRET。其操作是:
① 从堆栈中取出一字(INT指令保存的返回地址偏移量),送给 IP,然后使SP加2。
② 从堆栈中取出一字(INT指令保存的返回地址段值),送给 CS,然后使SP加2。
③ 从堆栈中取出一字(INT指令保存的标志寄存器的值),送给 标志寄存器,然后使SP加2。 IRET执行后,CPU返回到INT指令后面的一条指令。
几个特殊的中断处理程序
(1) 0号中断处理程序
0号中断处理程序用于处理除法运算溢出,称为除数为0中断。当CPU检测到除法运算溢出,自动调用0号中断处理程序,无INT 0指令。
(2) 1号中断处理程序
当CPU的TF标志置1时,CPU每执行一条指令,就调用1号中断处理程序,因此,它称为单步中断。 当CPU检测到TF=1时,自动进入单步方式,无INT 1指令。 该中断处理程序用于调试程序。
(3) 2号中断处理程序
用于处理NMI非屏蔽硬件中断请求,无INT 2指令。
(4) 3号中断处理程序 用INT 3指令调用。称为断点中断。用于调试程序。
(5) 4号中断处理程序 用INTO指令调用。该中断处理程序用于处理有符号数运算溢出(OF=1)。称为溢出中断。
中断处理程序的应用:
(1) BIOS和操作系统(如DOS、Windows)的常用功能程序,一般设计为中断处理程序的形式,用INT n指令调用。例如,DOS功能设计为21H号中断处理程序,用INT 21H指令调用。
(2) 硬件中断处理。当外部设备希望CPU处理某事件时,它向中断控制器8259发出一个INTR中断请求,8259再向CPU发出中断请求。
当CPU响应中断时(发出中断响应信号 ),8259向CPU提供中断类型码,CPU就转入对应的中断处理程序,处理该事件。
(3) 程序员编写程序时,也可以把常用的功能程序,设计为中断处理程序的形式,用INT n指令调用。
plc中断指令有什么用
plc中断指令的作用是CPU正常运行期间,停止当前操作,执行其他特殊操作。
PLC的CPU在整个控制过程中,有些控制要取决于外部事件。比如只有外部设备请求CPU发送数据时,CPU才能向这个设备发送数据。这类控制的进行是取决于外部设备的请求和CPU的响应,当CPU在接受了外部设备的请求时,CPU就要暂停其当前的工作,去完成外部过程的请求,这种工作方式就叫中断方式。
更多关于plc中断指令有什么用,进入:查看更多内容
中断指令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于中断指令int 17h的中断服务程序、中断指令的信息别忘了在本站进行查找喔。