目录
s7-200 smart设置了中断功能,用于实时控制、高速处理、通信和网络等复杂和特殊的控制任务。
s7-200 smart 系列可编程控制器多有38个中断源(9个预留),分为三大类:通信中断、输入/输出(i/o)中断和时基中断,s7-200 smart规定的中断优先由高到低依次是:通信中断、i/o中断和时基中断。每类中断中不同的中断事件又有不同的优先权。
中断指令主要包括以下几种:
atch:中断连接,连接某中断事件所要调用的程序段。
eni:全局允许中断,开放中断处理功能。
disi:全局禁止中断,禁止处理中断服务程序,但中断事件仍然会排队等候。
dtch:中断分离,将中断事件号与中断服务程序之间的关联切断,并禁止该中断事件。
reti:条件中断返回,根据逻辑操作的条件,从中断服务程序中返回。
clr_evnt:清空中断队列。
与s7-200相比,下表所示中断事件号为s7-200 smart 所特有的 :
表1.s7-200 smart 特有中断事件号
事件号
说明
cr40
sr20/sr40/st40/sr60/st60
35
上升沿,信号板输入0
n
y
36
下降沿,信号板输入0
n
y
37
上升沿,信号板输入1
n
y
38
下降沿,信号板输入1
n
y
中断指令的有效操作数如下:
表2.中断指令的有效操作数
输入/输出
数据类型
操作数
int
byte
常数: 中断例程编号(0 到 127)
evnt
byte
常数: 中断事件编号(cpu cr40: 0-13、16-18、21-23、27、28 和 32cpu sr20、sr40、st40、sr60、st60: 0-13、16-18、21-28、32和 35-38)
中断程序实例
本例使用定时中断实现对100ms定时周期计数。我们使用特殊存储器定时中断0。由定时中断0的中断事件号为10,确定周期的特殊寄存器字节时smb34。
该程序主要包括以下几部分:
sbr_0:中断初始化程序;
int_0:中断服务程序;
在主程序中调用sbr_0,如下图所示:
图1.sbr_0的调用
其中,初始化中断程序秩序调用一次,因此用sm0.1作为条件。
sbr_0编程如下图所示:
图2.sbr_0编程
其中,写入定时周期数100ms,连接10号中断事件即定时中断0,指定中断服务程序名称为int_0。
int_0编程如下图所示:
图3.int_0编程
其中,用双字长的整数加法对vd200自身加1。
注意:中断程序的初始化只需执行一次。也可根据需要重新定义中断事件。
使用状态表监视,vd200的内容就是100ms周期到达的次数,如下图所示:
图4.状态表监视
中断例程
例程所需条件:
1、软件版本:step 7-micro/win smart v2.3
2、smart cpu固件版本:v1.0及以上
3、通讯硬件:tp电缆(以太网电缆)
所实现的功能:
1.通过smb34做100ms的定时中断
2.通过vd200自累加1,计算进入中断的次数
smb34_interrupt
注意:本例程仅供参考,程序中的cpu版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,
