OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
楼主: 刘东君

分享一个ModBus主机自己写的,求点评!支持01 02 03 05 06 15 16 功能码

  [复制链接]

0

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2019-9-20
在线时间
26 小时
发表于 2019-12-25 21:54:22 | 显示全部楼层
WhiteSoil 发表于 2019-12-23 18:14
你好,请问这个问题解决了吗,我也碰到这问题了,03指令读5个以下的数据正常,但一旦超个6个,串口中断只 ...

晕死了,程序没问题,换台电脑就OK了,因为这小问题卡了好几天
正点原子逻辑分析仪DL16劲爆上市
回复 支持 反对

使用道具 举报

3

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2016-10-19
在线时间
69 小时
发表于 2019-12-27 16:32:13 | 显示全部楼层
回复 支持 反对

使用道具 举报

8

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2019-10-20
在线时间
28 小时
发表于 2019-12-27 17:10:50 | 显示全部楼层
刘东君 发表于 2017-4-17 15:43
我是这样连接的,必须有USB转485.因为这个通讯在硬件上面就是要485控制的!

大佬,绿板子是什么呀?我STM32F103ZET6精英版,直接烧了你的从机程序,想用Modbus调制精灵通讯,然后显示通讯超时,完全懵了(我直接了板子和电脑的USB,是不是还要买一个485转USB模块啊?那如果是的话,为什么见你连了那么多线?不应该只有两根线吗?)谢谢!
回复 支持 反对

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-9-11
在线时间
10 小时
发表于 2020-2-9 16:30:28 | 显示全部楼层
谢谢楼主分享的代码!下载学习了。
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-11-16
在线时间
4 小时
发表于 2020-2-9 22:37:18 来自手机 | 显示全部楼层
6666666
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2018-11-5
在线时间
11 小时
发表于 2020-2-27 08:55:02 | 显示全部楼层
楼主可以分享一下 一主机多从机的程序吗   
回复 支持 反对

使用道具 举报

0

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2018-4-4
在线时间
74 小时
发表于 2020-3-18 16:19:24 | 显示全部楼层
写寄存器的时候,为什么数据不能保存?重新上电就回复默认值了
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2020-2-27
在线时间
26 小时
发表于 2020-3-19 23:46:05 | 显示全部楼层
学习~~~~~
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2019-4-7
在线时间
28 小时
发表于 2020-3-31 09:10:12 | 显示全部楼层
楼主您好  我现在在学习使用MODBUS这个协议,用的是串口不用485通信  我把程序中的485的接线连接删掉后,这个程序用MODBUS master 调试的时候发现  03功能码 回复的数据全部是0,能出个串口的modbus的程序吗
回复 支持 反对

使用道具 举报

0

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2019-12-25
在线时间
23 小时
发表于 2020-4-1 22:20:23 | 显示全部楼层
正需要,学习了。谢谢
回复 支持 反对

使用道具 举报

0

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2018-4-4
在线时间
74 小时
发表于 2020-4-11 19:23:40 | 显示全部楼层
QFkw001 发表于 2020-3-31 09:10
楼主您好  我现在在学习使用MODBUS这个协议,用的是串口不用485通信  我把程序中的485的接线连接删掉后,这 ...

我直接接的串口通信,也没问题啊
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2018-8-21
在线时间
3 小时
发表于 2020-4-20 15:48:15 | 显示全部楼层
学习啦。
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2019-4-7
在线时间
28 小时
发表于 2020-4-22 21:54:06 | 显示全部楼层
guanli5212 发表于 2020-4-11 19:23
我直接接的串口通信,也没问题啊

能加个联系方式交流下吗
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2020-4-23
在线时间
2 小时
发表于 2020-4-23 12:29:30 | 显示全部楼层
您好,想请教一些,TIM4的功能在里面发挥了什么作用?可以把他省去吗?
回复 支持 反对

使用道具 举报

17

主题

170

帖子

0

精华

高级会员

Rank: 4

积分
562
金钱
562
注册时间
2018-7-8
在线时间
118 小时
发表于 2020-4-23 15:21:51 | 显示全部楼层
八度空间 发表于 2017-4-7 12:35
1、labview可以的
2、关于优化嘛,这个看你怎么想了,建议将部分公用的变量什么的弄成结构体,串口设置 ...

