OpenEdv-开源电子网

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

手把手教你测试学习Modbus

  [复制链接]

23

主题

256

帖子

0

精华

高级会员

Rank: 4

积分
767
金钱
767
注册时间
2017-2-19
在线时间
133 小时
发表于 2020-5-23 08:45:30 | 显示全部楼层 |阅读模式
本帖最后由 刘东君 于 2020-5-23 10:17 编辑

一.准备工作
(1)硬件准备: 战舰开发板1块,ST_LINK调试器,USB转485数据线。
微信图片_20200523084139.jpg 微信图片_20200523084146.jpg 微信图片_20200523084153.jpg (2)软件准备:ST_LINK驱动 ,USB转串口驱动,Modbus_Slave软件。
无标题1.png

二.接线工作
USB转485连接电路板的RS485  A-A,B-B
ST_link连接JTAG调试口
安装Modbus_Slave从机模拟软件
微信图片_20200523091657.jpg 微信图片_20200523091703.jpg

三.设置Modbus_Slave从机软件
(1)新建4个地址为2,功能码为01, 02, 03, 04的文件。如图:
无标题2.png 无标题3.png 无标题5.png
(2)设置连接的参数
无标题6.png 无标题7.png
四.开的Modbus主机程序进行调试
(1)设置好主机程序的断点。
2222.png

(2)给从机配置好参数
111.png
(3)运行主机程序观察数据变化
3333.png 4444.png 5555.png
五.代码和软件
ModBus-MasterV1.0.rar (2.34 MB, 下载次数: 3744)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

32

主题

234

帖子

0

精华

高级会员

Rank: 4

积分
985
金钱
985
注册时间
2017-8-11
在线时间
136 小时
发表于 2021-2-18 10:14:34 | 显示全部楼层
笨鸟想飞 发表于 2021-2-7 15:41
楼主你好,@刘东君   你这个版本的程序我测了一个早上,发现一个问题:  如果从机断电重新连接,主机程序就 ...

过完年,有时间改了一下。这个问题其实也是很简单,在单机循环询问程序  void Master_DJ(u8 SlaverAddr,u16 StartAddr,u16 ValueOrLenth)//单机循环上的case 3 里,加补上else
  1. case 3:       
  2.                                                 if(RS485_RxFlag==1) //标识位置1,认为接收完成 进行数据处理
  3.                                                 {
  4.                                                         MasterStep=2;
  5.                                                 }       
  6.                                                 else         MasterStep=0;//接收不成功,返回0值,重新发
  7.                                                 break;               
复制代码


回复 支持 2 反对 0

使用道具 举报

0

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2018-12-27
在线时间
0 小时
发表于 2020-5-23 08:45:34 | 显示全部楼层
虽然我不懂,但还是帮顶!
回复 支持 1 反对 0

使用道具 举报

0

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2018-4-4
在线时间
74 小时
发表于 2020-5-23 12:23:59 | 显示全部楼层
跟随大佬的脚步学习
回复 支持 反对

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2020-5-23 16:56:43 | 显示全部楼层
谢谢分享,打算下个星期学
业精于勤荒于嬉;行成于思毁于随!
回复 支持 反对

使用道具 举报

17

主题

170

帖子

0

精华

高级会员

Rank: 4

积分
562
金钱
562
注册时间
2018-7-8
在线时间
118 小时
发表于 2020-5-23 21:32:32 | 显示全部楼层
谢谢分享,收藏了
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2016-9-29
在线时间
67 小时
发表于 2020-5-24 22:39:14 | 显示全部楼层
谢谢分享,学习一下
回复 支持 反对

使用道具 举报

17

主题

149

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
470
金钱
470
注册时间
2020-4-22
在线时间
234 小时
发表于 2020-5-27 11:01:33 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2020-5-25
在线时间
2 小时
发表于 2020-5-27 16:26:19 | 显示全部楼层
这个只是测量主机的吗
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2020-5-25
在线时间
2 小时
发表于 2020-5-27 20:34:35 | 显示全部楼层
楼主,板子上的跳线帽有需要注意的吗?我按照你的方法测试,但是FUCTION没有值,而且master-output等的值也都是0。接口啥的好像没问题,断点也是和楼主一样的设置,就是运行程序后会跳转到主程序。自己找不到问题在哪里
回复 支持 反对

