长沙工控帮教育科技有限公司整理
3.6 错误处理和中断
3.6.1 系统功能块 (SFB) 中的错误消息
错误类型
SFB 指出了下表中列出的错误。
除系统错误外的所有错误都将通过一个错误编号更详细地进行指定,错误编号可作为 SFB 中的 输出参数。
错误类型 错误显示于 SFB 参数 错误编号显示于 SFB 参数 操作模式错误 ERROR = TRUE STATUS
作业错误 JOB_ERR = TRUE JOB_STAT
外部错误 ERR > 0 ERR
系统错误 BIE = FALSE –
操作模式错误 (ERROR = TRUE) 此类错误出现在
● SFB 上发生常规参数分配错误时(例如使用了错误的 SFB)。
● 运行启动/恢复时。这些错误在解释操作模式参数期间出现。
检测到错误时,输出参数 ERROR 将被置位为 TRUE。
可在『错误列表(页码 83)』一节中找到可能的错误编号。
参数 STATUS 指示出错原因。
作业错误 (JOB_ERR = TRUE)
只有在解释/执行作业期间会出现作业错误。
检测到错误时,输出参数 JOB_ERR 将被置位为 TRUE。
可在『错误列表(页码 83)』一节中找到可能的错误编号。
出错原因会在 JOB_STAT 参数中指出。
长沙工控帮教育科技有限公司整理
CPU 31xC 技术功能
76 操作说明, 2007 年 2 月版, A5E00432666-04
外部错误 (ERR)
系统将监视运行、行程范围和所连接的 I/O。先决条件是需要在“驱动器”、“轴”和“编码 器”参数分配窗口中打开监视。
监视功能响应时,将发送外部错误信号。
外部错误可能随时出现,与启动的功能无关。
您必须通过 ERR_A 处的正跳沿确认队列中等待的外部错误。
通过在 SFB 参数 ERR (WORD) 中置位一个位来指示外部错误。
监视 ERR ERR-WORD 中的位
缺少脉冲(零标记) 0004(十六进制) 2
行程范围 0800(十六进制) 11
工作范围 1000(十六进制) 12
实际值 2000(十六进制) 13
目标逼近 4000(十六进制) 14
目标范围 8000(十六进制) 15
检测到外部错误(“进入”和“离开”)还会触发诊断中断(请参阅『组态和判断诊断中断
(页码 78)』一节)。
系统错误
用 BIE = FALSE 来指示系统错误。
下列情况下会触发系统错误:
● 背景数据块的读/写访问错误
● 多重调用 SFB
3.6.2 在用户程序中判断出错
步骤
1. 调用错误处理例程“错误判断”(参见下图)。
2. 按顺序查询特定的错误类型。
3. 如果需要,可跳转到特别适合您的应用的错误响应方法。
长沙工控帮教育科技有限公司整理
䫭䇃߸ᮁ˖
䇗⫼6)%˖
৺
ᰃ
ᇍ㋏㒳䫭䇃 䖯㸠ડᑨ
৺
ᰃ
߸ᮁ67$786
(55:25'
߸ᮁ
㑴ℷ䫭䇃ᑊ 䗮䖛(55B$ 758(⹂䅸
ᰃ
৺ ᰃ
৺
%,( )$/6(˛
(5525
758(˛
(55!˛
-2%B(55
758(˛
长沙工控帮教育科技有限公司整理
CPU 31xC 技术功能
78 操作说明, 2007 年 2 月版, A5E00432666-04
3.6.3 组态和判断诊断中断
基本信息
出现以下错误时,可以触发诊断中断:
● 参数分配错误(模块数据)
● 外部错误(监视)
在出现进入错误和离开错误事件时,将会显示诊断中断。
在用户程序中,可借助诊断中断立即对错误作出响应。
步骤
1. 在参数分配窗口的“基本参数”对话框中启用诊断中断。
2. 在“驱动器”、“轴”和“编码器”参数分配窗口中,分别打开出错时会触发诊断中断的监 视功能。
3. 在参数分配窗口“诊断”中,分别为每个监视对象启用诊断中断。
4. 可将诊断中断 OB (OB 82) 合并到用户程序中。
通过诊断中断对错误作出响应
● 定位被取消。
● CPU 操作系统将调用用户程序中的 OB 82。
说明
如果未装载相应的 OB,则在触发中断后,CPU 会切换为 STOP。
● CPU 将打开 SF LED 指示灯。
● 在 CPU 的诊断缓冲区中将错误报告为“进入”。清除所有未决错误前,不会将错误指示为
“离开”。
长沙工控帮教育科技有限公司整理
如何在用户程序中判断诊断中断
触发诊断中断后,可判断 OB 82 以检查哪个诊断中断还未处理。
● 如果在 OB 82 的字节 6 + 7 (OB 82_MDL_ADDR) 中输入了“定位”子模块的模块地址,
则诊断中断是由 CPU 的定位功能触发的。
● 只要队列中有错误,就会置位 OB 82 中字节 8 的位 0(故障模块)。
● 所有错误都已报告“离开”后,将复位 OB 82 中字节 8 的位 0。
● 通过判断数据记录 1(字节 8 和 9),可以确定确切的出错原因。为此,必须调用 SFC 59
(读取数据记录)。
● 用 ERR_A 确认错误。
数据记录 1,字节 8 说明 JOB_STAT ERR
位 0 没有使用 – –
位 1 没有使用 – –
位 2 缺少脉冲 * – X
位 3 没有使用 – –
位 4 没有使用 – –
位 5 没有使用 – –
位 6 没有使用 – –
位 7 没有使用 – –
*:随后出现的错误将触发一个进入中断,然后自动触发离开中断。
数据记录 1,字节 9 说明 JOB_STAT ERR
位 0 组态错误 X –
位 1 没有使用 – –
位 2 没有使用 – –
位 3 行程范围监视 X X
位 4 工作范围监视 X X
位 5 实际值监视 * X X
位 6 目标逼近监视 * X X
位 7 目标范围监视 * X X
*:随后出现的错误将触发进入中断,然后自动触发离开中断。
长沙工控帮教育科技有限公司整理
CPU 31xC 技术功能
80 操作说明, 2007 年 2 月版, A5E00432666-04