RS485由于是单双工方式的总线,为了防止总线上的竞争一般只能有一台主机,并且采用一次主机询问,一次从机应答的方式。但是有的时候,我们我们确实需要多台主机去监控多个RS485设备,比如需要两台电脑都可以监控相同的几个RS485设备,而且最好共用RS485总线。
这个问题虽然在实际中经常碰到,但是没有很好的解决。其难点在于,2台主机是完全独立的,那么它们没有协调机制,如果2台主机同时询问从设备,那么必然引起RS485总线上的数据冲突。
由于RS485总线本身的问题,用RS845无法解决以上冲突问题。使用ZLAN5142转换器(如上图转换器1所示)可以先将RS485信号转换为网络(TCP/IP)信号。由于网络信号本身能够处理并发性,所以可以很好的解决RS485总线的冲突问题。
虽然从设备这端仍然是RS485,但是没有关系,因为ZLAN5142能够将接收的多个主机的数据进行排队,数据会暂时缓存在ZLAN5142内部,而不会从串口同时输出到RS485上。ZLAN5142支持同时10个TCP连接访问。
卓岚ZLAN5142的数据缓存功能是解决以上RS485多主机问题的关键因素,但是这还不能够完全解决问题,这是因为多主机还涉及到更为复杂的针对特定协议等待时间的定制化的排队机制。这也是就说普通的串口转以太网转换器是无法实现多主机RS485功能,就是卓岚普通的ZLAN5102也是不具备这个功能,RS485多主机必须选择具有特定的RS485多主机定制化程序的ZLAN5142型号.
如果主机是计算机,那么实现方法上基本上有3种方式:(1)用户将原来的打开COM口的串口通信方式改为TCP/IP的网络通信方式,采用基于socket的网络编程来实现。(2)将原来的基于RS485的Modbus RTU协议改为使用Modbus TCP协议,这是因为ZLAN5142具有Modbub TCP转RTU功能。使用该方法时,请在转化协议部分选择“Modbus TCP转RTU”。(3)最快捷的方式是在多台主机上使用虚拟串口,这样用户的原来的串口软件无需修改即可使用
如果主机是RS485设备,那么首先将多个主站RS485串口使用ZLAN5102转化为网络,然后再连接到ZLAN5142上,关于多个ZLAN5102和ZLAN5142的对联的方法,可以参考这里。如果多个串口比较近也可以使用多串口服务器ZLAN5400来代替多个ZLAN5102。