找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 621|回复: 6
打印 上一主题 下一主题
收起左侧

modbus主机等待从机超时 收到从机地址的回复数据,就发送3次应答,代码该怎么写

[复制链接]
跳转到指定楼层
楼主
ID:302293 发表于 2023-5-6 15:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  modbus主机没有收到从机地址的回复数据,就发送3次应答,代码该怎么写
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2023-5-6 18:56 | 只看该作者
你就正常发送就行了呗,加个无应答计数变量,三次超时就算出错,然后根据需求来写出错代码。
回复

使用道具 举报

板凳
ID:302293 发表于 2023-5-8 10:33 | 只看该作者
Hephaestus 发表于 2023-5-6 18:56
你就正常发送就行了呗,加个无应答计数变量,三次超时就算出错,然后根据需求来写出错代码。

根据中断标志计数器来判断吗?
回复

使用道具 举报

地板
ID:1067540 发表于 2023-5-8 11:06 | 只看该作者
modbus的数据包由多部份组成,你所说的没有接收到数据是指接收到的数据包中没有数据位还是指接收不到数据包?
回复

使用道具 举报

5#
ID:1067540 发表于 2023-5-8 11:11 | 只看该作者
如果是前者,那么只需要在解包函数中加入判断:若data位为空,则判定为未接受到数据
如果是后者可以尝试加延时判断,超时判定为没接到数据
回复

使用道具 举报

6#
ID:291668 发表于 2023-5-8 11:27 | 只看该作者
解析一下: 1、主从通讯,主机发起,从机回复。每次通讯主机都发送三次。三次都没有应答数据,判定超时错误。
回复

使用道具 举报

7#
ID:291668 发表于 2023-5-8 11:31 | 只看该作者
解析一下:1、主从通讯,主机发送指令,从机回复。主机发三次都没有收到应答,判定超时错误。2、主机无论是否收到数据,都是发送三次。  三次以后则停止,然后等待一定的时间,没有回复判定错误。根据不同情况来写代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表