我需要通过JavaFX上的桌面应用程序的USB端口(USB到RS 485转换器)从一些数据聚合器设备中读取数据,所以我已经对连接进行了检查并得到了适当的值。
数据聚合装置从光伏组件(太阳能)收集有关产生的电流、电力等信息.这个设备有唯一的RS-485端口。当我从文档中阅读时,它使用Modbus RTU协议(设置为9600-8N1)。
老实说,这是我第一次在COM端口和设备上工作。这就是为什么我甚至不知道我是否正确地连接了引脚。我读了很多与RS-485,Modbus有关的东西。但是,我仍然在迈出第一步。
所以,我使用简单的UTP电缆连接。我所做的是:
Windows在连接USB到PC后,找到了虚拟的"COM3“端口。然后我尝试通过Bray检查与终端1.9的连接。我试着送点东西。在接收信息的同时,它也给我发送了一些数据。然而,这并不意味着每件事都有很好的联系。终端还向我展示了一些帧错误。我知道,基于“主从”方案的Modbus协议。因此,PC作为客户端是“主”,设备作为服务器是“从”。我必须向奴隶发送一些请求才能得到一些预期的响应。但是,怎么做?!请查查我的联系!我不知道下一步该怎么办。
发布于 2017-02-04 08:58:29
RS-485是差分的,只需要两根电线,你就可以安全地移除地线(GND).然后,将电线连接到USB到R+ 485转换器上的R+和R-上。
这样做了,我能问问你是怎么寄东西的吗?Modbus需要一个最终的字节,即难以手工确定的CRC。您创建了有效的modbus数据包吗?
有效的modbus数据包需要接收地址、有效负载长度、数据本身和最终的CRC。
发布于 2017-02-26 21:47:14
我不知道java,但是如果您有设备协议的规范,您肯定可以使用终端程序向modbus发送消息并将消息读取回来。这样,您将进行协议测试,应该不难制作定制软件以后。但是,直到你可以发送信息,并获得有意义的信息,使用终端软件,我建议你坚持它。
这段youtube视频将提供关于modbus RTU数据包格式的基本知识:https://www.youtube.com/watch?v=OvRD2UvrHjE。
最困难的部分是每次计算CRC。但幸运的是,您可以下载Docklight终端。它实际上有一个选项,可以自动计算modbus的CRC,并将它添加到数据包的最后位置。你可以在他们的主页下载免费版本。
docklight.de
它使用起来很简单。就像你用的布莱终端一样..。下面是如何为每个包设置modbus CRC计算的示例。https://docklight.de/manual/sendingmodbuscommandswithc.htm
我知道他们也有很大的支持。一旦您成功地将消息发送到设备并得到答复,事情就会变得容易得多,因为您将了解协议的实际工作方式。Modbus RTU是一种非常成熟的协议,但由于现有的许多系统都使用它,并且将它添加到某些设备中非常简单,所以它仍然被使用。所有的设备需要串行端口(UART)连接到modbus。因此,理解和使用它并不难。只需查看说明,视频和终端专门采用的modbus,我在这条消息中提供了链接。
https://stackoverflow.com/questions/42031278
复制相似问题