• 沒有找到結果。

长沙工控帮教育科技有限公司整理

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