说得有道理,定时器有点浪费了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2020-4-23
在线时间
2 小时
发表于 2020-4-23 15:26:28 | 显示全部楼层
wdliming 发表于 2020-4-23 15:21
说得有道理,定时器有点浪费了

您好,请问您调试成功了吗?我现在是想着把从机读取出来的数据通过OLED显示出来,但是在主程序中一旦加入了  USART_RX_Service();   这条函数  OLED屏直接就黑掉了,找不到原因。。
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2019-4-7
在线时间
28 小时
发表于 2020-4-23 16:07:15 | 显示全部楼层
大佬  我的定时器7进不去了  为啥啊
回复 支持 反对

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2019-9-9
在线时间
20 小时
发表于 2020-5-15 11:10:25 | 显示全部楼层
思路清晰,目前看到写的最好的主机程序
回复 支持 反对

使用道具 举报

22

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
770
金钱
770
注册时间
2017-2-19
在线时间
132 小时
 楼主| 发表于 2020-5-19 16:29:07 | 显示全部楼层
guanli5212 发表于 2020-3-18 16:19
写寄存器的时候,为什么数据不能保存?重新上电就回复默认值了

因为没有写到EEPROM里面,你把数据写入EEPROM,上电时候在读取出来,就可以了
回复 支持 反对

使用道具 举报

22

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
770
金钱
770
注册时间
2017-2-19
在线时间
132 小时
 楼主| 发表于 2020-5-19 16:33:22 | 显示全部楼层
sssaaa1 发表于 2020-4-23 12:29
您好,想请教一些,TIM4的功能在里面发挥了什么作用?可以把他省去吗?

你可以试试看,我记得是不行
回复 支持 反对

使用道具 举报

22

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
770
金钱
770
注册时间
2017-2-19
在线时间
132 小时
 楼主| 发表于 2020-5-23 08:51:40 | 显示全部楼层
更新一版Modbus主机程序,
删除了TIM4作用
回复 支持 反对

使用道具 举报

22

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
770
金钱
770
注册时间
2017-2-19
在线时间
132 小时
 楼主| 发表于 2020-5-23 08:56:40 | 显示全部楼层
这2天刚好有时间,鉴于很多人的疑问,现在做下更新统一回复:

一.更新mdobus主机程序
1.删除TIM4的作用
2.增加单机多功能码循环功能
3.增加事件处理
4.修改封装modbus函数更易使用
5.附加详细调试教程。
6.多机多功能码(未完成,可以按照单机多功能码实现,只需修改从机地址即可)
7.测试读取从机100个数据无问题(目前最大100)
回复 支持 反对

使用道具 举报

22

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
770
金钱
770
注册时间
2017-2-19
在线时间
132 小时
 楼主| 发表于 2020-5-23 10:04:12 | 显示全部楼层
这个是回复大家的新程序做了修改 http://www.openedv.com/forum.php ... d=311407&extra=
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2020-5-25
在线时间
2 小时
发表于 2020-5-27 16:30:06 | 显示全部楼层
刘东君 发表于 2017-4-15 09:28
这分别是 写1个,读1个,读3个数据的通讯

这个是检测的从机的代码吗
回复 支持 反对

使用道具 举报

3

主题

59

帖子

0

精华

高级会员

Rank: 4

积分
609
金钱
609
注册时间
2017-8-23
在线时间
219 小时
发表于 2020-5-28 09:56:41 | 显示全部楼层
楼主,这个有小数显示功能吗
回复 支持 反对

使用道具 举报

22

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
770
金钱
770
注册时间
2017-2-19
在线时间
132 小时
 楼主| 发表于 2020-6-2 09:32:42 | 显示全部楼层
15270799039 发表于 2020-5-27 16:30
这个是检测的从机的代码吗

是的,上位机发送的数据给从机
回复 支持 反对

使用道具 举报

22

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
770
金钱
770
注册时间
2017-2-19
在线时间
132 小时
 楼主| 发表于 2020-6-2 09:38:55 | 显示全部楼层