使用道具 举报

2

主题

88

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
467
金钱
467
注册时间
2017-12-20
在线时间
60 小时
发表于 2020-5-27 21:20:34 | 显示全部楼层
大佬,学习了,
回复 支持 反对

使用道具 举报

23

主题

256

帖子

0

精华

高级会员

Rank: 4

积分
767
金钱
767
注册时间
2017-2-19
在线时间
133 小时
 楼主| 发表于 2020-6-2 09:31:31 | 显示全部楼层
15270799039 发表于 2020-5-27 20:34
楼主,板子上的跳线帽有需要注意的吗?我按照你的方法测试,但是FUCTION没有值,而且master-output等的值也 ...

用的串口2 注意串口2的跳线
回复 支持 反对

使用道具 举报

23

主题

256

帖子

0

精华

高级会员

Rank: 4

积分
767
金钱
767
注册时间
2017-2-19
在线时间
133 小时
 楼主| 发表于 2020-6-2 09:32:06 | 显示全部楼层
15270799039 发表于 2020-5-27 20:34
楼主,板子上的跳线帽有需要注意的吗?我按照你的方法测试,但是FUCTION没有值,而且master-output等的值也 ...

记得修改 EN引脚 我这个是旧战舰开发板
回复 支持 反对

使用道具 举报

2

主题

62

帖子

0

精华

高级会员

Rank: 4

积分
711
金钱
711
注册时间
2019-5-17
在线时间
273 小时
发表于 2020-6-2 10:58:35 | 显示全部楼层
帮你顶了   楼主有心了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-8-24
在线时间
1 小时
发表于 2020-6-10 10:45:34 | 显示全部楼层
这个有没有关于实际项目的 关于接收到modbus参数 需要保存的,把参数保存到eeprom 或者flash中
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2020-6-15
在线时间
0 小时
发表于 2020-6-15 15:13:26 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2020-6-2
在线时间
1 小时
发表于 2020-6-15 16:29:21 | 显示全部楼层
在这步“(3)运行主机程序观察数据变化”里面 运行是指怎么运行? 我按运行到下个断点 程序就会一直运行出不来 退出来后寄存器中的值都不对
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2020-6-2
在线时间
1 小时
发表于 2020-6-15 17:08:47 | 显示全部楼层
原因是没有把pg9改成pg7 造成串口2发送失败 卡在那里了
回复 支持 反对

使用道具 举报

9

主题

53

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2020-5-18
在线时间
35 小时
发表于 2020-6-30 17:39:52 | 显示全部楼层
有没有从机代码呀
回复 支持 反对

使用道具 举报

23

主题

256

帖子

0

精华

高级会员

Rank: 4

积分
767
金钱
767
注册时间
2017-2-19
在线时间
133 小时
 楼主| 发表于 2020-7-16 14:10:50 | 显示全部楼层
s5448827 发表于 2020-6-30 17:39
有没有从机代码呀

http://www.openedv.com/forum.php ... p;extra=&page=1

这里面有从机 可以去看看
回复 支持 反对

使用道具 举报

21

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1227
金钱
1227
注册时间
2020-7-14
在线时间
272 小时
发表于 2020-7-22 11:35:07 | 显示全部楼层
HI(Master_HoldingReg[start_address]);
请问一下这里面的Master_HoldingReg对应每个位的值是什么意思啊
回复 支持 反对

使用道具 举报

9

主题

53

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2020-5-18
在线时间
35 小时
发表于 2020-7-22 15:55:45 | 显示全部楼层
wwwwxc 发表于 2020-7-22 11:35
HI(Master_HoldingReg[start_address]);
请问一下这里面的Master_HoldingReg对应每个位的值是什么意思啊

