guanlan12 发表于 2014-3-18 11:11

工控机485的奇葩问题 求围观

一共三个设备,工控机,我的电脑,陀螺仪。现在在电脑上用串口助手和陀螺仪、工控机的485通信都是正常的,但是工控机和陀螺仪的通信不对。求教大神分析一下是什么问题,工控机是qnx系统(类unix),程序是c语言编写的。

guanlan12 发表于 2014-3-18 11:12

停止位,波特率,数据位都是按照陀螺仪的通信要求设置的。

guanlan12 发表于 2014-3-18 11:16

另外,我把我的电脑,工控机,还有陀螺仪这三个的485连到一起,在我的电脑上用串口助手发送一个命令,陀螺仪是能反馈回来数据的,串口助手和工控机上的程序都能读到。但是用工控机发送命令,陀螺仪是没有反馈数据的。
这是不是能说明问题是出在工控机的write指令上?

sjnh 发表于 2014-3-18 11:28

可能是工控机485方向切换出了问题。有可能是陀螺仪接到命令后立即返回数据,但工控机还没有切换485到收的状态,导致数据丢失。而计算机的485设备方向控制是自动的。
你说的工控机有没有这个问题我不了解,我公司产品与其它家工控板(linux系统)通信,我的设备是接到命令后2ms之内一定会返回数据,而对方要求100ms,就是因为方向不能快速切换。
供参考,把陀螺仪返回时间加长,或用示波器观察485总线电平有没有冲突(总线电平在陀螺仪返回数据是翻转不了)

guanlan12 发表于 2014-3-18 14:21

sjnh 发表于 2014-3-18 11:28 static/image/common/back.gif
可能是工控机485方向切换出了问题。有可能是陀螺仪接到命令后立即返回数据,但工控机还没有切换485到收的状 ...

可能是工控机485方向切换出了问题。有可能是陀螺仪接到命令后立即返回数据,但工控机还没有切换485到收的状态,导致数据丢失。而计算机的485设备方向控制是自动的。
我把电脑、工控机、陀螺仪三个都连在了一起,工控机发命令,陀螺仪如果有返回的话,电脑的串口助手肯定能读到的,但是现在读不到。

chunyang 发表于 2014-3-18 15:43

监测一下工控机的指令以及陀螺仪的响应,与能发生正确反应的操作对比一下不就知道了。

sjnh 发表于 2014-3-18 16:17

guanlan12 发表于 2014-3-18 14:21 static/image/common/back.gif
可能是工控机485方向切换出了问题。有可能是陀螺仪接到命令后立即返回数据,但工控机还没有切换485到收的 ...

如果工控机占着总线、驱动能力又强,陀螺仪驱动能力弱,电脑串口就不一定接收到数据

guanlan12 发表于 2014-3-18 19:54

大家看看这两个波形,一样的数据,一个是用电脑的串口助手发的,一个是工控机发的。是不是工控机发的波形有问题啊?没有负值,要怎么解决额?

guanlan12 发表于 2014-3-18 19:55

sjnh 发表于 2014-3-18 16:17 static/image/common/back.gif
如果工控机占着总线、驱动能力又强,陀螺仪驱动能力弱,电脑串口就不一定接收到数据 ...

波形发上来了,能帮忙看下吗谢谢了

sjnh 发表于 2014-3-19 08:37

看波形像是总线被占了,可能是工控机没有切换到接收状态,占了总线,陀螺仪的数据无法把总线翻转。

如果你没有方法测量工控机485方向控制器信号,可以这样测试:
在工控机出口A/B线上串2个电阻,例如50欧,而陀螺仪与计算机是直接链接,这样即使工控机占了总线,由于总线上有大电阻,陀螺仪发送数据也能把自己输出口电平翻转了,计算机就能收到;
如果真是这样,那确定是工控机没有及时切换到接收状态。

科技猎人 发表于 2014-3-19 08:42

注意这三个设备是否共地了,485为差分线,大部分情况下不共地也是能正常通信的,但是当两个设备参考地间压差太大时就会影响通信。就像你给出的波形(AB间电压),明明没问题可就是通信不成功。所以485总线,除了要接AB两线外,GND也要连在一起。

guanlan12 发表于 2014-3-19 08:53

科技猎人 发表于 2014-3-19 08:42 static/image/common/back.gif
注意这三个设备是否共地了,485为差分线,大部分情况下不共地也是能正常通信的,但是当两个设备参考地间压 ...

485的电压差不是应该-0.2到-6v表示逻辑0吗?第一个图都是正的,这样对吗

guanlan12 发表于 2014-3-19 09:09

sjnh 发表于 2014-3-19 08:37 static/image/common/back.gif
看波形像是总线被占了,可能是工控机没有切换到接收状态,占了总线,陀螺仪的数据无法把总线翻转。

如果你 ...

我刚把工控机、陀螺仪、电脑三个485连在一起,工控机和陀螺仪的通信正常了,但是只把工控机和陀螺仪连起来却不行。是不是工控机485输出的电压差没有负值的原因?

sgj245609615 发表于 2014-3-19 10:27

工控机端 485总线上建议A加个上拉电阻 B加个下拉电阻
页: [1]
查看完整版本: 工控机485的奇葩问题 求围观