n
西门子诊断中继器具有网络中继和网络诊断的功能,通过诊断中继器可以在系统运行过程中监视一个PROFIBUS RS485网段,通过STEP7读取诊断信息,可以快速定位网络故障点,给出故障原因。包括以下几个方面诊断信息:n
> 网络拓扑结构表
> 诊断缓冲区信息
> 统计缓冲区信息
下面将通过一个具体的应用实例,给出在STEP7中读取诊断中继器诊断信息的方法和基本操作步骤。
关于诊断中继器的详细使用请参考诊断中继器手册。n
1 网络搭建和硬件组态
1.1 网络搭建n
1、系统组成
下图给出了本应用实例的主要组成部分:n
图1 系统组成结构图n
2、软件环境n
> 操作系统:Windows XP Professional SP2
> 编程软件:STEP7 V5.4 SP4
3、系统主要硬件设备及版本信息:n
设备名称 | 定货号 | 版本 |
诊断中继器 | 6ES7 972-0AB01-0XA0 | V2.0.0 |
DP主站 | 6ES7317-2EK13-0AB0 | V2.6 |
ET200M 5#DP从站 | 6ES7153-2BA00-0XB0 | V3.07 |
ET200S 3#DP从站 | 6ES7151-7AA10-0AB0 | V2.0 |
CP5611 | 6GK156-1AA01 | |
PROFIBUS总线连接器 | ||
PROFIBUS总线电缆 |
表1 系统主要硬件设备及版本信息n
4、硬件设置
S7-300 CPU连接到诊断中继器的DP1接口,ET200M和ET200S连接到诊断中继器的DP2接口,诊断中继器的DP3接口没有使用,带有STEP7的编程设备连接到诊断中继器的PG接口。
诊断中继器设置:地址设置为15, DR为ON(使能中继功能),DP1开关设置为ON(只接A1/B1 ),DP3开关设置为OFF(关闭DP3网段)。如图2所示:n
图2 诊断中继器设置n
1.2 在STEP7中进行硬件组态n
1、根据实际搭建的网络在STEP7中进行硬件组态。n
图3 系统硬件组态n
2、为诊断中继器分配参数
设置DP中断模式为“DPV0”,DP2/DP3拓扑检测为“ON”,TDP/TDX监视为“OFF”。
注,如果在DP中断模式选择为“DPV1”,则CPU将不再激活OB82,因此建议选择默认模式“DPV0”。n
图4 诊断中继器参数分配n
3、设置诊断中继器帧长度n
图5 设置诊断中继器帧长度n
参数 | 可选择的诊断帧 | 帧长度 (字节) |
诊断帧长度 | Segment DP2, DP3, DP1, PG, TSYNC | 91 |
Segment DP2, DP3, DP1, PG | 84(默认) | |
Segment DP2, DP3, DP1 | 65 | |
Segment DP2, DP3 | 46 | |
Segment DP2 | 27 |
表2 诊断帧长度列表n
4、诊断中继器其他属性页相关参数设置均采用默认值。n
2 在线读取诊断中继器信息
2.1 拓扑结构显示n
1、线性诊断
在Netpro中选择PLC-Prepare Line Diagnostics菜单进行线性诊断。
注,在选择上相应的DP网络后,Prepare Line Diagnostics菜单才可用。n
图6 Prepare Line Diagnostics菜单n
图7 线性诊断结果显示n
2、拓扑结构显示
在Netpro中选择PLCShow Network Topology菜单打开拓扑结构显示窗口。n
图8 拓扑结构图形显示n
图9 拓扑结构表显示n
2.2 在线诊断缓冲区信息
对于每一个网段(DP1、DP2、DP3和PG网段),诊断中继器都有一个诊断缓冲区,每个网段可以保存10条诊断信息。注:诊断缓冲区的信息不具有掉电保持功能。n
图10 诊断缓冲区信息显示n
2.3 统计缓冲区信息显示
DP2和DP3网段包含两个统计缓冲区,其中包含了冲突故障率和报文故障率的统计信息,用来评估网络的质量,可以通过STEP7在线读取统计缓冲区信息。n
图11 统计缓冲区信息显示n
3 通过SFC13读取诊断中继器的诊断数据
3.1 SFC13的使用
利用SFC13“DPNRM_ DG”可以读取DP从站的诊断数据,经过无错数据传送之后,已读取的数据被输入到由RECORD指定的数据区域。n
图12 SFC13在程序中的调用n
参数 | 输入/输出 | 数据类型 | 存储区 | 描述 |
REQ | 输入 | BOOL | I、Q、M、D、L、常数 | REQ = 1:读请求 |
LADDR | 输入 | WORD | I、Q、M、D、L、常数 | DP从站的已组态诊断地址 |
RET_VAL | 输出 | INT | I、Q、M、D、L | 如果在功能激活时出错,则返回值包含故障代码。如果未出现错误,则实际传送的数据长度将输入到RET_VAL中 |
BUSY | 输出 | BOOL | I、Q、M、D、L | BUSY = 1:读操作尚未完成 |
RECORD | 输出 | ANY | I、Q、M、D、L | 已读取的诊断数据的目标区域。仅允许使用BYTE数据类型。要读取的数据记录的最小长度或目标区域为6。要发送的数据记录的最大长度为240 |
表3 SFC13的管脚定义n
关于SFC 13 "DPNRM_ DG"的详细说明请参考手册“用于S7-300/400系统和标准功能的系统软件”。n
3.2 通过SFC13读取诊断中继器的诊断数据
在STEP7中调用SFC13,并进行参数赋值,触发REQ,启动作业, 并从RECORD指定的数据区读取数据记录。n
图13 SFC13读取的诊断数据n
从上面的监视表中可以看到,通过SFC13读取到的诊断数据包括了诊断中继器的状态信息,制造商ID,组态信息,以及每个网段的故障诊断等信息。n
4 通过SFC59读取诊断中继器的诊断记录
4.1 SFC59的使用
通过SFC 59 "RD_REC" (读记录),可从指定地址的模块中读取编号为RECNUM的数据记录。通过调用SFC59且将输入参数REQ置1启动读任务。如果数据传送没有错误,读取的数据记录将被传送到由RECORD参数指定的目标区域中。n
图14 SFC59在程序中的调用n
参数 | 输入/输出 | 数据类型 | 存储区 | 描述 |
REQ | 输入 | BOOL | I、Q、M、D、L、常数 | REQ = 1:读请求 |
IOID | 输入 | BYTE | I、Q、M、D、L、常数 | 地址区域的ID: B#16#54 = 外设输入(PI) B#16#55 = 外设输出(PQ) 若是混合模块,指定最低地址的 区域ID如果两个地址相同, 指定B#16#54 |
LADDR | 输入 | WORD | I、Q、M、D、L、常数 | 模块的逻辑基本地址。对于混合 模块,则指定两个地址中较低的一个 |
RECNUM | 输入 | BYTE | I、Q、M、D、L、常数 | 数据记录号(允许值0-240) |
RET_VAL | 输出 | INT | I、Q、M、D、L | 如果在功能激活时出错,则返回值包含故障代码 |
BUSY | 输出 | BOOL | I、Q、M、D、L | BUSY = 1:读操作尚未完成 |
RECORD | 输出 | ANY | I、Q、M、D、L | 读取数据记录的目标区域。异步执行SFC 59时,要确保每次调用时参数RECORD的实际值具有相同的长度信息。只允许数据类型BYTE |
表4 SFC59的管脚定义n
关于SFC 59 "RD_REC"使用的详细说明请参考手册“用于S7-300/400系统和标准功能的系统软件”。n
4.2 读取拓扑结构表n
1、相关数据记录及含义n
记录号 (HEX) |
记录号 (DEC) |
读/写 | 功能 |
32 | 50 | 读 | 第一部分拓扑表记录,节点0到31,170个字节 |
33 | 51 | 读 | 第二部分拓扑表记录,节点32到63,170个字节 |
34 | 52 | 读 | 第三部分拓扑表记录,节点64到95,170个字节 |
35 | 53 | 读 | 第四部分拓扑表记录,节点96到126,170个字节 |
表5 拓扑结构表相关数据记录及含义n
2、在STEP7中调用SFC59,并进行参数赋值,RECNUM=B#16#32,触发REQ,启动作业,并从RECORD指定的数据区读取数据记录。n
图15 实际的网络拓扑结构n
图16 读取的拓扑结构数据记录n
4.3 读取诊断缓冲区数据记录n
1、相关数据记录及含义n
记录号 (HEX) |
记录号 (DEC) |
读/写 | 功能 |
1E | 30 | 读 | DP1网段诊断缓冲区 |
1F | 31 | 读 | DP2网段诊断缓冲区 |
20 | 32 | 读 | DP3网段诊断缓冲区 |
21 | 33 | 读 | PG网段诊断缓冲区 |
表6 诊断缓冲区相关数据记录及含义n
图17 实际的诊断缓冲区信息n
2、在STEP7中调用SFC59,并进行参数赋值,RECNUM=B#16#1F,触发REQ,启动作业,并从RECORD指定的数据区读取数据记录。n
图18 读取的诊断缓冲区数据记录n
4.4 读取统计缓冲区数据记录n
1、相关数据记录及含义n
记录号 (HEX) |
记录号 (DEC) |
读/写 | 功能 |
28 | 40 | 读 | DP2网段冲突故障率 |
29 | 41 | 读 | DP2网段报文故障率 |
2A | 42 | 读 | DP3网段冲突故障率 |
2B | 43 | 读 | DP3网段报文故障率 |
表7 统计缓冲区相关数据记录及含义n
图19 实际的统计缓冲区信息n
2、在STEP7中调用SFC59,并进行参数赋值,RECNUM=B#16#28,触发REQ,启动作业,并从RECORD指定的数据区读取数据记录。
图20 读取的统计缓冲区数据记录
5 应用小结
西门子诊断中继器除了具有网络中继功能外,还具有在系统运行过程中对网络进行在线诊断的功能。通过STEP7读取到的诊断数据,可以实时地了解系统网络拓扑、网络故障点、网络运行状况等信息,以方便用户快速定位和排除系统故障。
本应用实例简要介绍了诊断中继器能够提供的诊断功能,以及通过STEP7读取诊断中继器诊断信息的基本方法和操作步骤。在通过STEP7读取诊断中继器诊断信息的实际应用过程中应特别注意以下几个方面的问题:
> 只有STEP7 V5.2及以上版本才支持对拓扑表、诊断缓冲区、统计缓冲区信息的读取功能
> 只有诊断中继器的DP2、DP3网段具有诊断功能,诊断的最远距离为100m
> 使用诊断中继器的诊断功能,需要将诊断中继器在STEP7中组态为一个DP从站
> 在构建网络完或拓扑结构改变后,需要进行Prepare Line Diagnostics,重新决定网络拓扑
> 通过STEP7程序进行拓扑诊断需要CPU支持SFC 103 “DP_TOPOL”
说明:本应用文档只是示例、指导性文件,关于诊断中继器的详细使用,请参考“诊断中继器手册”或西门子公司网站下载中心相关应用文档等资料。
关键词
PROFIBUS,诊断中继器,网络组件,STEP7
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc326924.html