honglang2222 发表于 2020-5-28 09:56
楼主,这个有小数显示功能吗

这个是实际仪表的MODBUS,带小数的。 只是用某一个地址为 作为小数的表示,读取出来数据,都要进行后续数据处理的。 微信截图_20200602093653.png 微信截图_20200602093612.png



回复 支持 反对

使用道具 举报

22

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
770
金钱
770
注册时间
2017-2-19
在线时间
132 小时
 楼主| 发表于 2020-6-2 09:40:38 | 显示全部楼层
QFkw001 发表于 2020-4-23 16:07
大佬  我的定时器7进不去了  为啥啊

我新写一个删除定时器7的程序
回复 支持 反对

使用道具 举报

22

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
770
金钱
770
注册时间
2017-2-19
在线时间
132 小时
 楼主| 发表于 2020-6-2 09:41:25 | 显示全部楼层
zhongxing 发表于 2020-2-27 08:55
楼主可以分享一下 一主机多从机的程序吗

已经分享,新的程序
回复 支持 反对

使用道具 举报

22

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
770
金钱
770
注册时间
2017-2-19
在线时间
132 小时
 楼主| 发表于 2020-6-2 09:41:57 | 显示全部楼层
sssaaa1 发表于 2020-4-23 15:26
您好,请问您调试成功了吗?我现在是想着把从机读取出来的数据通过OLED显示出来,但是在主程序中一旦加入 ...

已经更新程序
回复 支持 反对

使用道具 举报

22

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
770
金钱
770
注册时间
2017-2-19
在线时间
132 小时
 楼主| 发表于 2020-6-2 11:58:22 | 显示全部楼层
zhongxing 发表于 2020-2-27 08:55
楼主可以分享一下 一主机多从机的程序吗

已经编写完成 一主机 多从机  ,目前是 1个主机 7个从机试验完毕,自己可以添加更多从机
回复 支持 反对

使用道具 举报

22

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
770
金钱
770
注册时间
2017-2-19
在线时间
132 小时
 楼主| 发表于 2020-6-2 11:59:56 | 显示全部楼层
无标题2.png
增加一主机 多从机程序, 目前试验 1主机7个从机。
从机如何有一个通信中断,所有都中断
ModBus-MasterV1.1.rar (2.35 MB, 下载次数: 226)
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2019-7-27
在线时间
14 小时
发表于 2020-6-3 22:46:39 | 显示全部楼层
不错,有用
回复 支持 反对

使用道具 举报

0

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2018-4-4
在线时间
74 小时
发表于 2020-6-13 15:33:46 | 显示全部楼层
刘东君 发表于 2020-5-19 16:29
因为没有写到EEPROM里面,你把数据写入EEPROM,上电时候在读取出来,就可以了

嗯,后来我想明白了,但是现在对这个EEPROM的操作不是太熟悉,大佬有时间的话指导一下,谢谢了
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
321
金钱
321
注册时间
2019-6-29
在线时间
46 小时
发表于 2020-6-15 06:36:38 | 显示全部楼层
感谢分享,已经实验成功
回复 支持 反对

使用道具 举报

21

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1227
金钱
1227
注册时间
2020-7-14
在线时间
272 小时
发表于 2020-7-21 17:02:35 | 显示全部楼层
void Modbus_RegMap(void)  
{
        Master_WriteReg[0]=1;
        Master_WriteReg[1]=8;
        Master_WriteReg[2]=9;
        Master_WriteReg[3]=235;
        Master_WriteReg[4]=8690;
        Master_WriteReg[5]=23578;
        Master_WriteReg[6]=125;
       
        Master_OutputIO[20]=1;
        Master_OutputIO[21]=0;
        Master_OutputIO[22]=1;
        Master_OutputIO[23]=1;
        Master_OutputIO[24]=0;
        Master_OutputIO[25]=0;
        Master_OutputIO[26]=1;
        Master_OutputIO[27]=1;
       
        Master_OutputIO[28]=1;
        Master_OutputIO[29]=0;
}请问这里都是什么意思呀
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2020-1-17
在线时间
17 小时
发表于 2020-7-21 19:49:40 | 显示全部楼层
本帖最后由 xuanhu 于 2020-7-21 19:53 编辑

