文章目录
目录
前言
这一篇来讲解一下s7-200PLC中的中断指令,在主程序运行时可以中断去处理其他事件。
一、中断
1.概念
由设备或其他继续处理的事件引起的,它使系统暂时中断现在执行的程序,转到中断程序来处理这些事件,处理完毕后再返回到原程序继续执行。
s7-200PLC最多有34个中断源,即发出中断请求的来源,每个中断源都有一个编号,叫做中断事件号。
另外子程序也算是中断的一种,在主程序中,如果子程序条件满足就进入子程序进行执行,执行完后再回到主程序继续运行。
二、中断的分类
中断有三种:输入输出中断,时基中断,通信中断。
1.输入输出中断
输入输出中断:1.外部输入中断:i0.0--i0.3上升沿或下降沿中断。
2.高速计数器中断:当前值=预设值,计数方向改变,计数器外部复位。
3.脉冲串输出中断:当给定的脉冲数输出完成后,执行中断(步进和伺服电机)。
2.时基中断
时基中断:1.定时中断,支持一个周期性的活动,以1ms为计量单位(1-255ms)。一共两个:事 件10:定时中断0,周期值放入smb34,事件11:定时中断1,周期值放入smb35.
这是以固定的时间间隔作为采样周期,对模拟量,输入采样,pid,自由口通信用。
2.定时器中断:事件21,t32和事件22,t96使用,当前值=预设值,中断。
3.通信中断
通信中断:这一个并不常用,主要是:接收信息完成中断,发送完成中断,接收字符中断,这里 就这里就不过多叙述了。
三.中断指令
1.指令
中断指令我们主要使用,ENI,ATCH这两个,其余几个有兴趣可以上网上搜索。
ENI是先开放中断,ATCH是连接中断。
ATCH有两个管脚:INT:中断的名称,EVNT:中断号(需要根据表格来填写)。
2.指令的使用
当知道了中断指令,下面来看中断指令如何使用。
根据两个图表我们找到外部输入中断,是i0.0-i0.3的上升沿和下降沿。
这里举例说明:外部接线,i0.0上升沿中断,执行加一指令。
根据上图彩色部分,找到i0.0上升沿中断事件号,是0。下面我们要在中断程序中写加一指令
在新建工程的下方,有主程序,子程序(黄颜色部分),中断程序(红颜色部分)。
在主程序中我们要开放中断(ENI)然后连接中断(ATCH),在中断程序中我们执行加一指令。
具体的过程,如图:
注意: 在中断程序不能使用定时器和沿指令,因为按下中断按钮i0.0 它只有一个扫描周期。不能 定时。
例题: i0.0上升沿中断,执行加一指令。
主程序:
中断程序:
中断程序右键可以重命名,或者再添加一个中断程序。
四.练习题
1.循环中断,每200ms,VB1里面的数加1.
根据题目所给的要求,每200ms中断一次,加1.我们可以根据图表找到定时中断,选择定时中断0,中断事件号=10,并且它要求周期值要写入SMB34中。那么我们根据他的要求来。
首先在主程序中,开放中断,连接中断,传入周期值200ms。
然后选择中断程序,在里面写入加1指令。
到这里每200ms循环中断加1就完成了!!
2.高速计数器中断
当0号计数器 当前值=预设值时,Q0.0亮。当计数器为 增计数时,Q0.1亮,减计数时,Q0.1灭。当计数器被外部复位时 Q0.2亮。
根据题目,我们需要将高数计数器和中断指令联合起来使用。
1.首先我们选择和定义高速计数器,然后再连接中断。这里选择0号计数器的10号模式(有增,减,复位功能)。
2.连接中断,建立3个中断程序对应3种情况。
3.每个中断程序的编写。
当前值=预设值,中断程序
增计数和减计数中断程序。增计数,Q0.1亮。减计数,Q0.1灭。这里需要有一个计数方向的判断,我们要根据0号计数器的状态位:SMB36 来看。
SM36.0--SM36.4不使用。
SM36.5 |
0:减计数 | 1:增计数 |
SM36.6 | 0:当前值≠预设值 | 1:当前值=预设值 |
SM36.7 | 0:当前值≤预设值 | 1:当前值>预设值 |
这里我们使用SM36.5就可以解决。
外部复位中断程序:
到这里这道练习题就解决了!!!
总结
以上就是今天要讲的内容,本文讲解了200PLC中断指令的作用和使用方法,以及如何正确的编写,在末尾说了两道练习题可以多看几遍写一写!