如何查看模块的诊断信息

描述

通过STEP7 V5.6编程软件读取诊断信息

当具有诊断功能的模块SF灯亮时,可以通过在线查看模块诊断信息的方式,缩小故障范围。

步骤如下:

1. 在STEP 7软件的硬件组态界面,点击“在线”按钮,如下图所示:

模块

2. 在STEP 7项目中的硬件组态界面,在线后双击模拟量模块,在弹出的“模块信息”对话框中选择“Diagnostic Interrupt”选项夹中查看诊断信息。

模块

通过程序读取诊断信息

使用SFC51"RDSYSST"读取模块诊断信息。

1. 程序功能介绍

通过系统功能SFC 51 "RDSYSST" (读取系统状态),可以读取系统状态列表或部分系统状态列表,例如指示灯状态,序列号,从站状态等等。调用SFC 51时,通过将值"1"赋给输入参数REQ来启动读取。如果可以立即读取系统状态,则SFC将在BUSY输出参数中返回值0。如果BUSY包含值1,则尚未完成读取功能。SFC51参数说明如下表所示。

 

 

 

参数 描述  
REQ 输入参数 REQ = 1:启动处理
SSL_ID 输入参数 将要读取的系统状态列表或部分列表的ID号
INDEX 输入参数 部分列表中对象的类型或编号
RET_VAL 输出参数 如果执行SFC时出错 ,则RET_VAL参数
将包含错误代码。
BUSY 输出参数 TRUE:尚未完成读取。
SSL_HEADER 输出参数 LENTHDR是SSL列表或SSL部分列表的数据记录的长度。
• 如果仅读取了SSL列表的标题信息,则N_DR包含属于它的数据记录数。
• 否则,N_DR包含传送到目标区域的数据记录数。
DR 输出参数 SSL列表读取或SSL部分列表读取的目标区 域:
• 如果仅读取了SSL列表的标题信息,
则不能评估DR的值, 而只能评估SSL_HEADER的值。
• 否则,LENTHDR和N_DR的乘积将指 示已在DR中输入了多少字节。

 

 

 

2.通过SFC 51读取对应物理地址的模块的诊断数据记录1,使用的SSL_ID参数为W#16#00B2读取AI模块诊断数据记录1,编程如下:

首先需要创建一个数据块,用来存放读取出来的诊断数据记录,如下图所示:

模块

打开OB1,在OB1的临时变量区创建一个变量SSL_HEADER,类型设置为Struct(结构),如下图所示:

模块

打开OB1,在OB1的临时变量区创建一个变量SSL_HEADER,类型设置为Struct(结构),双击SSL_HEADER变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为LENTHER和N_DR,如下图所示:

模块

编写SFC51程序,如下图所示:

模块

DB1存放的结果即为AI模块诊断数据记录1,如下图所示:

模块

诊断字节的结构如下图所示:

模块

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分