版主你好,我刚接触ModBus,参考了你在论坛上发布的相关程序ModBus-MasterV1.1。我使用的原子的精英板,对照原理图引脚,修改了Key.c的按键引脚和master.cmaster.h的引脚定义(由PG9改为PD7
这个串口调试也失败了,显示超时
版主,以你的经验看,我是不是少了点什么

Help001.jpg
Help002.jpg
Help003.jpg
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2020-7-20
在线时间
7 小时
发表于 2020-8-5 16:09:57 | 显示全部楼层
正在学习,谢谢楼主分享
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2020-7-21
在线时间
37 小时
发表于 2020-8-6 15:57:13 | 显示全部楼层
xuanhu 发表于 2020-7-21 19:49
版主你好,我刚接触ModBus,参考了你在论坛上发布的相关程序ModBus-MasterV1.1。我使用的原子的精英板,对 ...

你好 请问你解决了嘛 我遇到相同问题
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2019-11-26
在线时间
20 小时
发表于 2020-8-9 10:17:59 | 显示全部楼层
你好,请问一下从机的程序中怎么将传感器采集的数据存储在寄存器里
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2020-8-8
在线时间
13 小时
发表于 2020-8-11 06:21:25 | 显示全部楼层
你好楼主,我主板mcu是stm32f407igt6,你这个程序可以移植吗。我是小白请指教
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2020-8-8
在线时间
13 小时
发表于 2020-8-11 06:23:24 | 显示全部楼层
你好楼主我mcu是stm32f407igt6,这个程序可以移植吗,我是小白请指教!!!
回复 支持 反对

使用道具 举报

22

主题

85

帖子

0

精华

高级会员

Rank: 4

积分
778
金钱
778
注册时间
2016-5-16
在线时间
115 小时
发表于 2020-8-11 09:41:51 | 显示全部楼层
为啥不写04功能吗
团战可以不可以输,TM也必须死
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2020-8-8
在线时间
13 小时
发表于 2020-8-11 10:10:36 | 显示全部楼层
感谢楼主分享,请教一下我用smt32f407igt6,可以移植吗?我是新手请指教
回复 支持 反对

使用道具 举报

21

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1227
金钱
1227
注册时间
2020-7-14
在线时间
272 小时
发表于 2020-8-25 10:28:20 | 显示全部楼层
兄弟萌可以去看看我的贴子
回复 支持 反对

使用道具 举报

21

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1227
金钱
1227
注册时间
2020-7-14
在线时间
272 小时
发表于 2020-8-25 10:29:10 | 显示全部楼层
15064804630 发表于 2020-8-11 06:23
你好楼主我mcu是stm32f407igt6,这个程序可以移植吗,我是小白请指教!!!

可以可以
回复 支持 反对

使用道具 举报

21

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1227
金钱
1227
注册时间
2020-7-14
在线时间
272 小时
发表于 2020-8-25 10:29:37 | 显示全部楼层
mp1415 发表于 2020-8-9 10:17
你好,请问一下从机的程序中怎么将传感器采集的数据存储在寄存器里

03功能码就是读寄存器值
回复 支持 反对

使用道具 举报

22

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
770
金钱
770
注册时间
2017-2-19
在线时间
132 小时
 楼主| 发表于 2020-8-27 11:42:56 | 显示全部楼层
本帖最后由 刘东君 于 2020-8-27 11:50 编辑

触摸屏与STM32通讯程序.rar (2.41 MB, 下载次数: 77)
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2020-6-6
在线时间
15 小时
发表于 2020-8-29 18:03:37 | 显示全部楼层
刘东君 发表于 2020-8-27 11:42
这个是 触摸屏与SMT32 MODBUS通讯例程

老刘怎么从机怎么跟 modbus poll连接不是上呢,提示timeout,谢谢
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2019-11-26
在线时间
20 小时
发表于 2020-9-9 14:35:41 | 显示全部楼层
请问一下,保持寄存器指针指向那块不用测试数据,将实际测量的传感器数据给他需要怎么解决。
QQ图片20200909110707.png
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-5-29 16:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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