为了更好地理解,我们以一个实例来说明 CM579-PNIO 的高级诊断。
系统:AC500 CM579-PNIO + CI501-PNIO + 作为PROFINET 标准设备插入的可选 S500 I/O
错误:CI501-PNIO 上第一个连接的 S500 I/O 设备通道 4 的差异时间已过(类别 3,错误 ID 3)。
作为比较:如果使用的是文本输出方法,例如DiagGetFirstValAndTxt 输出的文本将是字符串: Timestamp; E3; device name; subslot 1, channel 4, extended channel diagnosis; error
ID 3: discrepancy time expired (class 3, error ID 3)
Automation Builder 中会显示以下错误输入数据:

按以下顺序分析数据:元素“dwAdditional” 用于诊断类型,元素“Error Code” ,元素“SubSysteminfo” 。
诊断类型
-
分析元素“dwAdditional” ,错误列表中的 "附加 "列。
将给定值从十进制转换为十六进制。
“dwAdditional” = 131076 = 16#20004
-
口译:
单词 2 = 2
字 1 = 4
-
Generate error text Add_Word 1_Word 2 = Add_4_2
-
查找错误类型。
Add_4_2 = 扩展通道诊断
数据分析
-
分析元素“错误代码” :
“dwErrorCode” = 196867 = 16#30103 ®
字 2(扩展错误类型)= 16#0003
字 1(错误类型)= 16#0103
➔ 错误文本:Err_Word 1 (hex)_Word 2 (hex)
➔ Err_0103_0003 ®
错误 ID 3 - 差异时间已过(类别 3,错误 ID 3)。
-
分析“子系统信息”
“dwSubSysteminfo” = 65540 = 16#10004 ®
字 2(子槽索引)= 1
字 1(通道索引)= 4
|
错误严重程度 |
SubSysteminfo |
附加 |
错误代码 |
意义 |
Remedy |
|||
|---|---|---|---|---|---|---|---|---|
|
第 2 个字 (bit 16..31) |
单词 1 (bit 0..15) |
第 2 个字 (bit 16..31) ADD_SUB_TYPE |
单词 1 (bit 0..15) ADD_TYPE |
字 2(位 16...31) |
字 1(位 0...15) |
|||
|
3 |
子槽索引(0 - 16#9FFF) |
通道索引(0 - 16#7FFF) |
2 (USI: 16#8002) 扩展通道诊断 |
4(诊断警报) |
扩展错误类型 |
错误类型 |
子插槽 <子插槽 idx>、通道 <通道 idx>、扩展通道诊断;<错误文本> |
|
|
3 |
1 |
4 |
2 |
4 |
16#0003 |
16#0103 |
子槽 1,通道 4,扩展通道诊断;<错误文本> |
|
|
dwSubSysteminfo |
Add_Word 1_Word 2 |
dwErrorCode |
Diag 值中的条目 |
|||||
|
3 |
Sub2_ = 子槽 |
Sub1_ = Channel |
Add_4_2 = 扩展通道诊断 |
Err_Word 1_Word 2 Err_0103_0003 = error ID 3:差异时间已过(类别 3,错误 ID 3) |
文本列表中的文本搜索标准(ID) Diag_PNIO_26_22 Automation Builder 文本列表中错误列表(默认)的文本 Diag_PNIO_26_22 |
|||