• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32是怎么检测modbus超时的

莱克迷KW 2019-03-31 浏览量:1340
STM32是怎么检测modbus超时的
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 可以使用定时器进行计时,在发送后,主机等待人机返回数据,长时间收不到时就超时,这个时间是可以自己在软件上设置的,一般是30s内的时间。

    如果超时,则要进行上报并记录超时设备与时间。

    • 发布于 2019-04-01
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:5
  • 1、检测超时,一般是主机进行检测;从机不做

    2、检测超时原理,主机发送一个数据帧之后,在等待一段时间,从机必须应答,如果如果从机不应答,可以重发1-2次,从机如果一直不应答,则主机判断超时。

    有一种特殊情况:在MODBUS驱动器(驱动器为从机),为了安全,驱动器也要检测总线超时,避免意外断开了总线,从机还在执行运动指令。

    • 发布于2019-04-01
    • 举报
    • 评论 0
    • 1
    • 0

  • 有两种办法,

    1uart外设自带超时检测功能,可以通过寄存器设置,具体放大网上插的到

    2通过定时器超时检测,定时器中断对计数值变量++有数据接收就清零变量,没有数据接收当++到一个数值就认为接收完成

    • 发布于2019-04-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 基本都是用定时检测,每次中断进去看下是否有数据过来,有就接收计数加1,计数变量清0;没有就认为是接收完了。
    • 发布于2019-04-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 基本上所有的超时检测都和定时器有关,在通信时,

    理论上持续的通信都是在有限时间内保持链接的,

    所以可以设置一个时间阀值,作为一个定时器参数,

    在开始一个通信时置位计时,如果没有明确的后续

    信号来不停的除非其定时复位,则会计数到零,从而

    触发通信超时处理。

    • 发布于2019-04-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 检测超时一般是指的从机应答超时,这里如果是STM32做主机,那它可以在发出一条信息之后,开启一个软件计时,时间一到,它可以看一下是否有应答数据过来,没有的话就是超时了

    STM32做从机就没有超时这种说法,因为它不知道主机什么时候会下发命令的

    • 发布于2019-04-04
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32是怎么检测modbus超时的