Siemens Profinet IO
Profinet IO 是由 Siemens 主导的工业以太网标准。它最常用于 S7 PLC 与分布式 I/O(ET200SP / ET200MP / 外部驱动器)之间的通信,也可用于与 S7 PLC 本身通信。
本网关通过通用集成引擎支持 Profinet 通信。
与 S7 有什么不同?
| 项目 | S7 (ISO-on-TCP) | Profinet IO |
|---|---|---|
| 端口 | 102 | 34962 / 34963 / 34964 (RT) |
| 通信模型 | request/response(轮询) | cyclic IO exchange(实时) |
| 地址表示 | %DB1.DBW0 | slot/subslot/index |
| 主要用途 | 读取 PLC 的 DB 变量 | 分布式 I/O / 驱动器的 process data |
| GSDML | — | 必需(设备规格 XML) |
如果只想读取 S7 PLC 的 DB
直接使用 西门子 S7 页面中的 %DB1.DBW0 格式要简单得多。Profinet 适用于直接与分布式 I/O 本身通信或需要 cyclic 数据交换的场景。
注册表单输入项
| 输入框 | 填写内容 | 示例 |
|---|---|---|
| IP 地址 | Profinet 设备 IP | 192.168.0.160 |
| 端口 | Profinet 端口 | 34962(RT_CLASS_1 默认) |
| Device Name (device-name) | Profinet 设备名称 (DCP) | et200sp-1 |
| GSDML 文件路径 | 设备规格 XML | /opt/.../gsd/GSDML-...xml |
GSDML 是关键
没有 GSDML(设备厂商提供的 XML),Profinet 无法识别 slot/subslot/parameter 的含义。需从设备制造商(Siemens / Festo / SEW / Bosch Rexroth 等)网站下载对应型号的 GSDML,并注册到网关中。
标签的 PLC 地址表示
Profinet 设备的数据通过 slot / subslot / index 坐标进行标识。
| 表示 | 含义 |
|---|---|
slot:1/subslot:1/index:0 | slot 1、subslot 1、parameter index 0 |
slot:2/subslot:1/input | slot 2 的 cyclic input data |
slot:2/subslot:1/output | slot 2 的 cyclic output data |
也可以直接使用 GSDML 中的模块名称。
| 表示 | 含义 |
|---|---|
DI8.input.0 | 8 通道数字量输入模块的 channel 0 |
AI4.value.0 | 4 通道模拟量输入模块的 channel 0 |
Drive.actualSpeed | 驱动器的 actual speed |
什么是 slot / subslot
- slot — Profinet 设备的插槽编号。0 表示设备本身,从 1 开始为模块
- subslot — 一个插槽内的 sub-module(通常为 1)
- index — IO data 的 byte offset 或 parameter 编号
GSDML 中完整定义了 “Module → Submodule → IOData” 树结构。
数据格式匹配
| 含义 | 数据格式 | 格式辅助 |
|---|---|---|
| Digital input/output(1 bit) | Boolean | (留空) |
| 16 位整数 | Integer | (留空) |
| 32 位整数 | Integer | DW |
| 32 位浮点数 | Float | REAL |
| 字符串(devicename、ordering 信息) | String | (留空) |
byte order 为大端序(Profinet 标准)。
常见问题与解决
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| “Device not reachable (DCP)” | Profinet 设备名称不一致 | 用 TIA Portal / PRONETA 确认 device-name。通过 DCP 命令重新命名 |
| “GSDML not loaded” | XML 路径错误 | 使用准确的绝对路径,并检查文件权限 |
| “Slot/subslot not found” | 与设备硬件组态不一致 | 检查实际安装的模块与 GSDML 是否匹配 |
| 数值 stale | 未启动 RT cyclic exchange | 确认 application relation (AR) 已启动 |
| AR establish 失败 | 已被其他 master(S7 PLC)占用 | Profinet 设备通常只允许一台主站。网关与 PLC 只能二选一 |
禁止直接访问运行中 PLC 的分布式 I/O
在实际运行环境中,如果网关通过 Profinet 直接连接 S7 PLC 的分布式 I/O(如 ET200SP),可能与 PLC 冲突并导致产线停机。在运行中的产线上,建议通过 S7 读取 PLC 的 DB 变量更为安全。
下一步
- 西门子 S7 — 仅需读取 PLC 的 DB 变量时的推荐路径
- 参考 高级 — REST API 中的 Profinet 示例。