【发布时间】:2017-02-11 21:13:13
【问题描述】:
我们正在评估 cpppo 以与各种罗克韦尔自动化 PLC 通信。我们有“N25:00”形式的地址范围(N = 整数,文件编号 25,文件偏移量 0),但 EtherNet/IP 似乎需要@<class>/<instance>/<attribute>。
你如何从一个翻译到另一个?
如果在这些 PLC 中定义了标签,有没有办法获取它们的列表或有关它们的信息?我们无法更改 PLC,通常看不到其中的梯形逻辑/配置。
cpppo 的 list_identity、list_interfaces 和 list_services 都可以工作,但不返回任何似乎可以翻译的内容:
List Services 0 from ('10.91.xxx.yyy', 44818): {
"count": 1,
"item[0].communications_service.capability": 32,
"item[0].communications_service.service_name": "Communications",
"item[0].communications_service.version": 1,
"item[0].length": 20,
"item[0].type_id": 256
}
List Interfaces 0 from ('10.91.xxx.yyy', 44818): {
"count": 0
}
【问题讨论】:
-
@pjkundert 有什么想法吗?
-
嗨,吉姆;您给出的寻址实际上是 Modbus 寻址。除了 EtherNet/IP CIP 之外,一些 *Logix PLC(可能全部?)还支持 Modbus/TCP I/O。我的理解是,数据可从两种协议中获得——在 Modbus/TCP 下,它将在 N25:00 方法中得到解决。在 EtherNet/IP CIP 中,它将位于某个
/ / 地址。但是,我从来没有在 *Logix PLC 中配置过这个,所以我不知道如何发现与通过 N25 提供的相同数据对应的 CIP 地址(如果有的话):... Modbus 寻址。 -
感谢您的想法。我们已经做了很多 Modbus,这与我所见过的任何东西都不匹配。 Modbus 有一个地址,通常在 40001 范围内表示整数。这种寻址符合罗克韦尔 (Allen-Bradley) 的 DF1 协议(这些 PLC 就是这样),但那是 RS-232,而不是以太网。我希望 EtherNet/IP 是一个扩展。
-
你说得对,我很抱歉——我将 Allen Bradley 数据高速公路寻址与 Modbus 混淆了!对此感到抱歉。当然,你是对的——Modbus 使用数字范围来区分数据类型,而不是 N:...等!是的,有办法通过 EtherNet/IP CIP 隧道 DF1,但我没有任何经验......
-
看起来它叫做“AB/Ethernet (CSP)”,除了专用的通信模块之外没有很多。
标签: python-2.7 plc industrial