视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
S7-200中断
2025-09-23 21:02:32 责编:小OO
文档
S7-200中断

由于中断方式可以随机地、高速地处理若干事件,因此在PLC的应用中是经常使用的,因此在本书扼要介绍S7-200的中断功能及其编程的概要。

S7-200的中断能力中断源

在CPU 212中,可有下述六种不同的中断源:

1.二个I/O事件中断(I0.0的上升沿和下降沿);

2.一个定时中断;

3.二个串行通信中断(port 0的接收和发送);

4.一个高速计数器HSC0中断。

在CPU 214中,可有下述21种不同的中断源:

1.八个I/O事件中断(I0.0—I0.3的上升沿和下降沿);

2.二个定时中断;

3.二个串行通信中断(port 0的接收和发送);

4.七个高速计数器中断;

5.二个脉冲输出中断(PLS0和PLS1脉冲计数完成)。

在CPU 215中,可有下述24种不同的中断源:

1.八个I/O事件中断(I0.0—I0.3的上升沿和下降沿);

2.二个定时中断;

3.二个串行通信中断(port 0的接收和发送);

4.七个高速计数器中断;

5.二个脉冲输出中断(PLS0和PLS1脉冲计数完成);

6.定时器T32和T96的CT=PT的二个中断;

7.一个port 0的完成接收信息中断。

在CPU 216中除具有CPU 215的24种不同的中断源外,还具有下述三个不同的中断源:

1.Port 1的完成接收信息中断;

2.Port 1接收字符中断;

3.Port 1完成发送的中断。

中断的优先级

S7-200中的中断优先级别从大的方面可按下列顺序分级:

通信(最高级);

I/O(含HSC和脉冲序列输出);

定时(最低级);

在每一级又按表所示的级别分级。

S7-200的中断优先级别

中断说明优先组别组中优先级事件号CPU 212CPU 214CPU 215CPU 216
Port 0接收字符

通信最高级08YYYY
Port 0发送结束

0*9YYYY
Port 0接收信息结束

0*23YY
Port 1接收信息完

124Y
Port 1接收字符

1*25Y
Port 1发送结束

1*26Y
I0.0上升沿**

I/O中间级

00YYYY
I0.1上升沿

12YYY
I0.2上升沿

24YYY
I0.3上升沿

36YYY
I0.0下降沿**

41YYYY
I0.1下降沿

53YYY
I0.2下降沿

65YYY
I0.3下降沿

77YYY
HSC0 CV=PV012YYYY
HSC1 CV=PV813YYY
HSC1改变计数方向

914YYY
HSC1外部复位

1015YYY
HSC2 CV=PV1116YYY
HSC2 改变计数方向

1217YYY
HSC2外部复位

1318YYY
PLS0完成计数

1419YYY
PLS1完成计数器

1520YYY
定时器0中断

定时最低级010YYYY
定时器1中断

111YY
定时器T32 CT=PT

221YY
定时器T96 CT=PT

322YY
注:*   由于通讯本来就是半双工的,所以发送和接收具有相同的优先级。

    **  如果时间12(HSC0,PV=CV)连接到一个中断,则事件0和1都不能连接到中断链中。相反,如果事件0和1被连接到中断,则事件12就不能连接到中断链中。

优先级还有下列约定:

1.在指定的优先级内按先来先服务的原则;

2.任何情况下只执行一个中断服务程序,即没有中断嵌套功能(即在执行一个中断服务程序过程中不能再响应并执行另一中断服务程序);

3.一个中断正在处理时又有若干中断的申请,则需要按级别分别排列(形成队列),待以后陆续处理。

队列深度

所谓队列深度是指队列的最大长度。表中给出了S7-200系统中对不同队列的深度。如果队列超出队列深度则对应的队列溢出标志位置1。

队列名队列深度溢出标志位
CPU 212CPU 214CPU 215CPU 216
通信中断队列4448SM 4.0
HSC脉冲输出,I/O中断队列

4161616SMB 4.1
定时中断队列2488SMB 4,2
PLC对中断的响应禁止与开放

1.全局禁止与开放(使能)

全局禁止与开放统管PLC中的所有的中断,即禁止或开放所有的中断。但需指出的一点是,若PLC处全局禁止状态时有内部或外部的中断申请要求,则虽然PLC不予响应,但仍将生成各中断的队列。

当PLC进入RUN状态时,自动进入全局中断禁止状态。如需在适当的时候要开放全局中断,可在用户程序中使用全局中断开放指令ENI来实现。反之如需要再次作全局中断禁止时,可在程序的适当位置使用全局中断禁止指令DISI来实现。执行DISI指令不会影响当前正在执行中的中断服务程序的继续执行。只有当该中断服务程序执行完毕后,该功能才有效。

2.单个中断的开放与禁止

单个中断的开放与禁止(相对全局中断开发的条件下)。所有的指令分别位ATCH和DHCH。

保护的内容 

PLC在执行中断服务程序嵌,自动将累加器AC和存有指令操作和累加器状态的特殊标志寄存器的内容推入堆栈保存起来;待PLC执行完中断服务程序后返回主程序前,又自动从堆栈弹出(恢复)这些数据,从而起到了保护中断前的现场的作用,使主程序能继续从中断前的状态继续执行下去。

中断程序的编程要点

中断程序的基本格式

1.在主程序中应有开放全局中断的指令,否则PLC不会响应任何中断的申请。

2.在主程序中应定义中断事件(请求)与中断服务程序的入口地址之间的关系,这是用attach指令来实现的。例如指令:attach 5,7(定义了事件号为7的事件如果申请中断,则执行5#(INT 5)中断服务子程序。有关事件号与事件的关系见表中的最后一列。

3.应在主程序的后面输入各准备调用的中断服务子程序,每个中断服务子程序的开始应用编号(即指令INT n)来定义其首地址,末尾应有中断返回指令(RET1)。

编程的

在编制中断程序时,应注意下述:

1.所有的备用的中断服务子程序必须放在主程序的后面。

2.在中断服务子程序中不能使用DISI,ENI,CALL,HDEF,FOR/NEXT和END等指令。

3.必须用中断无条件返回指令来结束中断服务子程序。

关于中断服务程序的几点说明

1.由于中断是随机产生的,也即是在主程序执行过程中随时都可能被中断,因此要求被中断的时间应越短越好,否则可能会产生不良的影响。这就要求用户编写的中断服务子程序应尽可能简洁,一方面使它只干那些只能在中断时期内干的事(可以不在中断期间干的事尽量在其它时间里去做),另一方面是要优化程序,使之长度短,执行又要快。

2.在使用attach指令作有关定义时,自动开放本项中断的申请。

3.多个事件可定义为执行同一个中断服务子程序,但同一个事件不能同时定义为执行多个服务子程序,如果在程序中为同一事件定义了多个服务子程序,则只有最后一个是有效的。下载本文

显示全文
专题