OpenEdv-开源电子网

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

战舰板子MODBUS 485通讯问题

[复制链接]

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2014-10-30
在线时间
10 小时
发表于 2014-12-3 21:03:47 | 显示全部楼层 |阅读模式
5金钱
移植了别人的freemodbus到串口2,在战舰板子上测试,串口2 232通讯很正常,也稳定,但是当用485的时候,总是出现反馈多出00,例如:发送》01 03 00 00 00 04 44 09接收为》00 01 03 08 10 00 20 00 30 00 40 00 AD 7B 00 ,当用232时接收为 01 03 08 10 00 20 00 30 00 40 00 AD 7B 是对的,帮忙分析一下!
测试用的是电脑串口助手等几个工具都这样,用的USB-232-485的转接卡。此卡测试其他485设备均正常。 
源码见附件!

modbus-com2.rar

1.85 MB, 下载次数: 1759

最佳答案

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

回复【6楼】正点原子: --------------------------------- 问题找到了,是去掉AB间120欧姆的终端电阻,用串口助手测试收发均正常。我想R45不去的话,2块开发板之间通讯,或者与plc通讯应该是正常的,他们通讯口都有终端电阻,可以匹配,但是用电脑测试的时候是232转的485不一定有匹配的电阻。就会出现像我这样的情况。因此建议终端电阻可以加一个跳线或者去掉,正常485通讯短距离是不需要终端电阻的,开发板一般不会太远距离使用。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2014-10-30
在线时间
10 小时
 楼主| 发表于 2014-12-3 21:03:48 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
问题找到了,是去掉AB间120欧姆的终端电阻,用串口助手测试收发均正常。我想R45不去的话,2块开发板之间通讯,或者与plc通讯应该是正常的,他们通讯口都有终端电阻,可以匹配,但是用电脑测试的时候是232转的485不一定有匹配的电阻。就会出现像我这样的情况。因此建议终端电阻可以加一个跳线或者去掉,正常485通讯短距离是不需要终端电阻的,开发板一般不会太远距离使用。
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2014-10-30
在线时间
10 小时
 楼主| 发表于 2014-12-3 21:40:16 | 显示全部楼层


用本身带的寄存起485例程,如上图,可以看出,结束时多发一个00,在点击发送数据的时候,也能接收到一个00返回值。
请原子哥给看看原因???
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-12-3 22:35:39 | 显示全部楼层
回复【2楼】carolst:
---------------------------------
应该是RX/TX状态切换的时候,导致的。
试试从软件上解决这个问题吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2014-10-30
在线时间
10 小时
 楼主| 发表于 2014-12-4 07:46:15 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
我用战舰标准485例程也出现了多发一个00的情况,请看二楼!
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13100
金钱
13100
注册时间
2012-11-26
在线时间
3811 小时
发表于 2014-12-4 09:30:41 | 显示全部楼层
回复【4楼】carolst:
---------------------------------
没找到底层发送的部分,楼主把485发送那部分调试调试吧 

应该是这边问题
学无止境
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-12-4 19:06:12 | 显示全部楼层
回复【4楼】carolst:
---------------------------------
在A,B上加上下拉电阻,确保AB压差大于200mV试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2014-10-30
在线时间
10 小时
 楼主| 发表于 2014-12-5 13:52:03 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
我今天晚上试试!
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2014-12-5 16:43:04 | 显示全部楼层
文件结构写的好乱的说!
回复

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2014-12-5 21:36:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2014-10-30
在线时间
10 小时
 楼主| 发表于 2014-12-5 22:19:57 | 显示全部楼层
用的是STC-ISP,

stc-isp-15xx-v6.82.exe

1.56 MB, 下载次数: 823

回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2014-10-30
在线时间
10 小时
 楼主| 发表于 2014-12-6 05:14:18 | 显示全部楼层
freemodbus通讯测试,ERR一直为0,通讯还是比较正常的!

回复

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2014-12-6 09:12:25 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2014-10-30
在线时间
10 小时
 楼主| 发表于 2014-12-7 00:01:03 | 显示全部楼层
回复【13楼】xouou_53320:
---------------------------------
升级后的软件,有些老的stc单片机型号就不支持了,必须用老版本的isp软件才可以的
回复

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2014-12-8 10:49:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-3-8
在线时间
0 小时
发表于 2015-3-8 17:37:53 | 显示全部楼层
同样的问题我也遇到了,谢谢,
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-3-8
在线时间
0 小时
发表于 2015-3-8 18:06:10 | 显示全部楼层





是不是将R45电阻短接就好了??





回复

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-3-8
在线时间
0 小时
发表于 2015-3-8 18:18:35 | 显示全部楼层





