如何查看模块的诊断信息

通过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,如下图所示:

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

注意事项:
关于系统功能SFC51的更多详情请参阅《SIMATIC 用于S7-300/400 系统和标准函数 的系统软件 卷1/2 参考手册》:https://support.industry.siemens.com/cs/cn/zh/view/44240604
关于信号模块的诊断数据的更多详情请参阅《SIMATIC S7-300 S7-300模块数据》:https://support.industry.siemens.com/cs/cn/zh/view/8859629