27
PLC控制系统组装与调试 中断控制程序

中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

Embed Size (px)

Citation preview

Page 1: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

中断控制程序

Page 2: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

定期执行的组织块和中断

2

日期时间中断组织块(OB10~OB17)

循环中断组织块(OB30~OB38)

Page 3: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

3

一、日期时间中断组织块 (OB10~OB17)

设置触发的日期、执行模式,使其在某一特定日期或特定间隔,产生中断。

8个日期时间中断具有相同的优先级

Page 4: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

4

1.设置和启动日期时间中断

(1) SFC28“SET_TINI”设置参数,SFC30 “ACT_TINI”激活中断。

(2)在STEP 7的HW-config中,对CPU属性进行中断设置 并激活。

(3)在STEP 7的HW-config中,对CPU属性进行中断设置 ,不激活,用SFC30“ACT_TINI”激

活中断。

Page 5: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

5

【例1】 :设置日时钟中断

Page 6: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

6

2.查询日期时间中断

调用系统功能SFC31“QRY_TINI”

3.禁止日期时间中断

调用系统功能SFC29“CAN_TINI”

Page 7: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试【例2】 :设置系统时间

Page 8: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

8

二、循环中断组织块(OB30~OB38)

循环中断的时间间隔在CPU的属性中设置,每个OB默认时间间隔

不同,

系统功能SFC39~SFC42,可以禁止、延迟、使能循环中断

Page 9: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

RUN OB35 OB35 OB35

Interval

OOB1 B1OB1 OB1 OB1 OB1 OB1 O B1

Interval Interval

【例3】 :设置循环中断

Page 10: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

10

【例4】:循环中断的使用

在I0.0的上升沿启动OB35对应的循环中断,在I0.1的上升沿禁止OB35

对应的循环中断。在OB35中使MW4加1。(设中断间隔为1s)

Page 11: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

2017/6/5 Monday 11

//先将OB35的循环周期由默认的100ms改为1000ms,下装到CPU中。OB1:

Network1: //在I0.0的上升沿激活循环中断

A I0.0

FP M1.1 //在I0.0的上升沿,M1.1为1

JNB m001 //否则跳转

CALL SFC40 //激活OB35对应的循环中断

MODE :=B#16#2 //用OB号指定中断

OB_NR :=35 //组织块编号

RET_VAL :=MW100 //保存错误代码

m001: NOP 0

Network2://在I0.1的上升沿禁止循环中断A I0.1

FP M1.2 //在I0.1的上升沿,M1.2为1

JNB m002 //否则跳转

CALL SFC39 //禁止OB35对应的循环中断

MODE :=B#16#2 //用OB号指定中断

OB_NR :=35 //组织块编号

RET_VAL :=MW104 //保存错误代码

m002: NOP 0

OB35:

Page 12: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

事件驱动的组织块和中断处理

12

延时中断(OB20~OB23)

硬件中断(OB40~OB47)

异步故障中断(OB80~OB87)

同步故障中断(OB121和OB122)

Page 13: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

13

一、延时中断组织块(OB20~OB23)和中断处理

延时时间为1~60000ms,精度为1ms

优先级及更新过程映像区的参数在CPU的属性中设置

SFC32 “SRT_DINT”设置OB号与延时时间,触发中断,

SFC33“CAN_DINT”取消延时中断

SFC34“QRY_DINT”查询延时中断的状态

Page 14: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

14

( P ) ( )I 0.0 M0.1 SFC 32

(SRT_DINT)EN ENO

OB_NR

DTIME

SIGN

RET_VAL20

T#500ms

W#16#01

MW10

M2.0

【例5】:设置延时中断 (OB20)

Page 15: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

15

二、硬件中断组织块(OB40~OB47)和中断处理

由外部设备产生

也称为过程中断

SFC39~SFC42可以禁止、延迟、使能硬件中断

Page 16: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

模拟输入模块

上限值

下限值

+27648

0

硬件组态:

模拟输入模块的属性 CPU的属性

【例6】:硬件中断的使用

Page 17: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

2017/6/5 Monday

17

三、异步故障中断组织块(OB80~OB87)

错误类型 例 子 OB

时间错误 超出最大循环扫描时间 OB80

26 / 28

优先级

26

电源故障 后备电池失效 OB81

诊断中断 有诊断能力模块的输入断线 OB82

插入 / 移除中断

在运行时移除S7-400的信号模块 OB83

CPU 硬件故障MPI接口上出现错误的信号电平 OB84

程序执行错误 更新映像区错误(模块有缺陷) OB85

机架错误扩展设备或DP从站故障 OB86

