- {{item.name}}
如何使用 SFC13 "DPNRM_DG" 读取 PROFIBUS DP 从站的诊断数据并在程序中评估这些数据?
- 0
- 877
- 1064
描述
每个 DP 从站都有符合 EN 50 170 卷 2,PROFIBUS 结构的诊断数据结构。你可以使用 SFC13 "DPNRM_DG" 来读取一个 DP 从站的诊断数据。
从站诊断数据结构见下表。
| Byte | Description |
| 0 | 站状态 1 |
| 1 | 站状态 2 |
| 2 | 站状态 3 |
| 3 | 主站站号 |
| 4 | 制造商 ID (高字节) |
| 5 | 制造商 ID (低字节) |
| 6 ... | 从站更多详细的诊断信息 |
表 01
注意
DP 从站手册包含从站诊断数据结构的详细信息。
如果一个 PROFIBUS DP 从站支持诊断探测诊断状态的变化,它会向 CPU 发送诊断报警。
- 有一个故障或(和)组件需要维修 (到来的事件)
- 没有故障并且没有组件需要维修(离开的事件)
操作系统调用 OB82。在 OB82 的本地标签有逻辑基本地址和4个字节的 DP 从站诊断信息用来发送诊断请求。
ET 200S 诊断数据的读取和评估参见下面的例程。
例程描述
OB1
系统功能 SFC13 "DPNRM_DG" 在OB1 中调用用来读取 ET 200S 的诊断数据。
下表中列出了SFC13 "DPNRM_DG" 的输入参数。
| 输入 | 数据类 型 | 描述 |
| 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.
https://support.industry.siemens.com/cs/cn/zh/view/2190197
- 评论
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
关联文档
- FCS400提供哪些诊断数据?
- 通过STEP7读取诊断中继器的诊断信息
- 通过OPC访问PROFIBUS DP-V1从站的数据记录
- 在PROFIBUS中,主站在读取和写入从站连续数据时(大于4个字节)需要使用SFC14和SFC15。那么在PROFINET中控制器读取或写入IO设备连续数据时又需要怎么处理?
- 如何使用SIMATIC NET PC软件组态PC站在OPC服务器(DP从站)与第三方(作为DP主站)进行通讯
- 在WinCC中如何使用VBS读取报警记录数据到EXCEL
- 使用FB126功能块对PROFIBUS DP和PROFINET IO网络进行诊断时要注意什么?
- 如何使用 SIMATIC 维护站诊断工控机
- 如何使用 SIMATIC 维护站诊断交换机
- 如何使用SIMATIC诊断工具(SDT)收集PCS 7诊断信息
看过该文档的用户还看过哪些文档



西门子官方商城




{{item.nickName}}