Allen-Bradley / Rockwell — EtherNet/IP
EtherNet/IP(CIP,Common Industrial Protocol)是 Allen-Bradley / Rockwell 的 ControlLogix / CompactLogix 系列 PLC 所使用的通信规约。
符号标签 (Logix Tag) 限制
当前本网关的 EIP 驱动仅读取 CIP 属性(class / instance / attribute)。ControlLogix 中常见的符号标签(例如 MyController:Pump1.RPM)需要单独的 “Read Tag Service”,计划在后续版本中支持。在此之前如果必须使用符号标签,建议通过 Kepware 之类的网关以 OPC-UA 方式接入。
注册表单输入项
| 输入栏 | 填写内容 | 示例 |
|---|---|---|
| IP 地址 | PLC 的 IP | 192.168.0.90 |
| 端口 | EtherNet/IP 端口 | 44818(标准) |
| Backplane (backplane) | 背板编号 | 1 |
| Slot (local-slot) | CPU 槽号 | 0 |
PLC 侧需在 RSLogix / Studio5000 中启用 EtherNet/IP 模块。
标签的 PLC 地址表示法
以 <class>,<instance>,<attribute> 格式输入 EIP CIP 坐标。十进制或以 0x 开头的十六进制均可。
| 表示法 | 含义 |
|---|---|
0x01,1,1 | Identity Object → Vendor ID |
0x01,1,2 | Identity Object → Device Type |
0x01,1,7 | Identity Object → Product Name(字符串) |
0x6B,1,1 | Symbol Class instance 1 attribute 1 |
0x6C,1,1 | Template Class |
如何获取 CIP 坐标
- 在 Studio5000 的 Tag Browser 中查看 attribute 信息
- 使用 Wireshark 等抓取既有 EIP 通信报文进行确认
- 利用厂商 / 集成合作伙伴提供的映射表
如果您更熟悉符号标签,上文提到的 经由 Kepware 的方式 要简单得多。
数据格式匹配
| PLC 的值 | 数据格式 | 格式辅助 |
|---|---|---|
| 字符串(产品名、状态等) | String | (留空) |
| 整数(Vendor ID、DeviceType 等) | Integer | (留空) |
| 实数 | Float | (留空) |
| Boolean | Boolean | (留空) |
EIP 驱动会将响应的 raw 字节原样作为字符串读取,然后在后处理中按 [数据格式] 进行转换。若需要大整数 / 实数转换,请使用 应用计算公式 进行后处理。
常见问题与解决
| 现象 / 消息 | 可能原因 | 解决方法 |
|---|---|---|
| “Connection timeout” | 端口 44818 被阻断、EtherNet/IP 模块未启用 | 在 RSLogix / Studio5000 中启用 EtherNet/IP 模块 |
| “Forward Open failure” | rack/slot 或 backplane 不匹配 | 参考上表修正 backplane / slot |
| “Class/Instance not found” | CIP 坐标错误 | 用 Studio5000 的 Tag Browser 或 Wireshark 验证坐标 |
| 数值显示乱码 | 因为 raw 字节被原样作为 String 读取 | 建议用计算公式按 little-endian 解析,或改为经由 Kepware |
更多示例 / 自动化注册
请参考 高级 — REST API 中的 EIP 示例。