OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6054|回复: 17

发两条modbus指令,如何区分返回的指令与发送指令的对应关系?

[复制链接]

12

主题

80

帖子

0

精华

高级会员

Rank: 4

积分
581
金钱
581
注册时间
2019-8-6
在线时间
132 小时
发表于 2020-11-11 10:12:54 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 lyy26655 于 2020-11-11 14:03 编辑

现在让32通过485接口给下位机发两条指令,两条指令除了读取寄存器部分不一样其他都一致,比如01 03 00 01 00 01 XX XX 和 01 03 00 01 00 02 XX XX,回复的格式都是01 03 00 02 XX XX请问怎么确定发送指令和接收的对应关系呢?谢谢各位


补充:劳烦各位读一下描述,给下位机发送的是两条不同的指令,比如一条是读取温度的,一条是读取湿度的,但是下位机回复的格式完全一样,比如都是01 03 00 02 数值 校验位

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2020-11-11 10:16:23 | 显示全部楼层
一应一答方式,为什么会来两条
一分耕耘一分收获。
回复

使用道具 举报

7

主题

59

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1159
金钱
1159
注册时间
2018-5-30
在线时间
151 小时
发表于 2020-11-11 10:21:17 | 显示全部楼层
设标志值。如发送01 03 00 01 00 01 XX XX时置标志值为1,发送 01 03 00 01 00 02 XX XX时置标志值为2,这样接收时判定标志值,区分返回的是那组数据。
回复

使用道具 举报

12

主题

80

帖子

0

精华

高级会员

Rank: 4

积分
581
金钱
581
注册时间
2019-8-6
在线时间
132 小时
 楼主| 发表于 2020-11-11 10:27:04 | 显示全部楼层
yklstudent 发表于 2020-11-11 10:16
一应一答方式,为什么会来两条

您好,是 发两条modbus指令,然后区分他们的返回指令
回复

使用道具 举报

12

主题

80

帖子

0

精华

高级会员

Rank: 4

积分
581
金钱
581
注册时间
2019-8-6
在线时间
132 小时
 楼主| 发表于 2020-11-11 10:27:40 | 显示全部楼层
大个之 发表于 2020-11-11 10:21
设标志值。如发送01 03 00 01 00 01 XX XX时置标志值为1,发送 01 03 00 01 00 02 XX XX时置标志值为2,这 ...

非常感谢您的思路!
回复

使用道具 举报

2

主题

459

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4512
金钱
4512
注册时间
2018-5-14
在线时间
964 小时
发表于 2020-11-11 10:41:02 | 显示全部楼层
为啥会存在两条,485总线是一问一答式的,第一条发送完等返回,超时就认为从机未响应,再发送第二条。
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2020-11-11 11:13:17 | 显示全部楼层
压根就不会存在的问题 到你这里却是问题了
也是佩服
一分耕耘一分收获。
回复

使用道具 举报

12

主题

3402

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8686
金钱
8686
注册时间
2020-5-11
在线时间
4168 小时
发表于 2020-11-11 11:20:13 | 显示全部楼层
这种情况不合理,假如真有这种情况,比如数据经过了大量的缓冲,则需重新设计协议:
主机发送指令包含:读写指令、地址、数量;
从机响应为:读写指令、地址、数量、返回值......;
专治疑难杂症
回复

使用道具 举报

12

主题

80

帖子

0

精华

高级会员

Rank: 4

积分
581
金钱
581
注册时间
2019-8-6
在线时间
132 小时
 楼主| 发表于 2020-11-11 13:46:19 | 显示全部楼层
LcwSwust 发表于 2020-11-11 11:20
这种情况不合理,假如真有这种情况,比如数据经过了大量的缓冲,则需重新设计协议:
主机发送指令包含:读 ...

好的,谢谢您!
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2020-11-11 14:37:56 | 显示全部楼层
这种情况很麻烦其实。设标志位可以解决通讯量小的情况。一旦通讯量大起来,或者传感器内部不是按顺序回复的(比如读取温度的命令先收到了,但是湿度先读取完发出去了)。很容易乱套。建议传感器修改协议,加上回复的地址
猪猪熊呢?
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2020-11-11 14:44:46 | 显示全部楼层
我之前就遇到过一个模块,先发第一条命令的数据上报和应答,再发头一条命令的,回复的应答和数据上报也没有标记回的哪条命令,很是头疼
猪猪熊呢?
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2020-11-11 14:47:03 | 显示全部楼层
emmm   想起来我那个是串口通讯的   告辞
猪猪熊呢?
回复

使用道具 举报

12

主题

80

帖子

0

精华

高级会员

Rank: 4

积分
581
金钱
581
注册时间
2019-8-6
在线时间
132 小时
 楼主| 发表于 2020-11-11 14:47:10 | 显示全部楼层
323232 发表于 2020-11-11 14:37
这种情况很麻烦其实。设标志位可以解决通讯量小的情况。一旦通讯量大起来,或者传感器内部不是按顺序回复的 ...

传感器外采的,协议这块动不了,谢谢您
回复

使用道具 举报

12

主题

80

帖子

0

精华

高级会员

Rank: 4

积分
581
金钱
581
注册时间
2019-8-6
在线时间
132 小时
 楼主| 发表于 2020-11-12 08:42:36 | 显示全部楼层
想请问下各位巨佬 还有其他更好的思路吗
回复

使用道具 举报

2

主题

459

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4512
金钱
4512
注册时间
2018-5-14
在线时间
964 小时
发表于 2020-11-13 10:42:53 | 显示全部楼层
lyy26655 发表于 2020-11-12 08:42
想请问下各位巨佬 还有其他更好的思路吗

首先不是协议问题,协议没有错,如果协议错了,标准MODBUS也会遇到你说的情况。问题是你软件处理不对,应该是发一条,等返回,指定时间内返回,解析数据,超出时间就认为设备不响应,再发第二条。而且你在第一条设备回复过程中主机再发送,由于总线的半工特性,设备的回复数据会被打断,第一条数据也会出错。半工通信的仲裁机制是由软件去处理的。所以问题还是出在你的通信流程上。
回复

使用道具 举报

12

主题

80

帖子

0

精华

高级会员

Rank: 4

积分
581
金钱
581
注册时间
2019-8-6
在线时间
132 小时
 楼主| 发表于 2020-11-16 10:01:12 | 显示全部楼层
姚先起 发表于 2020-11-13 10:42
首先不是协议问题,协议没有错,如果协议错了,标准MODBUS也会遇到你说的情况。问题是你软件处理不对,应 ...

谢谢您!
回复

使用道具 举报

12

主题

80

帖子

0

精华

高级会员

Rank: 4

积分
581
金钱
581
注册时间
2019-8-6
在线时间
132 小时
 楼主| 发表于 2020-11-23 15:43:29 | 显示全部楼层
还是没有很好的解决 请问下有没有大佬能贴一下代码 提供一下思路的(HAL库)?谢谢
回复

使用道具 举报

18

主题

151

帖子

0

精华

高级会员

Rank: 4

积分
508
金钱
508
注册时间
2020-4-22
在线时间
241 小时
发表于 2020-11-26 17:31:36 | 显示全部楼层
下位机为啥会回复两条一样寄存器的报文?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 21:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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