Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Modbus
Modbus主站获取不了实际从站的数据
发布于 2019-12-04 21:21:32 浏览:2931
订阅该版
* 本帖最后由 coulson 于 2019-12-4 21:21 编辑 * 1.刚接触modbus 官方的例程是向从站的寄存器写数据,我先是在官方例程的基础上把写寄存器的程序改成了读寄存器数据的程序,用Modbus Slave做从站和stm32做主站进行测试,在主站的usMRegHoldBuf[ ] [ ]里能看到从站的数据。 2.但是在我接真实的传感器从机时,问题出现了,我所要读的传感器的地址为0x0500 我需要在0x0500开始往后读取15个寄存器,于是我的读指令变成了01 03 00 05 00 0F 05 02 ,主站发出的指令确实也是01 03 00 05 00 0F 05 02  从机的传感器在收到指令后也回复了,但是我再看usMRegHoldBuf[ ] [ ]里的数据全是0,请问这个是什么问题,是因为我传感器的地址为0x0500 ,超过了主站设计的usMRegHoldBuf[ ] [ ]的地址的缘故吗? 3.我把代码放在附件里了,有了解的大神帮忙看一下。附件里上传大文件好像有问题,一直上传不了,我把modbus部分的代码放在附件了 下载附件 [sample_mb_master.c](https://oss-club.rt-thread.org/uploads/201912/04/212125z9888nhtqnkhire0.attach)
查看更多
36
个回答
默认排序
按发布时间排序
wwwzxddn
2019-12-05
这家伙很懒,什么也没写!
你好,我也遇到了类似的问题,你读完后返回码是什么》?
whj467467222
认证专家
2019-12-05
开源,分享,交流,共同进步
正确的调试办法是 查看eMBMasterReqWriteHoldingRegister 这个API的返回值。 不知道调整 user_mb_app.h里面的宏定义能不能解决你的问题
wwwzxddn
2019-12-05
这家伙很懒,什么也没写!
``` static void send_thread_entry(void *parameter) { eMBMasterReqErrCode error_code = MB_MRE_NO_ERR; rt_uint16_t error_count = 0; while (1) { error_code = eMBMasterReqReadHoldingRegister(SLAVE_ADDR, /* salve address */ MB_READ_REG_START, /* register start address */ MB_READ_REG_NUM, /* data to be written */ RT_WAITING_FOREVER); /* timeout */ rt_kprintf("add1--error_code: %d \n",error_code); rt_kprintf("<%#x><%#x><%#x><%#x>", usMRegHoldBuf[0][1],usMRegHoldBuf[0][2],usMRegHoldBuf[0][3],usMRegHoldBuf[0][4]); error_code = eMBMasterReqReadHoldingRegister(0x02, /* salve address */ MB_READ_REG_START, /* register start address */ MB_READ_REG_NUM, /* data to be written */ RT_WAITING_FOREVER); /* timeout */ rt_kprintf("add2--error_code: %d \n",error_code); rt_kprintf("<%#x><%#x><%#x><%#x>", usMRegHoldBuf[1][1],usMRegHoldBuf[1][2],usMRegHoldBuf[1][3],usMRegHoldBuf[1][4]); /* Record the number of errors */ if (error_code != MB_MRE_NO_ERR) { error_count++; } } } ```
wwwzxddn
2019-12-05
这家伙很懒,什么也没写!
[http://packages.rt-thread.org/detail.html?package=freemodbus](http://packages.rt-thread.org/detail.html?package=freemodbus) 缓存的设备ID要减1,就可以了
wwwzxddn
2019-12-05
这家伙很懒,什么也没写!
> --- 这个代码测试过了。没问题
coulson
2019-12-05
这家伙很懒,什么也没写!
>这个代码测试过了。没问题 --- ID减一我知道,可是我吧这个buff里全翻了一遍都没发现数据有变动啊
wwwzxddn
2019-12-05
这家伙很懒,什么也没写!
查下故障码,是没上来数据,还是数据有误
coulson
2019-12-05
这家伙很懒,什么也没写!
>查下故障码,是没上来数据,还是数据有误 --- error code 3
coulson
2019-12-05
这家伙很懒,什么也没写!
>error code 3 --- typedef enum { MB_MRE_NO_ERR, /*!< no error. */ MB_MRE_NO_REG, /*!< illegal register address. */ MB_MRE_ILL_ARG, /*!< illegal argument. */ MB_MRE_REV_DATA, /*!< receive data error. */ MB_MRE_TIMEDOUT, /*!< timeout error occurred. */ MB_MRE_MASTER_BUSY, /*!< master is busy now. */ MB_MRE_EXE_FUN /*!< execute function error. */ } eMBMasterReqErrCode; 这个error code应该是MB_MRE_REV_DATA,数据接收错误?
wwwzxddn
2019-12-05
这家伙很懒,什么也没写!
数据格式错误,检查电脑端 modbus slave设置
撰写答案
登录
注册新账号
关注者
0
被浏览
2.9k
关于作者
coulson
这家伙很懒,什么也没写!
提问
36
回答
106
被采纳
1
关注TA
发私信
相关问题
1
ModbusRTU协议栈漏发送最后一个字节
2
3.0 增加freemodbus,编译不过
3
RT_THREAD上面的串口MODBUSRTU为啥没功能码?
4
关于 freemodbus 里存在的一点问题分享
5
请教如何使用组件里的FreeMODBUS
6
求一个FreeModbus的从机测试程序
7
FreeModbus的从机调试说明(含测试程序)
8
rtt_freemodbus
9
freemodbus怎么配置到uart
10
FreeModeBus从机调试问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
RT-thred的stm32h723对应bsp包CubeMX添加其他外设报错
2
RT-Thread中的time溢出问题,时间戳溢出,解决方法
3
ART-PI使用env驱动ETH网卡,pc和板子可以ping通
4
SystemView线程名字不显示
5
只用网页也能跑RT-Smart 无门槛腾讯Cloud studio + smart-build快速构建
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
UART
ESP8266
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
9
个答案
2
次被采纳
三世执戟
8
个答案
1
次被采纳
KunYi
8
个答案
1
次被采纳
winfeng
2
个答案
1
次被采纳
YZRD
2
个答案
1
次被采纳
本月文章贡献
catcatbing
2
篇文章
5
次点赞
swet123
1
篇文章
4
次点赞
Days
1
篇文章
4
次点赞
YZRD
1
篇文章
2
次点赞
阳光的掌控者
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部