485通讯抗干扰,超时重发,不断重连的程序架构

97 篇文章 123 订阅 ¥39.90 ¥99.00

485通讯抗干扰,超时重发,不断重连的编程思路

在工程中会遇到一种情况,当通信受到干扰之后,数据超时重发多次,无法被成功发出去,当恢复干扰后,之前发送的指令就被报错清掉了,相当于串口掉线之后,即使短暂时间内通信连上,掉线之后发出的指令也不生效。

为了确保受到干扰的这段时间里,发出的所有指令在干扰结束之后仍然可以立即起作用。

有如下设计思路

  1. 帧结束计时 (Modbus_RTU.CmdTimeStart == 1):
    • 如果在设定的时间内(例如10ms)没有接收到数据,则认为帧接收完成。
    • 已经接收到了一个字节之后才会开启帧结束计时功能
  2. 超时重发计时 (Modbus_RTU.CmdTimeStart == 2):
    • 如果在设定的时间内没有接收到响应,则开始超时重发逻辑。
    • 如果重发次数小于4次,则重置超时计时并增加重发次数。
    • 如果重发次数达到或超过4次,则设置错误码
  3. 逻辑处理函数
    • 如果出现重发失败,挂起当前发送,并且将重发重置。下次进入逻辑时,依旧会进行重发测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天学点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值