关于Modbus 转换的常见问题(一)
Modbus 协议已广泛运用于自动化应用。Modbus RTU 设备因部署和故障排查简便且成本低,使用者颇多。
然而,随着越来越多的工业化应用改用以太网,许多系统将Modbus TCP 应用于控制室的SCADA 上位机,导致Modbus RTU 协议与Modbus TCP 协议之间出现通讯问题。
此系列问题整理了Modbus转换的常见问题,我们将按期推出,敬请关注。
本期问题:为了把Modbus RTU 串口设备连接到以太网,需要使用特定的协议转换网关吗?只用一个串口设备联网服务器可以做到吗?
在解决这个问题前,首先您要了解您想在SCADA 上位机上使用哪个Modbus 驱动程序。您有4 个选择:
● SCADA 上位机配备Modbus TCP 驱动程序;
● SCADA 上位机配备Modbus RTU 驱动程序,且有内置串口;
● SCADA 上位机配备Modbus RTU 驱动程序,无内置串口;
● SCADA 上位机配备以太网封装驱动程序。
上位机配备Modbus TCP 驱动程序
这种情况下,请使用协议转换网关。有了网关,您就可以使用Modbus TCP 协议实现与Modbus RTU 设备的通讯。
在自动化领域,有许多“Modbus 网关”解决方案支持通过Modbus TCP 协议连接Modbus TCP slave 设备。当网关收到Modbus TCP 请求后,它会将报文包转换为一个Modbus RTU 报文包,并即刻传输至Modbus RTU 设备。
上位机配备Modbus RTU驱动程序,且有内置串口
如果您只是想要把现有的SCADA 上位机和Modbus RTU 设备连接到以太网,可选择此方案。如果您现有的SCADA 上位机带有内置串口,一对网关就可以帮您解决问题。
如图中拓扑所示,网关可以将Modbus RTU 报文包转换为Modbus TCP 报文包,然后再转换回ModbusRTU 报文包。但是,如果您的SCADA 上位机上没有内置串口,这个解决方案就不适用了,请您考虑选项3。
上位机配备Modbus RTU驱动程序,无内置串口
如果您想使用现有的SCADA 系统和设备,但是您的SCADA 上位机又没有内置串口,则可以使用“串口设备联网服务器”,为连接串口设备的远程串口设备联网服务器上的串口建立一个“虚拟COM 口”。
这一配置可以让您通过串口设备联网服务器访问远程串口设备,如同SCADA 上位机本身就有一个COM 口。串口设备联网服务器将在您的SCADA 上位机上安装“虚拟COM 口驱动”,来创建一个“虚拟COM 口”。
为启用虚拟COM 口,请务必将您的串口服务器配置为“虚拟COM”模式。所有传送至这个虚拟COM 口的数据,都将转送至串口设备联网服务器的远程串口。
所有调制解调器信号发送的指令,也会得到同样的处理。您可以像使用本地自带COM 口一样使用这一虚拟COM 口,所以您可以直接将Modbus RTU 请求传送到COM 口,就像有一个真实的COM 口存在。
上位机配备以太网封装驱动程序
您的SCADA 上位机上没有内置串口,您又不想安装“虚拟COM 口”驱动程序,您可以考虑使用“以太网封装”驱动程序。但是您的SCADA 软件必须能够支持“以太网封装”驱动程序,而事实往往并非如此。
一般来说,如果您对串口和TCP/IP 有深入的了解,那么“以太网封装”驱动程序会是最佳选择。
对于本方案,您需要一个可选“原始套接字模式”或“隧道模式”的“串口设备联网服务器”。这样一来,当SCADA 将Modbus RTU 报文包发送至现场设备时,上位机和串口设备联网服务器之间无需任何协议,就可以通过透明的TCP/IP 或UDP 通讯来连通。
由于Modbus RTU 使用区间超时来决定报文包的终端,因此串口设备联网服务器必须配置得当。如果Modbus RTU 报文包被分成了两个或以上的TCP/IP 或UDP 报文包,可能会造成通讯问题。
如果您不能恰当处理串口设备联网服务器与以太网网络之间的报文传输,那么网关解决方案(选项2)或虚拟COM 驱动解决方案(选项3)可能更适合您。
尽管串口设备联网服务器也能把Modbus RTU 设备接入以太网,网关解决方案(选项2)却几乎可以满足任何系统的要求。您的上位机必须支持Modbus TCP连接,但这不是问题,因为Modbus TCP 很受欢迎,已得到广泛使用。在下列情况下,您需要使用特定的网关解决方案:
1. Master 设备多或冗余
以太网不仅支持远程访问连接,还支持同时建立多个连接。多数网关最多可支持32 个连接接入,这就意味着最多可以有32 台SCADA 上位机同时访问Modbus RTU 设备。
在这种情况下,串口设备联网服务器很难提供网络冗余,因为多数串口设备联网服务器不支持连接多个master 设备,但是使用网关就不会有这个问题。
2. 多个Modbus RTU 设备使用单一连接
有时您可能想通过与SCADA 上位机建立单一连接来查询多个Modbus RTU 设备。这时,网关是唯一可以处理路由机制的解决方案。
您可以使用多串口网关,经过配置后确保网关根据特有的slave ID 将Modbus请求传达给正确的串口。而串口设备联网服务器无法满足如此复杂的要求。
旧的Modbus RTU HMI 和新的Modbus TCP SCADA 同时访问设备
尽管以太网连接能提供易于部署的远程访问,但有时您可能想要保留现有的本地HMI 连接。问题是设备上的串口已经与网关连接,所以没有多余的串口可以用来连接HMI。
在这种情况下,一些网关提供的“串口重定向”可以为您解决这一问题。“串口重定向”与路由器非常相似,依靠这一功能,网关就可以根据 slave ID 在不同的串口间传输请求。
总结
Conclusion
对于串口转以太网通讯,有多种不同的解决方案。一些解决方案相当简单,比如采用透明模式进行串口和以太网端口间的数据传输,但是如果您需要处理Modbus 等工业协议,那么选用特定网关通常会是一个更好的选择。特定网关可以长期提供稳定通讯,并且可以识别Modbus 报文包进而恰当处理整个报文包。