S7-200PLC中断的处理方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

PLC和变频器和变频器和变频器和变频器((((zhyo720211.gkbk.com))))搜集整理搜集整理搜集整理搜集整理S7S7S7S7----200PLC200PLC200PLC200PLC中断的处理方法中断的处理方法中断的处理方法中断的处理方法摘摘摘摘要要要要::::中断处理在PLC所组成的控制系统中经常出现,其处理方法及应用是否恰当,对整个控制系统是非常关键的。本文针对中断的处理及应用,阐述了一些方法和经验。关键词关键词关键词关键词::::PLC;中断;方法一一一一、、、、引言引言引言引言中断是对PLC外部事件或内部事件的一种响应和处理。它包括:中断事件、中断处理程序、中断控制指令三个部分。中断事件是产生中断的原因。有通信中断、外部I/O中断、高速计数器中断、定时中断四类。当中断事件发生,PLC中止当前主程序扫描,将PLC控制权交给中断处理程序。执行完毕中断处理程序中最后一条指令,自动将控制权交还PLC主程序。本文以S7-200PLC为例,介绍几点PLC中断应用的方法和经验,S7-200的中断连接指令(ATCH)用于在中断处理程序和中断事件之间建立关联。在中断连接指令中,EVNT操作数代表中断事件的中断事件号,INT操作数代表关联的中断处理程序号。通过这个关联建立中断事件和中断处理程序的连接,当EVNT指定的中断事件发生时,PLC就能够自动执行与之建立关联的中断处理程序。中断允许指令(ENI)用于所有中断事件和与之关联的中断处理程序的连接,允许PLC中断执行。中断控制指令包括:中断允许指令(ENI)、中断禁止指令(DISI)、中断分离指令(DTCH)。二二二二、、、、S7S7S7S7----200PLC200PLC200PLC200PLC中断的几个注意点中断的几个注意点中断的几个注意点中断的几个注意点1、执行中断处理程序,仅是一次扫描刷新,不是程序的完整执行当中断事件发生时,执行与之关联的中断处理程序,这种操作仅是一次扫描刷新,不是程序的完整执行,类似程序一个扫描周期。PLC和变频器和变频器和变频器和变频器((((zhyo720211.gkbk.com))))搜集整理搜集整理搜集整理搜集整理主程序主程序主程序主程序::::MAINMAINMAINMAIN中断处理程序中断处理程序中断处理程序中断处理程序::::INT_0INT_0INT_0INT_0图1中断处理程序执行示意程序如图1所示的程序,当I0.0上升沿动作时,执行与中断事件号0相关联的中断处理程序INT_0,执行仅是对INT_0中程序扫描刷新一次,VW0中的数据仅进行加1一次,并不是VW0中的数据进行加1十次,使Q0.0置位。如果要想使Q0.0置位,I0.0上升沿必须动作十次,也就是中断事件发生十次,中断处理程序INT_0中的程序进行十次扫描刷新。2、执行中断处理程序,仅是一次扫描刷新,执行完毕后,内部的状态将保持不变。PLC和变频器和变频器和变频器和变频器((((zhyo720211.gkbk.com))))搜集整理搜集整理搜集整理搜集整理图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等。三三三三、、、、S7S7S7S7----200PLC200PLC200PLC200PLC中断处理的几种特殊情况举例中断处理的几种特殊情况举例中断处理的几种特殊情况举例中断处理的几种特殊情况举例1111、、、、多时段斜坡数据程序多时段斜坡数据程序多时段斜坡数据程序多时段斜坡数据程序((((定时中断定时中断定时中断定时中断))))在很多情况下,温度、压力等过程控制中,需要一个随时间线性变化的设定量,用这个随时间线性变化的设定量和温度、压力实际检测的模拟量相比较,以此来控制温度、压力的执行机构,使温度、压力能够缓慢跟踪变化。PLC和变频器和变频器和变频器和变频器((((zhyo720211.gkbk.com))))搜集整理搜集整理搜集整理搜集整理如图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之间,允许中断,将定时中断事件和中断处理程序连接。否则,禁止执行中断处理程序。PLC和变频器和变频器和变频器和变频器((((zhyo720211.gkbk.com))))搜集整理搜集整理搜集整理搜集整理主程序主程序主程序主程序::::MAINMAINMAINMAIN主主主主程序程序程序程序::::MAINMAINMAINMAIN程序初始化设置,在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和变频器和变频器和变频器和变频器((((zhyo720211.gkbk.com))))搜集整理搜集整理搜集整理搜集整理中断处理程序中断处理程序中断处理程序中断处理程序::::INT_0INT_0INT_0INT_0中断处理程序中断处理程序中断处理程序中断处理程序INT_0INT_0INT_0INT_0中断处理程序每隔100ms扫描刷新一次。将双字VD0中数据每隔100ms与变化率数据VD4相加,并送入VD0中,用于下次累计。将VD0中的数据除以100,将放大100倍的数据还原,送入VD8中。采用双字-字转换指令,将VD8中的32位整数转换成16位整数,送入字VW100中。图4多时段斜坡数据程序2222、、、、两个中断事件如何单独控制两个中断事件如何单独控制两个中断事件如何单独控制两个中断事件如何单独控制如有两组指示灯(分别为红色和绿色),分别由旋钮SF1(I0.0)和旋钮SF2(I0.1)控制其启动。当旋钮SF1闭合时,三只红色指示灯按的顺序和200ms的时间间隔循环亮灭。同样,当旋钮SF2闭合时,三只绿色指示灯按的顺序和200ms的时间间隔循环亮灭。在此采用两个定时中断的方式实现控制要求。相应程序段如图5所示。执行中断允许指令(ENI),允许PLC执行中断,将两个定时中断事件10、11和与之关联的两个中断处理程序INT_0、INT_1连接,使每隔200ms这个中断事件发生时,执行中断处理程序的一次扫描刷新,使中断处理程序中的三个输出点各自移位一次,实现控制工艺的要求。在此关键是ENI指令和DTCH指令的理解以及移位寄存器指令的运用。PLC和变频器和变频器和变频器和变频器((((zhyo720211.gkbk.com))))搜集整理搜集整理搜集整理搜集整理主程序主程序主程序主程序::::MAINMAINMAINMAIN主程序主程序主程序主程序MAINMAINMAINMAIN程序初始化设置,在PLC运行的第一个扫描周期中,将HR1(Q0.2)、HG1(Q0.3)指示灯置位。同时设定两个定时中断的时间为200ms。当旋钮SF1(I0.0)闭合时,定时中断事件号10和中断处理程序INT_0建立关联。当旋钮SF1(I0.0)断开时,禁止定时中断事件10。断开定时中断事件号10与中断处理程序的连接,并复位定时中断事件号10与中断处理程序的关联。当旋钮SF2(I0.1)闭合时,定时中断事件号11和中断处理程序INT_1建立关联。当旋钮SF2(I0.1)断开时,禁止定时中断事件11。断开定时中断事件号11与中断处理程序的连接,并复位定时中断事件号11与中断处理程序的关联。当旋钮SF1(I0.0)和旋钮SF2(I0.1)闭合时,执行中断允许指令,将所有中断事件和与之关联的中断处理程序连接。允许PLC中断。PLC和变频器和变频器和变频器和变频器((((zhyo720211.gkbk.com))))搜集整理搜集整理搜集整理搜集整理中断处理程序中断处理程序中断处理程序中断处理程序::::INT_0INT_0INT_0INT_0中中中中断处理程序断处理程序断处理程序断处理程序::::INT_0INT_0INT_0INT_0中断处理程序INT_0每隔200ms扫描刷新一次。采用移位寄存器指令,将Q0.0、Q0.1、Q0.2三个输出每隔200ms左移一位。中断处理程序中断处理程序中断处理程序中断处理程序::::INT_INT_INT_INT_1111中中中中断处理程序断处理程序断处理程序断处理程序::::INT_INT_INT_INT_1111中断处理程序INT_1每隔200ms扫描刷新一次。采用移位寄存器指令,将Q0.3、Q0.4、Q0.5三个输出每隔200ms右移一位。3、T32/T96定时器中断的设置一个中断事件能够被PLC程序执行,这种事件状态必须维持最少一个扫描周期的时间,否则PLC无法捕捉到这个事件。PLC和变频器和变频器和变频器和变频器((((zhyo720211.gkbk.com))))搜集整理搜集整理搜集整理搜集整理图6T32/T96定时器中断的设置如图6所示的时间循环标准程序中。它要求定时器T32在0~10s之间不断的循环,不断循环的计时当前值被其它程序段使用。T32和T96这两个定时器的分辨率是1ms,而PLC一个扫描周

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功