0

在断开和重新连接 RS232 后,我遇到了与设备的 MODBUS RTU 连接问题。该系统是通过以下方式构建的:

  • 带 A+ 和 B- 夹的 MODBUS RTU 设备(没有可用的 C = GND,例如电表 SDM120,但问题也出现在其他设备类型上)
  • RS485 线 A 和 B
  • 适配器 RS232 -> 基于 SP485EE 芯片的 RS485 DA-70161
  • 带 DSUB9 连接器的 RS232 电缆
  • UART 连接 MAX3243 芯片用于 RS232 与 CTS/RTS
  • 使用为 9600baud 8N1 配置的 /dev/ttymxc0 的 libmodbus 软件(适合设备默认值)
  • Linux kernel 4.4.0 嵌入式ARM CPU

一般来说,这工作得很好,甚至超过几周。但是一旦断开 RS232 电缆并在几秒钟(或几分钟或几小时)后重新连接,libmodbus 在每次访问 MODBUS 设备时都会出现超时错误。这很烦人,因为很难让它重新开始工作。在几分钟和最多 10 次重试后,只有进一步断开 RS232-RS485 适配器两端的连接才能将其恢复。

知道什么可能导致这个问题吗?

在重新连接 RS232 电缆后如何防止这种情况并立即工作有什么帮助吗?

(是的,一种可能的解决方案是简单地让 RS232 电缆始终连接。但有时有人需要做某事而忘记了后果 - 我认为这不是一个现实的选择)

4

1 回答 1

0

在mikrocontroller.net论坛的帮助下,我有一个解决方案:

使用另一个 RS232 → RS485 适配器 DeLock 62919 并通过专用电源为夹具上的 +5V 供电,完成了工作!

现在通信再次出现,即使在 RS232 被拔出并重新插入之后

于 2021-07-21T11:19:07.527 回答