首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RS485电缆上的Modbus RTU和ASCII

RS485电缆上的Modbus RTU和ASCII
EN

Stack Overflow用户
提问于 2013-07-11 10:14:04
回答 3查看 2K关注 0票数 1

我必须读取一些设备通过to 485-USB串行通信电缆连接的数据.设备使用modbus RTU,除了使用modbus ASCII的设备外。

我可以在同一电缆上讲两个协议吗?我认为RTU单元不响应ASCII请求,反之亦然,但是这会导致问题吗?有没有人试过这样做或者有过什么经验?

我在这里没有任何设备可以尝试,我必须直接在客户的位置设置所有的东西。

这将是我理想的配置

PC_USB----------RS485+RTU------RS485+RTU------RS485+RTU------RS485+ASCII

如果这不起作用,我将不得不切换到以下解决方案

PC_USB----------RS485+RTU------RS485+RTU------RS485+RTU PC_USB?USB 485+ASCII。

这将是非常麻烦的,因为一些限制硬件,电缆和位置。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-11 10:24:05

简短的回答是肯定的。只要消息不模棱两可,您就可以在RS485上说出任意多个协议。

我在一个共享的RS485线路上有许多PV逆变器,还有许多其他的传感器,它们讲的是完全不同的协议。这两类设备共享相同的线路,没有问题。

票数 0
EN

Stack Overflow用户

发布于 2013-07-11 15:10:04

这可能是个挑战..。获取规范这里的副本

  • 根据规范,Modbus ASCII通常使用7个数据库字符格式,而Modbus RTU绝对需要8个数据库。因此,除非您可以配置Modbus ASCII设备以切换到与RTU兼容的字符格式8数据库,否则需要在两种模式之间不断切换PC的串行端口。
  • 在Modbus ASCII中,每个有效负载字节被编码为两个ASCII代码,在RTU中,每个字节作为一个字节发送。这可能导致由另一个协议中传输的字节触发奴隶,他们错误地将其解释为从地址。这可能会触发他们用错误消息进行回复,这可以有效地破坏您的通信。这将有多糟糕取决于modbus从实现的健壮性,以及7位和8位字符格式之间的交替可能有助于缓解这个问题。

我认为你必须试一试,并执行一个实际的测试,这是足够长的,看看它是否对你的目的足够好。

票数 2
EN

Stack Overflow用户

发布于 2014-10-23 12:30:53

是的,这是可以做到的,但如果您在开发代码时有确切的设备来验证操作,则会有所帮助。

我已经在LabVIEW中提出了一个"RS_232-485从机模拟器“,它只需要在串口上监听并捕获请求,解析请求,如果需要,提供一个硬编码的响应。

关键是串行参数必须都是相同的:波特、奇偶校验、位、停止位等等。我的默认值是9600,无,8,1。

这也适用于使用“=”和“#”作为消息的第一个字符的“特殊”RS-232设备。

这在设置新设备或软件、编写旧设备的软件驱动程序以及作为现有系统的故障排除工具时非常方便。

=有几个问题会让你感到困惑:

  1. 一些RS-485设备的通信线路有错误的+和标识,
  2. 不是所有设备都需要或将使用“额外停止位”时使用不奇偶校验,
  3. 请注意,当某些数据使用HEX代码与ASCII代码时-一开始看起来是一样的!
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17590748

复制
相关文章

相似问题

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