打印
[485通信]

485通信问题-2

[复制链接]
1667|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sunee|  楼主 | 2017-4-7 11:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于485通信的问题,我又来提问啦,先感谢21家和各路大神网友!
以下为目前的问题

目的:实现PLC(下位机)与LINUX设备(上位机)之间的通信,上位机发送查询命令给下位机,下位机收到命令后回复相对应的数据(很简单是不是)。
接口:RS485;波特率:19200;
目前问题:上位机发送查询命令,下位机通信指示灯会闪烁,说明命令收到,但是上位机并未收到下位机的回复(略尴尬)。
调试手段:1)PC端模拟上位机通过串口调试助手和485转换小板发送查询命令给下位机,下位机会回复正常数据;
                 2)PC端模拟下位机,当收到上位机发送的查询命令后,回复数据给上位机,上位机可正常显示回复的数据;
                 3)上位机和下位机通信线中间接入PC端监测数据,可监测到上位机发送的查询命令,但看不到下位机的回复。





请问还有啥办法检测问题的所在?

相关帖子

沙发
长的帅怪我落| | 2017-4-7 15:27 | 只看该作者
好好检查你上位机和下位机通信的那根线吧。。

使用特权

评论回复
板凳
sunee|  楼主 | 2017-4-7 16:01 | 只看该作者
长的帅怪我落 发表于 2017-4-7 15:27
好好检查你上位机和下位机通信的那根线吧。。

通信线检查过、更换过,在别的设备上也用过,可以排除

使用特权

评论回复
地板
ar_dong| | 2017-4-9 14:28 | 只看该作者
把地线连过去,可能是两个机器压差大了

使用特权

评论回复
5
sunee|  楼主 | 2017-4-10 09:14 | 只看该作者
ar_dong 发表于 2017-4-9 14:28
把地线连过去,可能是两个机器压差大了

做过共地测试,电平问题暂时也可以不做怀疑

使用特权

评论回复
6
chunyang| | 2017-4-10 12:04 | 只看该作者
检查:终端电阻是否接上、总线连接是否遵循首尾互联原则、不同节点间地电位是否相差过大等。通讯指示灯闪烁,未必说明通讯成功,具体需要看PLC的使用说明。另外用串口监视器时,注意使用16进制,特别注意上位机指令格式、数据/指令间隔时间等。通过比较有无响应的上位机指令,应该就可以弄清问题。这里,用存储示波器配合观察对分析问题更为有利。

使用特权

评论回复
7
sunee|  楼主 | 2017-4-10 13:44 | 只看该作者
chunyang 发表于 2017-4-10 12:04
检查:终端电阻是否接上、总线连接是否遵循首尾互联原则、不同节点间地电位是否相差过大等。通讯指示灯闪烁 ...

您提示的终端电阻、总线连接、电位差、16进制、指令格式、间隔时间等在周末时候均做过相应的检查和测试,仍然没有发现问题所在,下一步打算弄个示波器来检查下(暂时没有示波器,之前调I2C也是在无示波器状态下调试,略痛苦)。
另外需要说明下,测试过程中,将波特率从19200调到9600后,上位机、下位机通信正常了,这就有迷糊了。

使用特权

评论回复
8
chunyang| | 2017-4-10 16:13 | 只看该作者
sunee 发表于 2017-4-10 13:44
您提示的终端电阻、总线连接、电位差、16进制、指令格式、间隔时间等在周末时候均做过相应的检查和测试, ...

那说明存在波形失真或波特率误差过大,有个示波器看看的话,立刻就能确定问题了。

使用特权

评论回复
9
sunee|  楼主 | 2017-4-11 16:13 | 只看该作者
chunyang 发表于 2017-4-10 16:13
那说明存在波形失真或波特率误差过大,有个示波器看看的话,立刻就能确定问题了。 ...

老板还是没有买示波器,不过问题缩小到一个串口扩展芯片上(GM8125),暂时把这个坑绕过,先用别的方法完成项目(交期限制),再回过头来排除问题,完善项目。

使用特权

评论回复
10
sunee|  楼主 | 2017-4-11 16:17 | 只看该作者
去年关于485通信的坑还没机会去填,现在又来一个,不知道啥时候才能有个结论

使用特权

评论回复
11
chunyang| | 2017-4-11 17:10 | 只看该作者
sunee 发表于 2017-4-11 16:13
老板还是没有买示波器,不过问题缩小到一个串口扩展芯片上(GM8125),暂时把这个坑绕过,先用别的方法完 ...

如果是用了串口扩展芯片,那问题多半出在这,GM8125如果处于分频模式下,那波特率没法太高,分频后误差也会加大。

使用特权

评论回复
12
sunee|  楼主 | 2017-4-12 08:17 | 只看该作者
chunyang 发表于 2017-4-11 17:10
如果是用了串口扩展芯片,那问题多半出在这,GM8125如果处于分频模式下,那波特率没法太高,分频后误差也 ...

如果GM8125子串口波特率没法太高,可是PC、STM32开发板模拟PLC回复,上位机还是正常能够通信,难道说PC、STM32抗干扰能力强?

使用特权

评论回复
13
chunyang| | 2017-4-12 11:53 | 只看该作者
sunee 发表于 2017-4-12 08:17
如果GM8125子串口波特率没法太高,可是PC、STM32开发板模拟PLC回复,上位机还是正常能够通信,难道说PC、 ...

不是抗干扰问题,而是波特率精度问题。所有串口设备的波特率都存在误差,如果恰好一个是正误差,一个是负误差,一旦过限,那就没**常通讯了。你可以试试稍调解一下接GM8125的原串口波特率,稍稍调一点,先往一个方向调,不行再向相反的方向调。不过这招可不适合批量产品,批量产品必须控制好离散性,所以选用精度高、稳定性好的晶体很重要。

使用特权

评论回复
14
sunee|  楼主 | 2017-4-12 13:22 | 只看该作者
chunyang 发表于 2017-4-12 11:53
不是抗干扰问题,而是波特率精度问题。所有串口设备的波特率都存在误差,如果恰好一个是正误差,一个是负 ...

明白了,非常感谢!项目完了再回过头来一下一下调,这次这问题不能轻易不管了,不然以后问题都堆起来就不好工作了。

使用特权

评论回复
15
zhxingyu| | 2017-8-21 13:48 | 只看该作者
sunee 发表于 2017-4-12 13:22
明白了,非常感谢!项目完了再回过头来一下一下调,这次这问题不能轻易不管了,不然以后问题都堆起来就不 ...

这个问题有解决吗?我给你的问题现象是一样的,我的波特率还是9600也是这样。

使用特权

评论回复
16
kaisa0826| | 2017-8-21 19:22 | 只看该作者
碰到过很多产品,晶振频偏过多,导致通信不上的问题,强制修改波特率到非整数,就搞定了,不同接收的容错率不同,一般电脑的容错率蛮高的,单片机不能识别,电脑串口可以识别

使用特权

评论回复
17
励志电子神| | 2017-8-23 10:03 | 只看该作者
涨姿势

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

184

帖子

3

粉丝