公司动态
当前位置:首页 > 公司动态 > 分析诊断数据的实例
分析诊断数据的实例

简介

诊断数据的目标区域应该足够长,以容纳标准诊断(6 个字节)、标识符特定诊断(3 个字节,用于 12 个插槽)和分析设备特定的诊断(仅适用于模块状态,需要 7 个附加字节)。 OB82 中的扩展指令“RALRM”用于此功能。

要进行更广泛的分析(通道特定的诊断),则需要保留附加字节(假定 DP 从站支持此功能)。

使用“RALRM” (SFB 54) 分析 OB82 中的诊断数据

STL
// ...
// ...
L 120 //*设备/模块的起始地址,
T "Slotadress_Diag" //从待诊断的插槽开始
CALL "RALRM" , "DB54"
MODE :="Alle_Params" // 1 = 设置所有的输出参数
F_ID :="Slotadresse_Diag" //将开始诊断的插槽的起始地址
MLEN :=20 //诊断数据的较大长度,单位为字节
NEW :="new" //不相关
STATUS:="RET_VAL" //函数结果,出错消息
ID :="Slotadresse_Alarm" //要接收中断的插槽的起始地址
LEN :="Laenge_Alarminfo" //附加中断信息的长度(4 字节的标头信息 + 16 字节的诊断数据)
TINFO :=P#M 100.0 BYTE 28 //指向 OB 起始信息的指针 + MB 100 的 28 个字节的管理信息
AINFO :=P#M 130.0 BYTE 20 //指向用于存储诊断数据的目标区域的指针
// ...
//已存储的诊断数据的结构:
// MB 130 到 MB 133: 标头信息(长度,标识符,插槽)
// MB 134 到 MB 139: 标准诊断信息(6 个字节)
// MB 140 到 MB 142: 特定标识符的诊断信息(3 个字节)
// MB 143 到 MB 149: 模块状态(7 个字节)
// ...
A M 141.0 //插槽 1 有错误?
JC stp1
BE
stp1: L MB 147 //插槽 1 到 4 的模块状态
AW W#16#3 //排除插槽 1
L W#16#2 //在* 2 位插入状态“错误模块”(wrong module)
==I
S Q 0.1 //对出错模块的响应
L MB 147 //插槽 1 到 4 的模块状态
AW W#16#3 //排除插槽 1
L W#16#1 //* 2 位的状态“无效数据”(invalid data)
==I
S Q 0.2 //对无效用户数据的响应
// ...

shtxjd.cn.b2b168.com/m/