n
描述
每个 DP 从站都有符合 EN 50 170 卷 2,PROFIBUS 结构的诊断数据结构。你可以使用 SFC13 "DPNRM_DG"来读取一个 DP 从站的诊断数据。n
从站诊断数据结构见下表。n
Byte | Description |
0 | 站状态 1 |
1 | 站状态 2 |
2 | 站状态 3 |
3 | 主站站号 |
4 | 制造商 ID (高字节) |
5 | 制造商ID (低字节) |
6 ... | 从站更多详细的诊断信息 |
n
表01n
注意
DP 从站手册包含从站诊断数据结构的详细信息。n
如果一个 PROFIBUS DP 从站支持诊断探测诊断状态的变化,它会向 CPU 发送诊断报警。n
- 有一个故障或(和)组件需要维修 (到来的事件)n
- 没有故障并且没有组件需要维修(离开的事件)
操作系统调用 OB82。在 OB82 的本地标签有逻辑基本地址和4个字节的 DP 从站诊断信息用来发送诊断请求。n
ET 200S 诊断数据的读取和评估参见下面的例程。n
例程描述
OB1
系统功能 SFC13 "DPNRM_DG" 在OB1 中调用用来读取 ET 200S 的诊断数据。n
下表中列出了SFC13 "DPNRM_DG" 的输入参数。
n
输入 | 数据类 型 | 描述 |
REQ | BOOL | REQ=1: 请求读取 |
LADDR | WORD | 组态的 DP 从站诊断地址 |
表 02
下表中列出了SFC13 "DPNRM_DG"的输出参数。
输出 | 数据类 型 | 描述 |
RET_VAL | INT | 如果 FC 在调用的时候发生错误,返回值会包含相关的故障代码。如果没有故障发生,RET_VAL 是实际的数据传输长度。 |
RECORD | ANY | 诊断数据读取的目标区域。只允许 BYTE 类型的数据类型。可读取的最小数据记录长度为 6。可读取的最大数据记录长度为240。 |
BUSY | BOOL | BUSY=1: 读任务还没有完成。 |
表 03
调用 SFC13 "DPNRM_DG" 输入参数 REQ 为1时读取任务启动。当 OB82 调用 SFC13 "DPNRM_DG" 时输入参数 REQ 要置1。
在 SFC13 "DPNRM_DG" 的输出参数 RECORD 你可以指定诊断数据完全传输结束后的存储地址。 本例中诊断数据存储在数据块 DB82 中。
当读取过程完成,REQ 端要置0,以便于重新启动一个新的读取过程。
Fig. 01
OB82
如果 ET 200S发送了一个诊断请求,SFC13 "DPNRM_DG" 的输入参数 REQ 要置1。 当在 OB1 中调用 SFC13 "DPNRM_DG" , 输入参数 REQ 要置1用以启动读取任务。
ET 200S 的逻辑基本地址储存在 OB82 的本地标签中。你可以在 OB82 中分配 ET 200S 的逻辑基本地址到 SFC13 "DPNRM_DG" 的输入参数 LADDR 中去。
Fig. 02
在用户程序中评估诊断数据
在 OB1 中调用 SFC13 "DPNRM_DG" 读取的诊断数据储存在 DB82 中。
在例程中, ET 200S 包含以下模块:
- 模块 1:电源模块
- 模块 2:数字量输出模块 (DO)
- 模块 3:数字量输入模块 (DI)
在用户程序中,诊断过程评估下方所列每种的状态 。
- 模块正常
- 模块故障
- 不正确的模块
- 没有模块插槽
下载
下载中包含项目 "Diagnose.zip" 。
拷贝文件 "S7_Project.zip" 到一个单独的文件夹并通过双击打开。然后你可以使用 STEP 7 打开并释放项目。
Diagnose.zip ( 10710 KB )
附加信息
关于系统功能 SFC13 "DPNRM_DG" 和 OB82 的详细信息参见“S7-300/400 系统和标准功能卷1和卷2” 可参考条目44240604.
DP 从站手册包含从站诊断数据结构的详细信息,对于 ET 200S 接口模块的例子可参考条目25548014.
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc330086.html