当前课程知识点:电气控制技术与PLC > 第6章 功能指令的应用 > 6.9 中断程序与中断指令 > 中断程序与中断指令
大家好
本讲我们一起来学习
S7-200SMART中断程序和中断指令的相关内容
什么是中断呢
大家想想我们生活中有没有中断
当然是有的
比如我正在看书
这时 电话来电响铃
那我就停止看书 转去接电话
接完电话 我接着看书
这个过程就是一个生活中的中断示例
那我们今天要学习的中断是什么呢
和我们刚才举的生活中的中断类似
是指当PLC正执行程序时
如果有中断事件
它会停止执行当前正在执行的程序
装而去执行中断子程序
当执行完毕后
又返回原先被终止的程序并继续运行
中断事件是什么呢
顾名思义 发生中断请求的事件
就称为中断事件
每个中断事件都有自已对应的一个编号
叫做中断事件号
S7-200 SMART中断可分为
定时中断 I/O中断 和通讯端口中断3大类
我们分别简单的介绍一下
第一类 定时中断
这类中断支持周期性活动
也就是说定时中断一旦被启动
中断就会周期性地不断产生
每当定时时间到
就会执行被连接的中断程序
第二类 I/O中断
包括了输入上升沿或者下降沿中断和高速计数器中断
可以用输入点I0.0~I0.3的上升沿或下降沿产生中断
另外可选的数字
量输入信号板的I7.0和I7.1也可以产生上升沿或下降沿中断
第三类 通信端口中断
在自由端口通信模式
也就是通过用户程序控制PLC串行通信端口这种模式下
用户通过编程来设置波特率和通信协议
接收消息完成或者发送消息完成和接受到一个字符
都可以产生中断事件
大家思考一个问题
如果有多个事件同时发生
CPU如何处理呢
先去处理哪个事件呢
CPU执行是有先后顺序的
也就是刚才咱们讲的三类中断是有优先顺序的
是这样的
通信中断大于I/O中断大于定时中断
具体内容大家可以参照软件帮助信息
学到到这大家会问
S7-200 SMART中断指令有哪些
中断程序该怎们编写呢
我们一块来看看
S7-200SMART中断指令有
ENI 中断允许指令 它的功能是
全局性允许所有中断事件
DISI中断禁止指令
它的功能是全局禁止所有中断
ATCH中断连接指令
功能是建立某个中断事件
EVNT和某个中断程序INT之间的联系
并允许这个中断
DTCH中断分离指令
功能是取消中断事件
EVNT和所有的程序之间的联系
并禁止这个中断事件
中断程序编程的一般步骤是
第1步 开放中断
第2步 关联中断事件与中断程序
第3步 编写中断子程序
最后 我们通过两个例子
来看看怎么利用中断指令和步骤编写中断程序
例1 编写程序要求PLC检测到I0.0的上升沿信号后
立即置位Q0.0
检测到I0.1的上升沿后
立即复位Q0.0。
根据题意
I0.0的上升沿和I0.1的上升沿是两个中断事件
也就是说 当PLC检测到I0.0上升沿信号
就是去执行中断子程序即置位Q0.0
同理当PLC检测到I0.1上升沿信号
复位Q0.0
这两个中断子程序
咱们先分别记对应INT_0和INT_1
按照中断程序的编写步骤
首先需要开放中断
在main主程序中
采用ENI指令开中断
接下来采用两个ATCH指令
关联中断事件与中断子程序
经过查阅帮助信息I0.0和I0.1上升沿的中断号分别是0和2
即第一个ATCH指令INT端是INT_0中断子程序
EVNT端是中断事件号0
同理第二个ATCH指令的INT端是INT_1中断子程序
EVNT端是中断事件号2
最后中断子程序INT_0和INT_1编写
是比较简单的
对Q0.0分别用置位命令和复位命令
通过这个例子相信大家
对中断指令的使用和中断程序编写步骤有更加深刻的理解
接下来我们来来看例2
编写程序实现QB0 1S的高精度定时自加控制
题目意思是每定时1s时间
QB0中的值自加1
我们可以用定时器中断
或定时中断0分别来编写程序
在这我们采用T32定时器中断来实现
中断号是21
编程思路是
主程序中
第1步 开放中断采用ENI指令
第2步 采用I0.0触点接通定时器T32
T32的时基是1ms
设置范围是0-255
题意要求时定时1s
为了方便计算
我们可将T32设置为250
累计4次到达1s时间
当I0.0接通后
开始计时
同时采用ATCH指令把INT_0中断子程序
21号中断事件关联起来
接下来编写中断子程序INT_0
当T32 250ms定时时间到
程序进入中断子程序
注意是T32每定时250ms进入一次中断子程序
累计4次才能达到1s时间
所以编写程序时
需要先采用自增指令
让VB0中的数累加
同时还需要复位T32定时器
当VB0等于4时
即1s定时时间到
再采用自增指令让QB0的值加1
同时要让VB0的值清零
可采用传送指令
目的是为了让VB0重新开始计数
另外在程序最开始
最好让VB0和QB0中的数据清零
另一种方法用定时中断0来编写
大家可自行完成
最后
在使用中断指令编写中断程序有这么几点需要大家注意
第一点是
中断事件与用户程序的执行时序没有关系
有的中断事件不能事先预测何时发生
第二点是
中断程序不是由用户程序调用
而是在中断事件发生时
由操作系统调用的
第三点是
中断程序是用户编写的
中断功能用于实时控制
通信控制和高速处理等场合
设计中断子程序时应遵循越精简越好的原则
因为中断程序的执行
会延迟主程序的执行时间
第四点是
中断子程序与子程序一样会保留调用
该中断子程序最后一个扫描周期各个存储区的状态
本讲到此结束
谢谢大家
-1.1 低压电器简介
--低压电器简介
-1.2 低压开关电器
--低压开关电器
-1.3 主令电器
--主令电器
-1.4 接触器
--接触器
-1.5 熔断器
--熔断器
-1.6 继电器(一)热继电器和速度继电器
-1.7 继电器(二)时间继电器
-小测验
-2.1 三相异步电动机的直接起动控制
-2.2 三相异步电动机点动控制和长动控制
-2.3 三相异步电动机降压起动控制(一)
-2.4 三相异步电动机降压起动控制(二 )
-2.5 三相异步电动机的多点控制和顺序控制
-2.6 三相异步电动机的调速控制
-2.7 三相异步电动机的制动控制(一)
-2.8 三相异步电动机的制动控制(二)
-2.9 三相异步电动机正反转控制(一)
-2.10 三相异步电动机正反转控制(二)
-2.11 电气控制线路的设计方法
-小测验
-3.1 电气控制电路图的绘制(一)
-3.2 电气控制电路图的绘制(二)
-3.3 电气控制电路图的绘制(三)
-3.4 电气控制电路的设计方法 (一)
-3.5 电气控制电路的设计方法 (二)
-小测验
-4.1 认识PLC
--认识PLC
-4.2 PLC组成及工作原理
-4.3 S7-200 SMART PLC硬件介绍(上)
-4.4 S7-200 SMART PLC硬件介绍(下)
-4.5 STEP 7-Micro/WIN SMART编程软件(上)
--STEP 7-MicroWIN SMART编程软件(上)
-4.6 STEP 7-Micro/WIN SMART编程软件(下)
--STEP 7-MicroWIN SMART编程软件(下)
-小测验
-5.1 PLC编程语言与程序结构
-5.2 指令基础
--指令基础
-5.3 位逻辑指令
--位逻辑指令
-5.4 PLC编程规则与技巧
-5.5 定时器指令的工作原理
-5.6 定时器指令应用举例
-5.7 计数器指令的工作原理
-5.8 计数器指令的应用
--计数器指令应用
-小测验
-6.1 功能指令概述
--功能指令概述
-6.2 数据处理指令(一):比较指令与数据传送指令
-6.3 数据处理指令(二):数据转换指令
--数据转换指令
-6.4 数据处理指令(三):表格指令和时钟指令
-6.5 算术运算指令及其应用
-6.6 逻辑运算指令及其应用
-6.7 程序控制指令:跳转指令、循环指令
-6.8 子程序的编写与调用
-6.9 中断程序与中断指令
-6.10 高速计数器指令与高速脉冲输出指令(一)
-6.11 高速计数器指令与高速脉冲输出指令(二)
-小测验(一)
-小测验(二)
-小测验(三)
-7.1 梯形图的经验设计法
-7.2 顺序控制设计法与顺序功能图概述
-7.3 顺序功能图的基本结构和绘制方法
-7.4 使用SCR指令的顺序控制梯形图设计方法
-7.5 使用起保停电路的顺序控制梯形图设计方法
-7.6 使用置位复位指令的顺序控制梯形图设计法
-小测验
-8.1模拟量控制概述
--模拟量控制概述
-8.2模拟量输入输出配置及数值的规范化
-8.3PID控制指令
--PID控制指令
-8.4水箱水位PID控制程序举例
-小测验