这个我也不清楚....也没查出来个所以然来,层主如果查到可以分享一下
回复 支持 反对

使用道具 举报

9

主题

53

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2020-5-18
在线时间
35 小时
发表于 2020-7-22 15:57:04 | 显示全部楼层
刘东君 发表于 2020-7-16 14:10
http://www.openedv.com/forum.php?mod=viewthread&tid=98367&extra=&page=1

这里面有从机 可以去看看

你好,我自己改了个从机程序,但是接收不到数据。一直进不去定时器中断,有空的话能帮我看一下程序吗。这个MODBUS改了两个多星期了还是不行,快崩溃了
回复 支持 反对

使用道具 举报

21

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1227
金钱
1227
注册时间
2020-7-14
在线时间
272 小时
发表于 2020-7-23 15:37:03 | 显示全部楼层
s5448827 发表于 2020-7-22 15:55
这个我也不清楚....也没查出来个所以然来,层主如果查到可以分享一下

我搞懂了
        RS232_TX_BUFF[2]=HI_Addr(Start_Address);
        RS232_TX_BUFF[3]=LOW_Addr(Start_Address);这个是高位地址和低位地址

        RS232_TX_BUFF[4]=HI_Addr(Master_HoldingReg[Start_Address]);
        RS232_TX_BUFF[5]=LOW_Addr(Master_HoldingReg[Start_Address]);这个是高位地址对应的值和低位地址对应的值
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2019-9-15
在线时间
6 小时
发表于 2020-7-30 21:22:53 | 显示全部楼层
本帖最后由 tetgrt 于 2020-8-1 07:52 编辑

非常感谢,这个代码非常 好用。
回复 支持 反对

使用道具 举报

0

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
271
金钱
271
注册时间
2020-6-23
在线时间
26 小时
发表于 2020-8-4 11:07:40 | 显示全部楼层
感谢楼主分享,下载学习学习!
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2020-8-8
在线时间
7 小时
发表于 2020-8-8 16:16:22 | 显示全部楼层
虽然我还是没懂,但还是感谢楼主
回复 支持 反对

使用道具 举报

23

主题

256

帖子

0

精华

高级会员

Rank: 4

积分
767
金钱
767
注册时间
2017-2-19
在线时间
133 小时
 楼主| 发表于 2020-8-27 11:41:46 | 显示全部楼层
STM32与MCGS.rar (3.44 MB, 下载次数: 248)
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2020-3-9
在线时间
18 小时
发表于 2020-9-4 14:18:15 | 显示全部楼层
感谢楼主!学习了.
回复 支持 反对

使用道具 举报

0

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
金钱
322
注册时间
2016-11-10
在线时间
61 小时
发表于 2020-9-22 15:08:22 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2020-5-22
在线时间
11 小时
发表于 2020-9-22 20:04:53 来自手机 | 显示全部楼层
不错,很好资料
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2020-7-16
在线时间
12 小时
发表于 2020-10-12 22:13:12 | 显示全部楼层
我来学习,感谢楼主
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2020-3-27
在线时间
8 小时
发表于 2020-11-24 10:07:16 | 显示全部楼层
大佬 main函数内部 有两个key-init是什么作用
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-7-31
在线时间
6 小时
发表于 2020-12-2 10:07:05 | 显示全部楼层
回复 支持 反对

使用道具 举报

5

主题

305

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1690
金钱
1690
注册时间
2018-11-28
在线时间
214 小时
发表于 2020-12-2 15:52:42 | 显示全部楼层
路过,谢谢了
回复 支持 反对

使用道具 举报

32

主题

234

帖子

0

精华

高级会员

Rank: 4

积分
985
金钱
985
注册时间
2017-8-11
在线时间
136 小时
发表于 2021-2-7 10:24:18 | 显示全部楼层
lilong8470 发表于 2020-6-10 10:45
这个有没有关于实际项目的 关于接收到modbus参数 需要保存的,把参数保存到eeprom 或者flash中

这个很简单的,把需要存储的数存在一个数组里,用原子哥的EEPROM或者FLASH例程,直接套进去就行了,就等于存数组而已,这样就实现断电保存配置功能
回复 支持 反对

