我正在开发一个程序,将我的PC连接到欧姆龙CJ2M PLC,以发送读/写命令。
据我所知,Omron PLC可以通过3种方式进行通信:
1) Hostlink,
2) FINS、(TCP或UDP)和
3)弹性公网EIP。
这里的需求是通过弹性公网is连接CJ2M,通过弹性公网is协议发送读写命令。
弹性公网EIP通信初始需要发送2个请求:
1)列出服务和2)注册会话
寄存器会话返回一个句柄,在通过EIP进行进一步通信时应使用该句柄。
我能够成功地发送列表服务、注册会话和转发开放(RR数据),并且欧姆龙PLC成功地回复了这些数据。这3个请求/响应没有问题。
现在我想知道需要使用哪个命令/服务来读取Omron的内存区(比如DR20内存地址)。
我通过RR数据发送服务代码0x4d,但它显示"Vendor Specific Error“,然后连接终止。
我需要Omron EIP或wireshark日志或一些嗅探数据包的协议规范,其中通过EIP通信捕获PC到Omron PLC的请求/响应(无fins,无主机链接)。
发布于 2016-08-30 18:47:50
我们可以使用"Send Unit Data“向Omron EIP发送请求,服务代码为0x4d。
此服务(0x4d)用于根据EIP文档发送写请求,但我们可以插入Omron特定命令(FINS)来读取命令特定数据中的存储区。
0000 00 00 00 80 0e 00 01 00 80 00 02 00 00 00
0010 00 00 00 12 01 01 82 00 00 00 01
https://stackoverflow.com/questions/38917206
复制相似问题