我需要通过 USB 端口(使用 USB 到 RS-485 转换器)通过 RS-485 接口(interface)从某些数据聚合器设备读取数据,以供 JavaFX 上的桌面应用程序使用,因此我一直致力于检查连接并获取正确的值。
数据聚合器设备收集有关光伏模块(太阳能)产生的电流、功率等的信息。该设备具有唯一的 RS-485 端口。正如我从文档中读到的,它使用 Modbus RTU 协议(protocol)(设置:9600-8N1)。
说实话,这是我第一次在 COM 端口和设备上工作。这就是为什么我什至不知道我是否正确连接了引脚。我读了很多与RS-485、Modbus相关的东西。但是,我仍然迈出了第一步。
所以,我使用简单的 UTP 电缆进行连接。以及我所做的:
将 USB 连接到 PC 后,Windows 发现虚拟“COM3”端口。然后我尝试通过 Bray 检查与 Terminal 1.9 的连接。我尝试发送一些东西。在接收消息时,它也向我发送了一些数据。然而,这并不意味着一切都连接良好。终端还向我显示一些帧错误。 我知道,Modbus协议(protocol)是基于“主从”方案的。因此,作为客户端的PC是“Master”,作为服务器的设备是“Slave”。我必须向从站发送一些请求以获得一些预期的响应。但是,怎么办? 请检查我的连接!我不知道下一步该做什么。
最佳答案
RS-485 是差分的,只需要两根线,您可以安全地移除地线 (GND)。然后,将电线连接到 USB 转 RS485 转换器上的 R+ 和 R-
完成后,我可以问一下您是如何尝试发送内容的吗? Modbus 需要最后一个字节,即很难手动确定的 CRC。您是否创建了有效的 modbus 数据包?
有效的 modbus 数据包需要接收器地址、有效负载长度、数据本身和最终 CRC
关于java - 如何从USB连接的RS-485获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42031278/