最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

s7-200中断处理方法

IT圈 admin 40浏览 0评论

2024年2月28日发(作者:勇谷之)

和变频器(和变频器()搜集整理

S7-S7-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)。

二、S7-S7-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等。

三、S7-S7-200 PLC中断处理的几种特殊情况举例200 PLC中断处理的几种特殊情况举例

中断处理的几种特殊情况举例

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之间,允许中断,将定时中断事件和中断处理程序连接。否则,禁止执行中断处理程序。

和变频器(和变频器()搜集整理

中断处理程序:中断处理程序:INT_0

INT_0

中断处理程序INT_0中断处理程序INT_0

INT_0

中断处理程序每隔100ms扫描刷新一次。将双字VD0中数据每隔100ms与变化率数据VD4相加,并送入VD0中,用于下次累计。

将VD0中的数据除以100,将放大100倍的数

据还原,送入VD8中。

采用双字-字转换指令,将VD8中的32位整

数转换成16位整数,送入字VW100中。

图4 多时段斜坡数据程序

2、两个中断事件如何单独控制

两个中断事件如何单独控制

如有两组指示灯(分别为红色和绿色),分别由旋钮SF1(I0.0)和旋钮SF2(I0.1)控制其启动。当旋钮SF1闭合时,三只红色指示灯按

的顺序和200ms的时间间隔循环亮灭。同样,当旋钮SF2闭合时,三只绿色指示灯按 的顺序和200ms的时间间隔循环亮灭。在此采用两个定时中断的方式实现控制要求。相应程序段如图5所示。

执行中断允许指令(ENI),允许PLC执行中断,将两个定时中断事件10、11和与之关联的两个中断处理程序INT_0、INT_1连接,使每隔200ms这个中断事件发生时,执行中断处理程序的一次扫描刷新,使中断处理程序中的三个输出点各自移位一次,实现控制工艺的要求。在此关键是ENI指令和DTCH指令的理解以及移位寄存器指令的运用。

和变频器(和变频器()搜集整理

主程序:主程序:MAIN

MAIN 主程序MAIN主程序MAIN

MAIN

程序初始化设置,在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中断。

和变频器(和变频器()搜集整理

中断处理程序:中断处理程序:INT_0

INT_0 中断处理程序:断处理程序:INT_0

INT_0

中断处理程序INT_0每隔200ms扫描刷新一次。

采用移位寄存器指令,将Q0.0、Q0.1、Q0.2三个输出每隔200ms左移一位。

中断处理程序:INT_11

中断处理程序:中断处理程序:INT_断处理程序:INT_1INT_1

中断处理程序INT_1每隔200ms扫描刷新一

次。

采用移位寄存器指令,将Q0.3、Q0.4、

Q0.5三个输出每隔200ms右移一位。

3、T32/T96定时器中断的设置

一个中断事件能够被PLC程序执行,这种事件状态必须维持最少一个扫描周期的时间,否则PLC无法捕捉到这个事件。

和变频器(和变频器()搜集整理

图6 T32/T96定时器中断的设置

如图6所示的时间循环标准程序中。它要求定时器T32在0~10s之间不断的循环,不断循环的计时当前值被其它程序段使用。

T32和T96这两个定时器的分辨率是1ms,而PLC一个扫描周期时间一般是几个毫秒。这样,在一个扫描周期内,T32和T96的计时当前值可能多次加1计数,一个特定的计时当前值(范例中是10000)不可能维持一个扫描周期。如果捕捉这个特定的计时当前值,即当要求T32的计时当前值等于10000时,并让这个计时当前值执行一定的指令,概率是非常低的。因此,程序是不能可靠的运行,可能偶尔正常一次。

要正常运行,必须采用中断的方式对事件捕捉。这也就是设置T32/T96定时器中断的原因,采用中断方式的程序如图6所示。而当定时器T32的计时当前值≥10000(10s),程序中的T32的常开接点能够闭合,程序能够正常的执行。

和变频器(和变频器()搜集整理

四、小结

小结

由于中断处理在PLC所组成的控制系统中经常出现,其处理方法及应用是否恰当,对整个控制系统是非常关键的。我们以西门子S7-200 PLC为例分析了建立中断事件和中断处理程序的连接方法与技巧,操作简单、灵活、可靠,我们已在工程实践中进行了多次成功的应用,可供其它类型的PLC中断处理与应用借鉴,供大家参考。

第一作者,第一作者,武丽,武丽,女,1967年出生1967年出生,年出生,本科,本科,副教授。副教授。1989年毕业于中南工业大学自动化专业1989年毕业于中南工业大学自动化专业,年毕业于中南工业大学自动化专业,现在西南科技大

现在西南科技大

学信息工程学院任教,学信息工程学院任教,主要研究方向:主要研究方向:电气控制技术、电气控制技术、自动检测及系统集成。自动检测及系统集成。

联系方式:联系方式:四川绵阳西南科技大学信息工程学院四川绵阳西南科技大学信息工程学院 621002息工程学院 621002

621002

电话:电话:0816-,6088991,0816-

6621267

email:wuli_swust@

2024年2月28日发(作者:勇谷之)

和变频器(和变频器()搜集整理

S7-S7-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)。

二、S7-S7-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等。

三、S7-S7-200 PLC中断处理的几种特殊情况举例200 PLC中断处理的几种特殊情况举例

中断处理的几种特殊情况举例

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之间,允许中断,将定时中断事件和中断处理程序连接。否则,禁止执行中断处理程序。

和变频器(和变频器()搜集整理

中断处理程序:中断处理程序:INT_0

INT_0

中断处理程序INT_0中断处理程序INT_0

INT_0

中断处理程序每隔100ms扫描刷新一次。将双字VD0中数据每隔100ms与变化率数据VD4相加,并送入VD0中,用于下次累计。

将VD0中的数据除以100,将放大100倍的数

据还原,送入VD8中。

采用双字-字转换指令,将VD8中的32位整

数转换成16位整数,送入字VW100中。

图4 多时段斜坡数据程序

2、两个中断事件如何单独控制

两个中断事件如何单独控制

如有两组指示灯(分别为红色和绿色),分别由旋钮SF1(I0.0)和旋钮SF2(I0.1)控制其启动。当旋钮SF1闭合时,三只红色指示灯按

的顺序和200ms的时间间隔循环亮灭。同样,当旋钮SF2闭合时,三只绿色指示灯按 的顺序和200ms的时间间隔循环亮灭。在此采用两个定时中断的方式实现控制要求。相应程序段如图5所示。

执行中断允许指令(ENI),允许PLC执行中断,将两个定时中断事件10、11和与之关联的两个中断处理程序INT_0、INT_1连接,使每隔200ms这个中断事件发生时,执行中断处理程序的一次扫描刷新,使中断处理程序中的三个输出点各自移位一次,实现控制工艺的要求。在此关键是ENI指令和DTCH指令的理解以及移位寄存器指令的运用。

和变频器(和变频器()搜集整理

主程序:主程序:MAIN

MAIN 主程序MAIN主程序MAIN

MAIN

程序初始化设置,在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中断。

和变频器(和变频器()搜集整理

中断处理程序:中断处理程序:INT_0

INT_0 中断处理程序:断处理程序:INT_0

INT_0

中断处理程序INT_0每隔200ms扫描刷新一次。

采用移位寄存器指令,将Q0.0、Q0.1、Q0.2三个输出每隔200ms左移一位。

中断处理程序:INT_11

中断处理程序:中断处理程序:INT_断处理程序:INT_1INT_1

中断处理程序INT_1每隔200ms扫描刷新一

次。

采用移位寄存器指令,将Q0.3、Q0.4、

Q0.5三个输出每隔200ms右移一位。

3、T32/T96定时器中断的设置

一个中断事件能够被PLC程序执行,这种事件状态必须维持最少一个扫描周期的时间,否则PLC无法捕捉到这个事件。

和变频器(和变频器()搜集整理

图6 T32/T96定时器中断的设置

如图6所示的时间循环标准程序中。它要求定时器T32在0~10s之间不断的循环,不断循环的计时当前值被其它程序段使用。

T32和T96这两个定时器的分辨率是1ms,而PLC一个扫描周期时间一般是几个毫秒。这样,在一个扫描周期内,T32和T96的计时当前值可能多次加1计数,一个特定的计时当前值(范例中是10000)不可能维持一个扫描周期。如果捕捉这个特定的计时当前值,即当要求T32的计时当前值等于10000时,并让这个计时当前值执行一定的指令,概率是非常低的。因此,程序是不能可靠的运行,可能偶尔正常一次。

要正常运行,必须采用中断的方式对事件捕捉。这也就是设置T32/T96定时器中断的原因,采用中断方式的程序如图6所示。而当定时器T32的计时当前值≥10000(10s),程序中的T32的常开接点能够闭合,程序能够正常的执行。

和变频器(和变频器()搜集整理

四、小结

小结

由于中断处理在PLC所组成的控制系统中经常出现,其处理方法及应用是否恰当,对整个控制系统是非常关键的。我们以西门子S7-200 PLC为例分析了建立中断事件和中断处理程序的连接方法与技巧,操作简单、灵活、可靠,我们已在工程实践中进行了多次成功的应用,可供其它类型的PLC中断处理与应用借鉴,供大家参考。

第一作者,第一作者,武丽,武丽,女,1967年出生1967年出生,年出生,本科,本科,副教授。副教授。1989年毕业于中南工业大学自动化专业1989年毕业于中南工业大学自动化专业,年毕业于中南工业大学自动化专业,现在西南科技大

现在西南科技大

学信息工程学院任教,学信息工程学院任教,主要研究方向:主要研究方向:电气控制技术、电气控制技术、自动检测及系统集成。自动检测及系统集成。

联系方式:联系方式:四川绵阳西南科技大学信息工程学院四川绵阳西南科技大学信息工程学院 621002息工程学院 621002

621002

电话:电话:0816-,6088991,0816-

6621267

email:wuli_swust@

发布评论

评论列表 (0)

  1. 暂无评论