通讯错误 读取信息格式错误 OB87

Page 18: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

实际的循环扫描时间超过设置的循环扫描时间。

由于向前修改时间而跳过日期时间中断。

在处理优先级时延时太多。

2. 电源故障处理组织块(OB81)

1. 时间错误中断处理组织块(OB80)

未安装后备电池或者电池失效

机架上的直流24V电源故障。

Page 19: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

19

3. 诊断中断处理组织块(OB82)

有诊断功能的模板,用HW Config定义了诊断报警,

当故障模块发生及消失时,启动诊断中断处理程序

4. 模板热插拔中断处理组织块(OB83)

S7-400系列的PLC

Page 20: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

20

5. CPU硬件故障处理组织块(OB84)

MPI网络的接口故障

通信总线的接口故障

分布式I/O的接口故障

6. 优先级错误处理组织块(OB85)

操作系统访问模块故障

更新过程映像区I/O访问故障正被更新时出现了I/O存取故障

事件触发时,相应的OB没有下载到CPU中

Page 21: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

21

7. 机架故障组织块(OB86)

扩展机架故障产生和消失

DP主站系统和DP从站的故障产生和消失

8. 通信故障处理组织块(OB87)

接收全局数据时,检测到不正确的帧标识符(ID)。

全局数据通信时的状态信息数据块不存在或太短。

接收到非法的全局数据包编号。

Page 22: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

模拟输入模块

断线

+27648

0

硬件组态:

模拟模块的属性 CPU的属性

【例7】:设置异步故障诊断中断

Page 23: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

23

在CPU机架直流24V电压故障发生时,将Q4.0置位,当故障消失时,将Q4.0复位

OB1:Network1://24V电压故障发生

L B#16#23L #OB81_ FLT_ID= =I= M0.1L OB81_EV_CLASSL B#16#39= =I= M0.2A M0.1A M0.2S Q4.0

Network2://24V电压故障消失L OB81_EV_CLASSL B#16#38= =I= M0.3A M0.1A M0.3R Q4.0

【例8】:异步故障诊断中断的使用

Page 24: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

24

四、同步故障中断(OB121和OB122)

与执行用户程序有关的故障

错误类型 例子 OB 优先级

与被中断的错误OB优先级相同

编程错误 在程序中调用一个CPU中并不存在的块

OB121

访问错误访问一个模块有故障或不存在的模块(例如,直接访问一个不存在的I/O模块)

OB122

Page 25: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

错误类型 举例 CPU的反应

外部故障 模拟模块输入断线 停机, 如果相应的故障OB块不存在

且模块诊断功能被激活

内部故障 AD转换器的转换故障 停机, 如果相应的故障OB块不存在

且模块诊断功能被激活

系统故障 MPI接口的硬件故障 停机

用户程序故障 调用一个不存在的块 停机, 如果相应的故障OB块不存在

在S7-400中移

动和连接模块

在运行状态下移动模

停机, 如果相应的故障OB块不存在

S7中可能产生的各种故障

Page 26: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

26

为避免发生某故障时CPU进入停机状态,在CPU中建立一个相应的空故障组织块。

在故障OB块中编程实现所希望的响应,也可以在执行完规定指令后,调用SFC 46申请停机。

故障组织块的启动信息中包含有故障的特征,可在程序中使用。

故障组织块的详细描述参见在线帮助或系统和标准功能手册。

使用故障组织块

Page 27: 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf · 同步故障中断(ob121和ob122

PLC控制系统组装与调试

27

故障处理OB块中的附加信息

OB 122 (访问故障)中的附加信息

变量 类型 描述

OB122_EV_CLASS BYTE 事件类别, IDs = B#16#29

OB122_SW_FLT BYTE 错误代码 : (可能的值为 : B#16#42,

B#16#43, B#16#44, B#16#45)

OB122_PRIORITY BYTE 发生错误的OB块的优先级

OB122_OB_NUMBR BYTE OB块的号码 (122)

OB122_BLK_TYPE BYTE 发 生 错 误 的 块 的 类 型 :

B#16#88: OB?

B#16#8A: DB?

B#16#8C: FC?

B#16#8E: FB?

OB122_MEM_AREA BYTE 内存区域和访问类型

OB122_MEM_ADDR WORD 发生错误处的内存地址

OB122_BLK_NUM WORD 导致错误的MC7指令所在块的地址

OB122_PRG_ADDR WORD 导 致 错 误 的 MC7 指 令 的 相 对 地 址

OB122_DATE_TIME DATE_AND_TIME OB块被调用的日期和时刻