使用道具 举报

32

主题

234

帖子

0

精华

高级会员

Rank: 4

积分
985
金钱
985
注册时间
2017-8-11
在线时间
136 小时
发表于 2021-2-7 15:41:57 | 显示全部楼层
本帖最后由 笨鸟想飞 于 2021-2-7 15:43 编辑

楼主你好,@刘东君   你这个版本的程序我测了一个早上,发现一个问题:  如果从机断电重新连接,主机程序就不会再下发询问指令了
回复 支持 反对

使用道具 举报

0

主题

88

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1281
金钱
1281
注册时间
2019-8-29
在线时间
283 小时
发表于 2021-2-18 19:07:55 | 显示全部楼层
谢谢分享,收藏了
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2020-11-6
在线时间
9 小时
发表于 2021-3-3 16:55:52 | 显示全部楼层
楼主,你好,我想请教一下:单片机做主机,轮询的时候,接收完成标志位RS485_RxFlag总是等于0。这个是什么情况呢?
回复 支持 反对

使用道具 举报

32

主题

234

帖子

0

精华

高级会员

Rank: 4

积分
985
金钱
985
注册时间
2017-8-11
在线时间
136 小时
发表于 2021-3-5 09:18:02 | 显示全部楼层
guodage000 发表于 2021-3-3 16:55
楼主,你好,我想请教一下:单片机做主机,轮询的时候,接收完成标志位RS485_RxFlag总是等于0。这个是什么 ...

你的从机配置问题,上位机的配置,从机地址,寄存器地址,数量这些跟着配
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2020-11-6
在线时间
9 小时
发表于 2021-3-8 08:40:49 | 显示全部楼层
笨鸟想飞 发表于 2021-3-5 09:18
你的从机配置问题,上位机的配置,从机地址,寄存器地址,数量这些跟着配

嗯嗯,前几天调好啦,是从机的校验没有设置成无校验,设置好以后就都没问题啦。
非常感谢
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
139
金钱
139
注册时间
2021-3-6
在线时间
27 小时
发表于 2021-3-11 11:21:32 | 显示全部楼层
挺好
回复 支持 反对

使用道具 举报

23

主题

256

帖子

0

精华

高级会员

Rank: 4

积分
767
金钱
767
注册时间
2017-2-19
在线时间
133 小时
 楼主| 发表于 2021-3-27 14:19:21 | 显示全部楼层
笨鸟想飞 发表于 2021-2-18 10:14
过完年,有时间改了一下。这个问题其实也是很简单,在单机循环询问程序  void Master_DJ(u8 SlaverAddr,u ...

谢谢,当时确实没考虑到,断电问题
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2020-9-24
在线时间
8 小时
发表于 2021-3-28 17:58:17 | 显示全部楼层
楼主,你好,我想请教一下,我下载了最近的程序,stm32做从站经常通信超时请问如何解决
回复 支持 反对

使用道具 举报

1

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2021-3-23
在线时间
23 小时
发表于 2021-4-15 16:18:41 | 显示全部楼层
学习一下 感谢楼主
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2020-10-21
在线时间
12 小时
发表于 2021-4-28 16:52:04 | 显示全部楼层
楼主想请教一下,我是STM32做从机。然后需要把485风速传感器采集到的数据,用modbus形式上传到主机。都需要用485接口,但是板子上面就一个应该如何处理呢?
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2021-3-10
在线时间
12 小时
发表于 2021-5-17 10:43:37 | 显示全部楼层
Gqingxu 发表于 2021-4-28 16:52
楼主想请教一下,我是STM32做从机。然后需要把485风速传感器采集到的数据,用modbus形式上传到主机。都需要 ...

轮询接收
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2021-1-18
在线时间
1 小时
发表于 2021-6-29 18:49:35 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2023-8-18
在线时间
11 小时
发表于 2024-3-20 06:46:36 | 显示全部楼层
正在学这方面的内容,感谢分享。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 22:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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