首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RS-485通信故障排除

RS-485通信故障排除
EN

Unix & Linux用户
提问于 2018-09-12 14:55:35
回答 1查看 1.8K关注 0票数 2

我有一个ND-6021模拟输入模块。它是一种RS-485设备,可以根据接收到的命令设置可变的输出电压。我正试图使它在Linux扩展下工作。我一直在使用minicom查看它是否正常工作,所以我发出了一个read configuration命令:$012。设备使用消息!01320600!回答,意味着它正确地接收了命令,其余的消息解释了如何配置它。据我所知,这意味着连接的设置是正确的,并且没有硬件问题阻碍通信。

下一步是设置所需的输出电压水平。我把一个数字电压表连接到设备上,这样我就可以看到输出电压了。我发出命令:#0108.467和我应该在电压表上读取一个值为8.467伏特的电压,设备应该用>来响应,但是电压保持在0,设备没有答案。

我花了几个小时检查命令的语法,它是正确的,所以我做了另一个测试。我将设备连接到Windows膝上型电脑,并使用白蚁发出了完全相同的命令。读取配置命令($012)工作,我得到了与Linux相同的答案,现在也是设置电压命令:我从设备获得了>答案,输出电压被正确设置。

我很困惑,因为我的测试表明通信和硬件设置都是正常的,但是很明显,有些东西不起作用,但又是什么呢?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-09-12 16:44:11

通常情况下,这是一个粗俗或新的解释问题。(即使命令部分工作)

索纳特是建立和排除网络和串行连接的重要工具。

代码语言:javascript
运行
复制
socat - /dev/ttySX[,params]

如果空参数无效,可以尝试使用param添加显式波特率:b 9600/b 19200/b 57600/b 115200.使用socat -?? | grep 'b[1-9]'检索的所有列表

然后重点讨论新的线解释问题,尝试将crcrnlecho=0raw组合起来。

..。由于一些模块坚持cr+lf (\r\n)行的结尾,有些模块只想要'\n',有时回显会造成混乱.在您的例子中,模块只需要回车(\r),所以echo '#0108.467' | socat - /dev/ttySX,cr应该工作得很好。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/468554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档