一、战舰485实验例程也出现这样的问题,发数据多了00;收不到电脑网络调试助手发的数据;
二、通过固定RS485_TX_EN的值能够实现只发或者只收功能。
三、连接到232上一切功能正常,
求大神指点
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-3-8
在线时间
0 小时
发表于 2015-3-8 18:19:11 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
求大神指点
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-3-8 22:46:20 | 显示全部楼层
回复【17楼】guanjunyang:
---------------------------------
楼主是断开R45.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-3-8
在线时间
0 小时
发表于 2015-3-9 20:55:33 | 显示全部楼层
回复【20楼】正点原子:
---------------------------------
我也把R45断开了没有效果啊
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-3-9 22:18:49 | 显示全部楼层
回复【21楼】guanjunyang:
---------------------------------
那你得再查查其他问题了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-3-8
在线时间
0 小时
发表于 2015-3-10 19:50:14 | 显示全部楼层
回复【22楼】正点原子:
---------------------------------
好了,就是R45的问题。谢谢原子,谢谢楼主
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-3-8
在线时间
0 小时
发表于 2015-3-10 19:51:06 | 显示全部楼层
回复【2楼】carolst:
---------------------------------
谢谢,楼主,非常感谢楼主的经验
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2015-4-28
在线时间
2 小时
发表于 2015-4-28 11:19:39 | 显示全部楼层
为什么我直接将楼主分享的代码下载到战舰开发板里,和modbus poll通信显示timeout error?????
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2015-4-28
在线时间
2 小时
发表于 2015-4-28 11:20:10 | 显示全部楼层
回复【2楼】carolst:
---------------------------------
为什么我直接将楼主分享的代码下载到战舰开发板里,和modbus poll通信显示timeout error?????
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2014-10-30
在线时间
10 小时
 楼主| 发表于 2015-5-2 10:26:37 | 显示全部楼层
回复【26楼】天凡幽星:
---------------------------------
要注意modbus poll的设置,如果modbus poll 设置不对,也通讯不成功的!还要注意是com2
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-2-26
在线时间
26 小时
发表于 2015-5-11 09:31:36 | 显示全部楼层
回复【2楼】carolst:
---------------------------------
搞不懂
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-5-15
在线时间
0 小时
发表于 2015-5-17 22:44:18 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
这个程序我打开直接报错,
stm32f10x.h(298): error: #67: expected a "}"  

我用的是MDK5.0,怎么回事??
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-5-15
在线时间
0 小时
发表于 2015-5-17 22:45:05 | 显示全部楼层
回复【27楼】carolst:
---------------------------------
这个程序我打开直接报错, 
stm32f10x.h(298): error: #67: expected a "}"   

我用的是MDK5.0,怎么回事??
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-5-15
在线时间
0 小时
发表于 2015-5-17 22:55:49 | 显示全部楼层
回复【18楼】guanjunyang:
---------------------------------
工程文件可否我一份,谢
ingureeagle@163.com
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2015-5-21
在线时间
0 小时
发表于 2015-5-21 14:56:58 | 显示全部楼层
回复【27楼】carolst:
---------------------------------
poll侦听部分需要修改吗? 还有端口2为什么是必须的,我用了端口3,问题也是超时,串口工具用的是 Modbus调试精灵
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2015-5-21
在线时间
0 小时
发表于 2015-5-21 14:59:52 | 显示全部楼层
回复【27楼】carolst:
---------------------------------
修改端口成端口2,也是调试显示超时
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2015-5-21
在线时间
0 小时
发表于 2015-5-21 15:17:38 | 显示全部楼层
回复【27楼】carolst:
---------------------------------
还有关于程序的2个问题,当你选择无校验位的时候。
1. USART_InitStructure.USART_WordLength = USART_WordLength_9b;是否应该改为8b 
2. usTimerT35_50us = ( 7UL * 220000UL ) / ( 2UL * ulBaudRate );  其中220000是否为200000
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2014-10-30
在线时间
10 小时
 楼主| 发表于 2015-6-1 11:27:55 | 显示全部楼层
回复【34楼】正大光明:
---------------------------------
1. USART_InitStructure.USART_WordLength = USART_WordLength_9b;应该改为8b  
2. usTimerT35_50us = ( 7UL * 220000UL ) / ( 2UL * ulBaudRate );  其中220000是否为200000,我没有动这个!
回复

使用道具 举报

21

主题

63

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2473
金钱
2473
注册时间
2014-4-26
在线时间
172 小时
发表于 2015-7-4 10:29:11 | 显示全部楼层
回复【27楼】carolst:
---------------------------------
Poll设置不对么?LZ是怎么设置的,
回复

使用道具 举报

21

主题

63

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2473
金钱
2473
注册时间
2014-4-26
在线时间
172 小时
发表于 2015-7-5 08:54:30 | 显示全部楼层
回复【7楼】carolst:
---------------------------------
楼主:程序没动,串口2--485--转USB,串口调试工具下发命令都能回复数据,但是modbus poll工具连接以后提示bytes missing error,之前有遇到过么??????
回复

使用道具 举报

15

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2012-11-21
在线时间
9 小时
发表于 2015-8-31 19:29:04 | 显示全部楼层
R45怎么短接
回复

使用道具 举报

16

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
金钱
200
注册时间
2014-9-23
在线时间
14 小时
发表于 2015-9-1 11:53:09 | 显示全部楼层
我也遇到了这样的情况,如果用电脑通讯的话,会多出00,这个00是校验前的一个字节,用了软件去处理它,我以开发板为主机的时候和底层的板子通讯,就不会出现这样的问题了,怀疑是助手的问题。。
回复

使用道具 举报

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2013-10-20
在线时间
10 小时
发表于 2016-8-28 20:32:41 | 显示全部楼层
你好大神怎么我下载你的源码后出现超时问题呢
回复

使用道具 举报

17

主题

170

帖子

0

精华

高级会员

Rank: 4

积分
562
金钱
562
注册时间
2018-7-8
在线时间
118 小时
发表于 2019-8-12 08:31:34 | 显示全部楼层
学到了》》
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-23 02:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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