S7-200SMART中断指令
	                        
	                            
	                            发布于2022-12-14 16:03
	                            
	                                
	                                47
	                            
	                            
	                                
	                                2
	                            
	                            
	                            标签:S7-200
	                        
	                     
	                    
	                        
	  中断是 CPU 停止当前的任务转而去执行其他任务的过程。中断执行前CPU  会对当前的执行环境进行保留(保存现场),当中断处理完成后,会恢复现场以继续执行之前的任务。中断机制是一种非常高效的机制,它既能保证一些重要事件发生后  CPU的及时处理,又保证事件未发生时 CPU 不浪费宝贵的运行资源去反复监测事件。
	  S7-200 SMART 系列 PLC 的 CPU  具有中断功能,用于实时控制、高速处理、网络通信及一些特殊控制任务的处理。引起中断的事件有很多种类,S7-200 SMART CPU 最多支41  个中断事件(其中2个为预留),分为三大类:通信中断、输入/输出(I/O)中断和时间中断。
	  中断事件具有不同的优先级。S7-200 SMART规定中断优先由高到低依次是:通信中断、I/O 中断和时间中断。当 CPU  刚进人运行模式时,默认情况下所有中断都是被禁止的。
	  中断使能指令 ENI 可以在全局范围内使能所有中断。中断禁用指令 DISI 可以在全局范围内禁用所有中断(已经激活的中断仍然在队列中)。中断返回指令  RETI 可以有条件地从中断子程序中返回。
	  中断子程序是处理中断事件的程序代码。当中断事件发生后,CPU的操作系统会调用相应的中断子程序对中断进行处理。但是,中断事件是怎样跟中断子程序联系起来的呢?这就需要用到中断连接指令(ATCH)。ATCH  指令将中断事件和中断子程序相关联并使能中断事件。ATCH 指令有两个参数:INT 和 EVNT。INT 是中断子程序的名称;EVNT 是中事件的编号。如图  3-148 所示代码是在 CPU的第一个扫描周期,将中断事件9(端口0发完成)与中断子程序(INT_ 0)相联系。
	
 
	  图 3-148 中断连接指令示例
	  除了中断连接指令,还有中断分离指令(DTCH)和中断事件移除指令(CLR EVNT)。DTCH  指令将中断事件和中断子程序分离,并使该中断事件失效。DTCH 指令只有一个参数,即 EVNT,表示中断事件的编号。
	  中断分离指令示例如图 3-149 所示。当检测到 I/O 错误时,禁用 I0.3 的上升沿中断。
	
 
	  图 3-149 中断分离指令示例
	  CLR EVNT 指令可以从中断队列中移除特定类型的中断事件。CLR EVNT 指令只有个参数,即  EVNT,表示中断事件的编号。中断事件移除指令示例如图 3-150 所示,将中断事件 17(HSC2方向改变)移除。
	
 
	  图3-150 中断事件移除指令实例