我正在开发一个程序来将我的 PC 连接到 Omron CJ2M PLC 以发送读/写命令。
据我了解,欧姆龙 PLC 可以通过 3 种方法进行通信:
1)主机链接,
2) FINS,(TCP 或 UDP)和
3) EIP。
我这里的要求是通过 EIP 连接 CJ2M,并通过 EIP(CIP) 协议发送读/写命令。
最初 EIP 通信需要发送 2 个请求:
1) 列出服务和 2) 注册会话
注册会话返回一个句柄,该句柄应该用于通过 EIP 进行的进一步通信。
我能够成功发送列表服务、注册会话和转发打开(RR 数据),并且这些都由 Omron PLC 成功回复。这 3 个请求/响应没有问题。
现在我想知道需要使用哪个命令/服务来读取欧姆龙的内存区域(比如 DR 20 内存地址)。
我正在通过 RR 数据发送服务代码 0x4d,但它显示“供应商特定错误”,然后连接被终止。
我需要 Omron EIP 或 wireshark 日志或一些嗅探数据包的协议规范,其中通过从 PC 到 Omron PLC 的 EIP 通信捕获请求/响应(无鳍,无主机链接)。