用户要使用中断,必须首先在硬件组态中使能中断,并将OB40和OB82下载到PLC中。
FM350-2支持的硬件中断:
详细中断信息可参考OB40的局部变量OB40_POINT_ADDR(byte8-11),OB40执行的同时会刷新它的局部变量。OB40_POINT_ADDR的具体含义见下表:
计数器通道 | OB40局部变量byte偏移地址 | bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
---|---|---|---|---|---|---|---|---|---|
0 | 8 | 计数值与比较值相等 | 溢出 | 关闭硬件门 | 打开硬件门 | ||||
1 | 8 | 计数值与比较值相等 | 溢出 | 关闭硬件门 | 打开硬件门 | ||||
2-7 | 9-11 | 与Byte8相同 |
计数器通道 | OB40局部变量byte偏移地址 | bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
---|---|---|---|---|---|---|---|---|---|
0 | 8 | 超出设定的上下限范围 | 测量结束 | 关闭硬件门 | 打开硬件门 | ||||
1 | 8 | 超出设定的上下限范围 | 测量结束 | 关闭硬件门 | 打开硬件门 | ||||
2-7 | 9-11 | 与Byte8相同 |
计数器通道 | OB40局部变量byte偏移地址 | bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
---|---|---|---|---|---|---|---|---|---|
0 | 8 | - | 溢出 | 计数值与比较值4相等 | 计数值与比较值3相等 | 计数值与比较值相2等 | 计数值与比较值1相等 | 关闭硬件门 | 打开硬件门 |
2-7 | 9-11 | 与Byte8相同 |
可以触发诊断中断的条件:
详细诊断信息可参考DS0、DS1。DS0是OB82局部变量的byte8-11,OB82执行时会自动刷新所有的局部变量,DS0的详细含义见下表:
byte | bit | 含义 | 原因/处理办法 | Event ID |
---|---|---|---|---|
0 | 0 | 模块停止工作 | 有诊断事件发生即置位 | 8:x:00 |
1 | 内部故障 | 有内部故障发生即置位 | 8:x:01 | |
2 | 外部故障 | 有外部故障发生即置位 | 8:x:02 | |
3 | 通道故障 | 有通道故障发生即置位 | 8:x:03 | |
6 | 未组态模块参数 | 组态模块参数 | 8:x:06 | |
7 | 不正确的模块参数 | 可进一步查询诊断信息(参考“无用户程序时调试模块”),检查组态 | 8:x:07 | |
1 | 0-3 | 种类 | 数值固定为‘8’ | |
4-7 | 通道信息 | 数值固定为‘1’ | ||
2 | 3 | 看门狗错误 | 模块损坏,或存在强干扰 | 8:x:33 |
3 | 6 | 硬件中断丢失 | 检查组态,检测到的硬件中断没有被用户程序或CPU确认 | 8:x:46 |
DS1长度是16字节,需要调用FC5(DIAG_RD)将其读到Counter_DB的DBW212中,详细含义参看下表:
byte | bit | 含义 | 原因/处理办法 | Event ID |
---|---|---|---|---|
4 | 0-6 | 通道种类 | 数值固定为‘70H’ | |
7 | 通道种类 | 数值固定为‘0’ | ||
5 | 0-7 | 诊断信息长度 | 数值固定为‘8’ | |
6 | 0-7 | 总通道数 | 数值固定为‘8’ | |
7 | 0 | 通道故障矢量 | 通道位 | |
8 | 4 | NAMUR编码器电源故障 | NAMUR编码器 | 8:x:94 |
6 | NAMUR编码器信号故障 | 短路或断线 | 8:x:96 | |
9 | 4 | NAMUR编码器电源故障 | NAMUR编码器 | 8:x:94 |
6 | NAMUR编码器信号故障 | 短路或断线 | 8:x:96 | |
10 | 4 | NAMUR编码器电源故障 | NAMUR编码器 | 8:x:94 |
6 | NAMUR编码器信号故障 | 短路或断线 | 8:x:96 | |
11 | 4 | NAMUR编码器电源故障 | NAMUR编码器 | 8:x:94 |
6 | NAMUR编码器信号故障 | 短路或断线 | 8:x:96 | |
12 | 4 | NAMUR编码器电源故障 | NAMUR编码器 | 8:x:94 |
6 | NAMUR编码器信号故障 | 短路或断线 | 8:x:96 | |
13 | 4 | NAMUR编码器电源故障 | NAMUR编码器 | 8:x:94 |
6 | NAMUR编码器信号故障 | 短路或断线 | 8:x:96 | |
14 | 4 | NAMUR编码器电源故障 | NAMUR编码器 | 8:x:94 |
6 | NAMUR编码器信号故障 | 短路或断线 | 8:x:96 | |
15 | 4 | NAMUR编码器电源故障 | NAMUR编码器 | 8:x:94 |
6 | NAMUR编码器信号故障 | 短路或断线 | 8:x:96 |
FC5"DIAG_RD"功能块:
名称 | 行参类型 | 数据类型 | 含义 |
---|---|---|---|
DB_NO | 输入 | 字 | FM350-2模板对应的Counter_DB块编号 |
RET_VAL | 输出 | INT | SFC51的返回值 |
OB82中的例程:
L DB1.DBW12 //本例子中Counter_DB是DB1
L #OB82_MDL_ADDR
==I //判断是否是FM350-2模块产生的中断
CALL FC 5
DB_NO :=W#16#1
RET_VAL :=MW4