S7S7--200 PLC 200 PLC 中断的处理方法中断的处理方法中断的处理方法
摘 要:中断处理在PLC所组成的控制系统中经常出现,其处理方法及应用是否恰当,对整个控制系统是非常关键的。本文针对中断的处理及应用,阐述了一些方法和经验。
关键词关键词::PLC;中断;方法
一、引言引言
中断是对PLC外部事件或内部事件的一种响应和处理。它包括:中断事件、中断处理程序、中断控制指令三个部分。
中断事件是产生中断的原因。有通信中断、外部I/O中断、高速计数器中断、定时中断四类。当中断事件发生,PLC中止当前主程序扫描,将PLC控制权交给中断处理程序。执行完毕中断处理程序中最后一条指令,自动将控制权交还PLC主程序。
本文以S7-200 PLC为例,介绍几点PLC中断应用的方法和经验,S7-200的中断连接指令(ATCH)用于在中断处理程序和中断事件之间建立关联。在中断连接指令中,EVNT操作数代表中断事件的中断事件号,INT操作数代表关联的中断处理程序号。通过这个关联建立中断事件和中断处理程序的连接,当EVNT指定的中断事件发生时,PLC就能够自动执行与之建立关联的中断处理程序。
中断允许指令(ENI)用于所有中断事件和与之关联的中断处理程序的连接,允许PLC中断执行。中断控制指令包括:中断允许指令(ENI)、中断禁止指令(DISI)、中断分离指令(DTCH)。
二、S7S7--200 PLC 200 PLC中断的几个注意点中断的几个注意点中断的几个注意点
1、执行中断处理程序,仅是一次扫描刷新,不是程序的完整执行 当中断事件发生时,执行与之关联的中断处理程序,这种操作仅是一次扫描刷新,不是程序的完整执行,类似程序一个扫描周期。
主程序主程序::MAIN 中断处理程序中断处理程序::INT_0
图1 中断处理程序执行示意程序 如图1所示的程序,当I0.0上升沿动作时,执行与中断事件号0相关联的中断处理程序INT_0,执行仅是对INT_0中程序扫描刷新一次,VW0中的数据仅进行加1一次,并不是VW0中的数据进行加1十次,使Q0.0置位。如果要想使Q0.0置位,I0.0上升沿必须动作十次,也就是中断事件发生十次,中断处理程序INT_0中的程序进行十次扫描刷新。
2、执行中断处理程序,仅是一次扫描刷新,执行完毕后,内部的状态将保持不变。
图2 中断处理程序内部状态示意程序
图2所示程序中,当I0.0上升沿中断事件发生,执行INT_0中断处理程序,尽管是一次扫描刷新,但PLC输出点Q0.0始终得电输出。即使将I0.1常闭接点断开,禁止所有的中断,Q0.0仍然得电输出。这和条件调用子程序、跳转指令、循环指令(For-Next)的状况一致,在编程中需要特别注意。
3、中断处理程序中不能使用跳变检测指令
跳变检测指令使用时,必须记录上次扫描周期中状态,否则无法检测到0→1或1→0的跳变。而中断处理程序仅是特定的一次扫描刷新,无法记录一个扫描周期间隔的状态。因此,在中断处理程序中使用跳变检测指令是无效的。
4、中断处理程序越短越好
中断事件发生,PLC暂停当前PLC扫描周期的执行,去执行中断处理程序,执行完毕返回当前扫描周期继续执行。如果中断处理程序过长,势必延长当前扫描周期的时间,严重时,PLC的看门狗监视定时器(WDT)将监测到PLC扫描周期时间超时,PLC会立即停机报警。
5、一个中断事件号不能同时和多个中断处理程序建立关联,多个中断事件可以和一个中断处理程序建立关联
如果一个中断事件号和多个中断处理程序建立关联,当这个中断事件发生时,PLC无法确定执行哪个中断处理程序。在编程中,如果一个中断事件号和多个中断处理程序建立关联,PLC只能确认最后一个被指定的关联,前面都是无效的。多个中断事件可以和一个中断处理程序建立关联。当多个中断事件同时发生时,中断事件优先级别高,中断处理程序优先为其服务,其它优先级别低的中断事件排队等待处理。
6、中断处理程序中不能使用DISI、ENI、HDEF、LSCR、END指令
PLC执行中断处理程序,等于将控制权转移到中断处理程序,为了不影响PLC系统及程序的正常运行,不能在中断处理程序中有影响全局的控制指令,比如DISI、ENI、HDEF、LSCR、END等。
中断处理的几种特殊情况举例
200 PLC中断处理的几种特殊情况举例
S7--200 PLC
三、S7
中断处理的几种特殊情况举例
1、多时段斜坡数据程序
定时中断)
)
多时段斜坡数据程序(
(定时中断
在很多情况下,温度、压力等过程控制中,需要一个随时间线性变化的设定量,用这个随时间线性变化的设定量和温度、压力实际检测的模拟量相比较,以此来控制温度、压力的执行机构,使温度、压力能够缓慢跟踪变化。
如图3所示为设定量的数据曲线VW100。图中,VW100中的数据在0~720秒时间内,变化率2.78/100ms。在1800~3000秒的时间内,变化率1/100ms。
相应程序段如图4所示,执行中断允许指令(ENI),允许PLC执行中断,将中断事件和与之关联的中断处理程序连接,PLC每隔100ms执行中断处理程序的一次扫描刷新,使VD0中的数据每隔100ms按照事先设定的数据变化率累计相加。
执行中断禁止指令(DISI),断开所有中断事件和与之关联的中断处理程序的连接,不允许执行中断处理程序,但中断连接指令(ATCH)建立的中断事件和中断处理程序的关联依然有效。再次执行中断允许指令(ENI),可以继续执行中断。即当定时器T37计时当前值为0~720s 和1800~3000s之间,允许中断,将定时中断事件和中断处理程序连接。否则,禁止执行中断处理程序。
主程序主程序::MAIN MAIN 主程序程序::MAIN
程序初始化设置,在PLC运行
的第一个扫描周期中,将时
间控制定时器T37复位,
VW100、VD0设置为0。
初始化设置定时中断时间为
100ms,100ms为数据变化率
的单位时间。
建立中断事件号10和中断处
理程序INT_0的关联,用于每
隔100ms定时中断,执行一次
中断处理程序INT_0。
时间控制定时器T37。
当定时器T37计时当前值为
0~720s时,将每100s的数据
变化率设定为278。注意,数
据均放大100倍,用于数据的
细分。
当定时器T37计时当前值为
大于1800s时,将每100s的数
据变化率改为100。
当定时器T37计时当前值为
0~720s和1800~3000s之plc的组成
间,允许中断,将定时中断
事件和中断处理程序连接。
否则,禁止执行中断处理程
序。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论