我必须从通过RS485-USB串行通信电缆连接的某些设备读取数据。除了使用modbus ASCII的设备外,设备使用modbus RTU 我可以在同一根电缆上讲两种协议吗?我认为RTU设备不回复ASCII请求,反之亦然,但这可能会导致问题吗?有没有人试过这个或有任何经验?
我这里没有任何设备可以尝试,我必须直接在客户的位置设置所有设备。
这将是我理想的配置
PC_USB ---------- RS485 + RTU ------ RS485 + RTU ------ RS485 + RTU ------ RS485 + ASCII
如果这不起作用,我将不得不切换到如下的解决方案
由于对硬件,电缆和位置的某些限制,这将是非常有问题的。PC_USB ---------- RS485 + RTU ------ RS485 + RTU ------ RS485 + RTU
PC_USB ---------- RS485 + ASCII
答案 0 :(得分:2)
这可能是一项挑战......获取规范here
的副本我认为你必须尝试并进行一次足够长的现实测试,以确定它是否适合你的目的。
答案 1 :(得分:1)
是的,这可以做到,但如果您在开发代码时拥有确认操作的确切设备,则会有所帮助。
我已经提出了一个" RS_232-485 Slave Simulator"在LabVIEW中将会 只需在串口上侦听并捕获请求, 解析它们,如果需要,提供硬编码响应。
KEY是串行参数必须全部是相同的: 波特率,奇偶校验,位,停止位等。我的默认值是9600,无,8,1
这个ALSO适用于特殊的' RS-232设备 使用' ='和'#'作为信息的第一个字符。
在设置新设备或软件时非常方便, 为传统设备编写软件驱动程序, 并作为现有系统的故障排除工具。
= 一些可能让你烦恼的问题:
答案 2 :(得分:0)
简短的回答是肯定的。只要消息不明确,您就可以在RS485上说出任意数量的协议。
我在共享的RS485线上有许多PV逆变器,还有许多其他传感器,它们使用完全不同的协议。这两类设备共享同一条线路没有问题。