中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf ·...
Transcript of 中断控制程序 - jpkc.ybzy.cnjpkc.ybzy.cn/plczxkfk/xxzn300/dzkj/8.pdf ·...
PLC控制系统组装与调试
中断控制程序
PLC控制系统组装与调试
定期执行的组织块和中断
2
日期时间中断组织块(OB10~OB17)
循环中断组织块(OB30~OB38)
PLC控制系统组装与调试
3
一、日期时间中断组织块 (OB10~OB17)
设置触发的日期、执行模式,使其在某一特定日期或特定间隔,产生中断。
8个日期时间中断具有相同的优先级
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”激
活中断。
PLC控制系统组装与调试
5
【例1】 :设置日时钟中断
PLC控制系统组装与调试
6
2.查询日期时间中断
调用系统功能SFC31“QRY_TINI”
3.禁止日期时间中断
调用系统功能SFC29“CAN_TINI”
PLC控制系统组装与调试【例2】 :设置系统时间
PLC控制系统组装与调试
8
二、循环中断组织块(OB30~OB38)
循环中断的时间间隔在CPU的属性中设置,每个OB默认时间间隔
不同,
系统功能SFC39~SFC42,可以禁止、延迟、使能循环中断
PLC控制系统组装与调试
RUN OB35 OB35 OB35
Interval
OOB1 B1OB1 OB1 OB1 OB1 OB1 O B1
Interval Interval
【例3】 :设置循环中断
PLC控制系统组装与调试
10
【例4】:循环中断的使用
在I0.0的上升沿启动OB35对应的循环中断,在I0.1的上升沿禁止OB35
对应的循环中断。在OB35中使MW4加1。(设中断间隔为1s)
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:
PLC控制系统组装与调试
事件驱动的组织块和中断处理
12
延时中断(OB20~OB23)
硬件中断(OB40~OB47)
异步故障中断(OB80~OB87)
同步故障中断(OB121和OB122)
PLC控制系统组装与调试
13
一、延时中断组织块(OB20~OB23)和中断处理
延时时间为1~60000ms,精度为1ms
优先级及更新过程映像区的参数在CPU的属性中设置
SFC32 “SRT_DINT”设置OB号与延时时间,触发中断,
SFC33“CAN_DINT”取消延时中断
SFC34“QRY_DINT”查询延时中断的状态
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)
PLC控制系统组装与调试
15
二、硬件中断组织块(OB40~OB47)和中断处理
由外部设备产生
也称为过程中断
SFC39~SFC42可以禁止、延迟、使能硬件中断
PLC控制系统组装与调试
模拟输入模块
上限值
下限值
+27648
0
硬件组态:
模拟输入模块的属性 CPU的属性
【例6】:硬件中断的使用
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
PLC控制系统组装与调试
实际的循环扫描时间超过设置的循环扫描时间。
由于向前修改时间而跳过日期时间中断。
在处理优先级时延时太多。
2. 电源故障处理组织块(OB81)
1. 时间错误中断处理组织块(OB80)
未安装后备电池或者电池失效
机架上的直流24V电源故障。
PLC控制系统组装与调试
19
3. 诊断中断处理组织块(OB82)
有诊断功能的模板,用HW Config定义了诊断报警,
当故障模块发生及消失时,启动诊断中断处理程序
4. 模板热插拔中断处理组织块(OB83)
S7-400系列的PLC
PLC控制系统组装与调试
20
5. CPU硬件故障处理组织块(OB84)
MPI网络的接口故障
通信总线的接口故障
分布式I/O的接口故障
6. 优先级错误处理组织块(OB85)
操作系统访问模块故障
更新过程映像区I/O访问故障正被更新时出现了I/O存取故障
事件触发时,相应的OB没有下载到CPU中
PLC控制系统组装与调试
21
7. 机架故障组织块(OB86)
扩展机架故障产生和消失
DP主站系统和DP从站的故障产生和消失
8. 通信故障处理组织块(OB87)
接收全局数据时,检测到不正确的帧标识符(ID)。
全局数据通信时的状态信息数据块不存在或太短。
接收到非法的全局数据包编号。
PLC控制系统组装与调试
模拟输入模块
断线
+27648
0
硬件组态:
模拟模块的属性 CPU的属性
【例7】:设置异步故障诊断中断
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】:异步故障诊断中断的使用
PLC控制系统组装与调试
24
四、同步故障中断(OB121和OB122)
与执行用户程序有关的故障
错误类型 例子 OB 优先级
与被中断的错误OB优先级相同
编程错误 在程序中调用一个CPU中并不存在的块
OB121
访问错误访问一个模块有故障或不存在的模块(例如,直接访问一个不存在的I/O模块)
OB122
PLC控制系统组装与调试
错误类型 举例 CPU的反应
外部故障 模拟模块输入断线 停机, 如果相应的故障OB块不存在
且模块诊断功能被激活
内部故障 AD转换器的转换故障 停机, 如果相应的故障OB块不存在
且模块诊断功能被激活
系统故障 MPI接口的硬件故障 停机
用户程序故障 调用一个不存在的块 停机, 如果相应的故障OB块不存在
在S7-400中移
动和连接模块
在运行状态下移动模
块
停机, 如果相应的故障OB块不存在
S7中可能产生的各种故障
PLC控制系统组装与调试
26
为避免发生某故障时CPU进入停机状态,在CPU中建立一个相应的空故障组织块。
在故障OB块中编程实现所希望的响应,也可以在执行完规定指令后,调用SFC 46申请停机。
故障组织块的启动信息中包含有故障的特征,可在程序中使用。
故障组织块的详细描述参见在线帮助或系统和标准功能手册。
使用故障组织块
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块被调用的日期和时刻