java - 如何从USB连接的RS-485获取数据

标签 java usb javafx-8 rs485

我需要通过 USB 端口(使用 USB 到 RS-485 转换器)通过 RS-485 接口(interface)从某些数据聚合器设备读取数据,以供 JavaFX 上的桌面应用程序使用,因此我一直致力于检查连接并获取正确的值。

数据聚合器设备收集有关光伏模块(太阳能)产生的电流、功率等的信息。该设备具有唯一的 RS-485 端口。正如我从文档中读到的,它使用 Modbus RTU 协议(protocol)(设置:9600-8N1)。

说实话,这是我第一次在 COM 端口和设备上工作。这就是为什么我什至不知道我是否正确连接了引脚。我读了很多与RS-485、Modbus相关的东西。但是,我仍然迈出了第一步。

所以,我使用简单的 UTP 电缆进行连接。以及我所做的:

  1. This is how I connect USB-to-RS485 converter
  2. And this is about Data Aggregator Device

将 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/

相关文章:

c - 我如何使用 libusb-1.0 接收 HID 报告?

linux - Yocto USB 电源管理的问题

java - CertPath 中的证书顺序

java - 下次调用 PaintComponent() 时 Graphics2D 是否会重置合成?为什么?

Android 5.0 Lollipop UsbDevice 缺少接口(interface)

css - 更改不同 Controller 中节点的 Id

javafx - 单击时更改 javafx 按钮颜色?

java - 无法使用 JSON 和 JQuery 显示从 Spring MVC Controller 返回的响应

java - 意外覆盖 : The following declarations have the same JVM signature error on specific classes hierarchy

css - 如何在 Java FX 中使用 CSS 模拟失去焦点样式?