Telnet 通过互联网向Modbus设备发送查询

Telnet 通过互联网向Modbus设备发送查询,telnet,modbus,modbus-tcp,Telnet,Modbus,Modbus Tcp,我刚开始在一个没有背景的Modbus项目上工作。我试图做的是通过使用IP地址、读取寄存器等查询活动Modbus设备。 我使用带有相关IP地址和端口号的“telnet”命令连接设备,连接后,它会等待命令。问题是当我键入任何内容并按enter键时,它似乎不会发送任何内容,因为它允许我向新行写入更多内容,并且不会给出任何响应。 我想我缺乏关于通过互联网查询此类设备的基本概念的知识。除非您非常擅长在telnet中键入二进制数据并读取二进制响应,否则您将无法通过telnet与Modbus/TCP从机通信

我刚开始在一个没有背景的Modbus项目上工作。我试图做的是通过使用IP地址、读取寄存器等查询活动Modbus设备。 我使用带有相关IP地址和端口号的“telnet”命令连接设备,连接后,它会等待命令。问题是当我键入任何内容并按enter键时,它似乎不会发送任何内容,因为它允许我向新行写入更多内容,并且不会给出任何响应。
我想我缺乏关于通过互联网查询此类设备的基本概念的知识。

除非您非常擅长在telnet中键入二进制数据并读取二进制响应,否则您将无法通过telnet与Modbus/TCP从机通信

您需要找到Internet上提供的众多开放源代码Modbus库中的一个并使用它。我是j2mod的维护人员,这里有j2mod-


写你自己的客户。在了解该库之前,cmds目录中有大量的测试程序可以用作模板。除Java之外,还有其他语言的开源库。一般来说,搜索modbus库将找到您要查找的内容。

您要向设备发送哪些数据?我尝试发送基本上所有的数据以获得响应,我甚至没有收到错误。11 03 006B 0003 7687发送了此信息,认为设备可以识别此格式。但我认为问题是我甚至不能发送命令。看起来你在发送Modbus RTU帧。您需要发送Modbus TCP,包括MBAP标头。另外,请确保发送的是二进制数据,而不是ASCII。