繁体   English   中英

重新连接 RS232/RS485 适配器后 Modbus RTU 设备超时

[英]Timeout Modbus RTU Devices after reconnect RS232/RS485 Adapter

断开并重新连接 RS232 后,MODBUS RTU 与设备的连接出现问题。 该系统的构建方式如下:

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

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

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

有什么帮助可以防止这种情况发生并在重新连接 RS232 电缆后立即工作?

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM