关于Modbus 转换的常见问题(二)
在上期我们介绍了关于:是否需要使用特定的协议转换网关将Modbus RTU串口设备连接到以太网,并按4种情况为您做了详细说明。本期我们将继续为您介绍Modbus转换过程中常见的问题。
本期问题:如果我要将多个Modbus RTU设备连接到一个网关的不同串口,TCP的连接架构应该如何设置?我是否可以使用单一TCP连接,还是必须为每一个串口建立一个TCP连接?
针对多个Modbus RTU 设备分别连接到一个网关不同串口的情况,大多数网关都能提供灵活的解决方案来规划TCP 连接架构。主要有三种连接模式,您可以根据路由机制进行选择:
● 每个串口都连接一个TCP端口
● 为每个串口都指定一个IP地址
● 使用路由表
01.每个串口都连接一个TCP端口
这种网关拓扑最为常见。在这种模式下,每个串口都将连接一个TCP端口。例如,TCP端口4001对应串口1,TCP端口4002对应串口2,以此类推。当需要与串口1上的Modbus RTU设备进行通讯时,在端口4001上建立TCP连接,网关会在TCP端口4001与串口1之间的TCP 连接上传输Modbus报文包。
在这种拓扑中,SCADA 驱动需要建立多个ModbusTCP 连接。
02.为每个串口指定一个IP地址
这种方式与第一种方式非常类似。区别是,在这种方式中,网关将通过IP地址来识别串口。例如,为串口1指定IP地址.2.1,为串口2指定IP地址.2.2,以此类推。当需要与串口1上的Modbus RTU设备进行通讯时,通过TCP端口502建立与IP地址.2.1的TCP连接。网关会.2.1:502与串口1之间的TCP连接上传输Modbus 报文包。
在这种拓扑中,SCADA驱动也需要建立多个Modbus TCP连接。虽然这种拓扑需要指定多个IP地址,但在Modbus TCP客户端只支持TCP端口502的情况下,第1种方式不适用,应采取第2种方式。
03.使用路由表
这种拓扑中,SCADA使用单一的TCP连接与多个设备进行通讯。您需要对网关和路由表进行合理配置,以保证每个请求都能发送至正确的串口。例如,串口1处理Slave ID 1~10的Modbus 报文包,串口2则处理SlaveID 11~20的报文包,以此类推。
这种拓扑使用的是单一TCP连接,所以通讯速度会比第1种和第2种方式慢。但是,如果您的预算有限,或者这种方式的效率对您来说尚可接受,那么这种单一TCP连接的模式是一个不错的选择。
注意
Attention
如果多个设备连接同一个串口,或者多个串口使用单一TCP连接,Modbus的轮询间隔时间需要拉长。如果您希望提高轮询速率,就需要建立多TCP连接,但需要确认这种多TCP连接不会增加您的SCADA统的成本。