OpenEdv-开源电子网

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

modbus RTU和modbus TCP能同时使用么?

[复制链接]

36

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
943
金钱
943
注册时间
2015-11-24
在线时间
162 小时
发表于 2017-6-11 14:16:24 | 显示全部楼层 |阅读模式
10金钱
F429 现在应用层考虑使用modbus协议,底层接口同时支持串口和网口与上位机通信,网络部分使用的是dp83848和lwip的方案,现在想确认如果移植freemodbus,能同时支持modbus的RTU和TCP协议么?想让二者能独立同时工作,有没有相关经验的大神给点指导性的意见和建议,谢谢

最佳答案

查看完整内容[请看2#楼]

没人回答,我自己来,分别移植了RTU和TCP协议,二者单独都可以正常使用,但不能同时使用,看代码,不同的初始化把相关的函数指针赋值了不同的接受发送函数,如果非要使用网络的话,只能使用modbus rtu over tcp这个不错 看了一下相关源码,被我修改了,现在已经可以同时支持RTU和TCP了,测试成功,稳定性还需继续测试
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

36

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
943
金钱
943
注册时间
2015-11-24
在线时间
162 小时
 楼主| 发表于 2017-6-11 14:16:25 | 显示全部楼层
本帖最后由 gangzilife 于 2017-6-16 11:24 编辑

没人回答,我自己来,分别移植了RTU和TCP协议,二者单独都可以正常使用,但不能同时使用,看代码,不同的初始化把相关的函数指针赋值了不同的接受发送函数,如果非要使用网络的话,只能使用modbus rtu over tcp这个不错

看了一下相关源码,被我修改了,现在已经可以同时支持RTU和TCP了,测试成功,稳定性还需继续测试
回复

使用道具 举报

36

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
943
金钱
943
注册时间
2015-11-24
在线时间
162 小时
 楼主| 发表于 2017-6-11 14:49:08 | 显示全部楼层
顶上来,要沉下去了
回复

使用道具 举报

11

主题

216

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1124
金钱
1124
注册时间
2015-2-27
在线时间
485 小时
发表于 2017-6-11 15:20:52 | 显示全部楼层
freemodbus从来没用过,本来我只是要个简单的数据访问,freemodbus却搞这么一大坨代码,你不如自己写一个modbus吧,几句话就完事了。

modbus RTU和TCP没有什么区别,只是TCP在RTU指令前面加了6个字节,然后去掉了末尾2个字节的CRC16

你花费移植freemodbus的时间已经够你出两个modbus RTU和TCP了
回复

使用道具 举报

37

主题

148

帖子

0

精华

高级会员

Rank: 4

积分
967
金钱
967
注册时间
2017-1-4
在线时间
431 小时
发表于 2017-6-14 13:34:06 | 显示全部楼层
http://bbs.21ic.com/forum.php?mo ... p;page=1#pid7114422

好像不能,自己单独些的一个协议
回复

使用道具 举报

36

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
943
金钱
943
注册时间
2015-11-24
在线时间
162 小时
 楼主| 发表于 2017-6-14 17:55:15 | 显示全部楼层
电子过客 发表于 2017-6-14 13:34
http://bbs.21ic.com/forum.php?mod=viewthread&tid=1612934&page=1#pid7114422

好像不能,自己单独些的 ...

如果真要TCP和RTU同时使用,我感觉需要将freemodbus复制一份,改一改相关的函数,直接跑两个freemodbus,一个TCP,一个RTU,但是感觉好傻啊,而且工作量略大啊
回复

使用道具 举报

1

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
金钱
347
注册时间
2015-4-7
在线时间
94 小时
发表于 2017-6-15 09:11:10 | 显示全部楼层
我当时也是遇到这个问题     两个串口要做modbus  rtu      网口还要跑modbus    TCP     发现freemodbus没法整后来移植了   libmodbus    可以看看libmodbus

回复

使用道具 举报

36

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
943
金钱
943
注册时间
2015-11-24
在线时间
162 小时
 楼主| 发表于 2017-6-15 14:59:59 | 显示全部楼层
yklstudent 发表于 2017-6-14 20:47
直接没法跑MODBUS RTU和MODBUS TCP,改改一些东西就可以了,我试过

具体改哪些?方便透露一些,给个思路吗?
回复

使用道具 举报

36

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
943
金钱
943
注册时间
2015-11-24
在线时间
162 小时
 楼主| 发表于 2017-6-15 15:03:10 | 显示全部楼层
point 发表于 2017-6-15 09:11
我当时也是遇到这个问题     两个串口要做modbus  rtu      网口还要跑modbus    TCP     发现freemodbus没 ...

没有时间去移植别的了,我想试试能不能改一下freemodbus的源码
回复

使用道具 举报

1

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
金钱
347
注册时间
2015-4-7
在线时间
94 小时
发表于 2017-6-15 15:06:26 | 显示全部楼层
gangzilife 发表于 2017-6-15 15:03
没有时间去移植别的了,我想试试能不能改一下freemodbus的源码

那个不好整    你可以自己写一个简单的  modbus  tcp    然后rtu用freemodbus协议栈   我也这么干过
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-10-31
在线时间
2 小时
发表于 2017-6-15 16:52:09 | 显示全部楼层
1048718572@qq.com  亲发个代码看看呗
回复

使用道具 举报

36

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
943
金钱
943
注册时间
2015-11-24
在线时间
162 小时
 楼主| 发表于 2017-6-16 11:22:37 | 显示全部楼层
yklstudent 发表于 2017-6-15 16:16
改的东西不少,比如mb.c文件内定义的一些函数指针变量,不管rtu还是tcp等模式,都是使用的通一组函数指针 ...

谢谢,源码我已经修改成功,现在已经可以同时支持RTU和TCP了
回复

使用道具 举报

15

主题

32

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2017-1-19
在线时间
23 小时
发表于 2017-7-7 08:57:09 | 显示全部楼层
楼主能不能发一份一份移植了modbusrtu和modbustcp的源码。。。。。。。
回复

使用道具 举报

15

主题

32

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2017-1-19
在线时间
23 小时
发表于 2017-7-7 08:59:25 | 显示全部楼层
yklstudent 发表于 2017-6-14 20:47
直接没法跑MODBUS RTU和MODBUS TCP,改改一些东西就可以了,我试过

大神,能不能发一份移植了MODBUS RTU和MODBUS TCP的源码跪谢了。
回复

使用道具 举报

29

主题

311

帖子

0

精华

高级会员

Rank: 4

积分
747
金钱
747
注册时间
2016-5-21
在线时间
199 小时
发表于 2017-7-7 09:17:57 | 显示全部楼层
我原来也是用freemodbus,后来绝对这个确实麻烦没必要,就在网上找了版清新脱俗的自写版本,用着挺好
回复

使用道具 举报

22

主题

129

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
324
金钱
324
注册时间
2015-6-23
在线时间
68 小时
发表于 2019-2-10 10:41:21 | 显示全部楼层
gangzilife 发表于 2017-6-11 14:16
没人回答,我自己来,分别移植了RTU和TCP协议,二者单独都可以正常使用,但不能同时使用,看代码,不同的初 ...

楼主能不能分享一下代码,我也是搞不定RTU和TCP都工作,谢谢!
回复

使用道具 举报

32

主题

138

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1757
金钱
1757
注册时间
2018-4-28
在线时间
242 小时
发表于 2019-6-17 12:15:23 | 显示全部楼层
楼主能不能分享一下代码,我也是搞不定RTU和TCP都工作,谢谢
回复

使用道具 举报

32

主题

138

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1757
金钱
1757
注册时间
2018-4-28
在线时间
242 小时
发表于 2019-6-17 12:15:52 | 显示全部楼层
楼主能不能分享一下代码,我也是搞不定RTU和TCP都工作,谢谢
回复

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2019-7-4
在线时间
5 小时
发表于 2019-7-5 08:27:05 | 显示全部楼层
请问楼主可以提供一下基于freemodbus两种通讯模式共同支持的思路吗。
回复

使用道具 举报

36

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
943
金钱
943
注册时间
2015-11-24
在线时间
162 小时
 楼主| 发表于 2019-8-7 16:43:53 | 显示全部楼层
schips 发表于 2019-7-5 08:27
请问楼主可以提供一下基于freemodbus两种通讯模式共同支持的思路吗。

好久了,忘了差不多了,思路就是复制一份函数指针,rtu和tcp只是将一个函数指针指向二者的接收与发送,再定义一个函数指针,两个函数指针分别指向rtu和tcp的接口,就可以同时实现rtu和tcp
回复

使用道具 举报

8

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2019-8-2
在线时间
33 小时
发表于 2021-1-26 13:56:51 | 显示全部楼层
楼主,你好能不能分享个源代码demo看一下
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-28 21:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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