将 PLC FileAddress/StartAddress 翻译成 EtherNet/IP @<class>/<instance>/<attribute>

Translating PLC FileAddress/StartAddress to EtherNet/IP @<class>/<instance>/<attribute>

我们正在评估 cpppo 以与各种罗克韦尔自动化 PLC 对话。我们有 "N25:00" 形式的地址范围(N = 整数,文件编号 25,文件偏移量 0),但是 EtherNet/IP 似乎想要 @<class>/<instance>/<attribute>.

如何从一种翻译成另一种?

如果在这些 PLC 中定义了标签,是否有办法获取它们的列表或有关它们的信息?我们没有能力更改PLC,而且通常看不到其中的梯形图logic/configuration。

cpppo 的 list_identity、list_interfaces 和 list_services 都可以,但不要 return 任何似乎可以翻译的内容:

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
}

看来您需要某种类型的网关。我正在使用一种名为 Cogent Data Hub 的商业产品将我的罗克韦尔数据导入 SQL 数据库。不确定对你有多大帮助。

至少您需要某种 DDE/OPC 服务器。如果你买了它,你可以使用 RSLinx Classic。

您遗漏了重要的详细信息。什么样的罗克韦尔PLC? N25:00 地址可以是较旧的 PLC 类型,如 SLC5、PLC5 系列。 另一方面,Ethernet/IP 用于较新的基于标签的 PLC,如 Compactlogix、ControlLogix PLC。

顺便说一句,PyLogix 可以与新型 PLC 通信。