Omron CJ2M通过以太网/ IP从PC程序读/写

时间:2016-08-12 11:46:32

标签: eip

我正在开发一个程序,将我的PC连接到Omron CJ2M PLC以发送读/写命令。

根据我的理解,欧姆龙PLC可通过3种方式进行通信:

1)Hostlink,

2)FINS,(TCP或UDP)和

3)EIP。

我的要求是通过EIP连接CJ2M,并通过EIP(CIP)协议发送读/写命令。

最初EIP通信需要发送2个请求:

1)列出服务和2)注册会话

注册会话返回一个句柄,该句柄应该用于通过EIP进一步通信。

我已成功发送列表服务,注册会话和转发开放(RR数据),这些都是由欧姆龙PLC成功回复的。这3个请求/响应没有问题。

现在我想知道需要使用哪个命令/服务来读取欧姆龙的内存区域(比如DR 20内存地址)。

我在RR数据上发送服务代码0x4d,但它显示“供应商特定错误”,然后连接终止。

我需要Omron EIP或wireshark日志或一些嗅探数据包的协议规范,其中通过EIP通信从PC到Omron PLC捕获请求/响应(没有鳍,没有主机链接)。

1 个答案:

答案 0 :(得分:1)

我们可以使用"发送单位数据"向欧姆龙EIP发送请求服务代码为0x4d。

此服务(0x4d)用于根据EIP文档发送写请求,但我们可以插入Omron特定命令(FINS)来读取命令特定数据中的内存区域。

<00> 0000 00 00 00 00 00 80 0e 00 01 00 80 00 02 00 00 00

<00> 0010 00 00 00 12 01 01 82 00 00 00 00 01