通过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,如下图所示:
诊断字节的结构如下图所示:
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !