冗余ModbusTCP转DNP3.0网关方案
背景
在管道SCADA系统中,调度中心的通信协议一般采用DNP3.0或IEC104作为全生产SCADA系统的通信协议,现场各站场采用的是Modbus TCP协议作为现场通信协议。基于现场与调度中心间不同的通信协议,需要在各现场对通信协议进行转换,这就需要在每个现场布置协议转换网关。而协议转换网关作为调度中心与现场的连接节点,其长期稳定运行就凸显重要。
仪长线SCADA系统的协议网关采用的是PROLINX网关。该网关为单网结构,数据转发最大为500个数据点。其最大的两个缺点:一是数据转发量太小,大点的现场需要配置多个网关;二是单网结构,无法实现网络冗余。虽然在工程中做了多种尝试,但依然无法实现可靠的冗余功能。
基于仪长线系统的方案缺陷,同样由系统集成商FOXBORO提出采用SCD5200RTU的替代方案,来实现DNP网关冗余。但在实现中,发现SCD5200的第二个网口无法实现广义网络的访问,即只能在本地局域网内访问,所以虽然实现了部分冗余功能,但在数据同步,网络冗余方面,依然无法实现真正的冗余。但由于没有更好的解决方案,所以采用SCD5200的网关方案,一直沿用。
基于解决DNP网关完全冗余,实现SCADA系统的安全稳定运行的考虑,上海蓝昱电子科技有限公司长期跟踪国内外最新相关技术及产品,并开发出包括DNP3.0和IEC104协议在内的冗余型协议网关,经过长时间的内部测试和现场应用测试,使其完全满足DNP网关的完全冗余及大数据量要求,易用性及长期稳定运行也得到验证。
冗余DNP协议网关
该网关由两个带冗余硬件的模块XGW-5002-MBT-DNP成对构成,保证模块的高可用性。该模块提供两个网段的网络接口(RJ45),每个网口均能提供Modbus TCP、DNP3.0或Ethernet/IP、IEC104等协议。内置冗余功能,工业环境温度,支持高达20000个分布IO。其模块见下图。
模块实物
两个模块通过两个网口进行冗余心跳监测,其内置的冗余功能根据两个网口的心跳信息实现两个模块的互为冗余,任何一个网口出现问题均不影响冗余功能。在冗余状态下,主控制器的内部实时数据全部实时备份到备用模块数据库中,实现两个模块数据的完全同步冗余。与PLC的通信,通过A、B网络的通信状态,由逻辑实现A网段和B网段的冗余切换,并给调度中心提供与PLC的通信状态监测点。根据控制器主备状态及启动状态,自定义点状态,实现与PLC通信写数据功能的回读功能,以此实现在站控或中控时的数据同步和无扰动切换。具有Comm IP功能,无论两个模块如何切换,调度中心均能通过唯一IP与主控制器建立通信。内部功能见下图示意:
从上图可以看到,冗余DNP协议网关通过与PLC建立冗余通信,两模块的硬件及实时数据库冗余,并在两个网段的网口上建立DNP协议监听端口,实现DNP协议的冗余通信。
测试方案及功能测试结果
1、 测试环境搭建
在上海蓝昱试验室搭建了以下图示的试验环境,为了贴近现场实际应用,特别搭建了与现场一致的网络环境。
使用两个XGW-5002-MBT-DNP模块,配置成冗余系统。网络配置为DNPA的两个网络配置成192.168.1.21及192.168.2.21,DNPB的两个网络配置成192.168.1.22及192.168.2.22,冗余Comm IP配置为192.168.1.23及192.168.2.23,其中两个模块的冗余心跳监测网口为192.168.1.0网段和192.168.2.0网段。
从施耐德PLC产品代理公司借用一套QUANTUM 67160,建立目标PLC通信系统。PLC的两个网络配置为192.168.1.13及192.168.2.13。
在SUN T5120服务器上安装Solaris 10操作系统,两个网络配置为172.20.1.12及172.20.2.12,安装FOXBORO公司的iaSCADA V9 DEMO版本的SCADA软件,模拟调度中心SCADA环境。
采用思科1811路由器及3560交换机搭建网络环境,模拟调度中心、站控及广域网网络环境。
在搭建好的测试环境中,利用集成工具软件ICC-Studio配置好冗余系统配置,并下载到两个控制器模块中。利用UNITY PRO软件,建立PLC的实验配置,并下载到PLC中,同时利用该软件进行在线监视。利用安装好的iaSCADA软件,建立试验测试所需要的通道及数据点配置。由此,开始功能测试。
2、 功能测试项目及结果
根据上述的测试环境,对下列功能项目进行了反复测试和验证,同时进行了长达1周的稳定性测试,在获得的试验数据的基础上,分析得出以下结果:
序号 | 测试项目 | 测试结果 |
一 | DNP网关本身冗余性能测试 | |
1 | DNPA控制器断电 | 自动切换到DNPB为主控 |
2 | DNPB控制器断电 | 自动切换到DNPA为主控 |
3 | 拔除DNPA控制器第一(二)网口网线 | 自动切换到DNPB为主控 |
4 | 拔除DNPB控制器第一(二)网口网线 | 自动切换到DNPA为主控 |
5 | CommIP:DNPA为主控制器时 | CommIP绑定在DNPA上 |
6 | CommIP:DNPB为主控制器时 | CommIP绑定在DNPB上 |
7 | LED状态指示 | 主控制器A灯绿闪,备控制器B灯黄闪 |
8 | 实时数据库同步 | 两个控制器的YNC同步灯绿闪 |
二 | DNP网关与PLC通信 | |
1 | DNPA为主控时断开PLC A网段 | 与PLC通信自动切换到B网段 |
2 | DNPA为主控时断开PLC B网段 | 与PLC通信自动切换到A网段 |
3 | DNPB为主控时断开PLC A网段 | 与PLC通信自动切换到B网段 |
4 | DNPB为主控时断开PLC B网段 | 与PLC通信自动切换到A网段 |
5 | PLC重新上电时 | 自动建立连接,与PLC数据自动同步 |
6 | DNP网关两模块同时掉电后恢复 | PLC能自动建立与主控制器连接,并同步所有数据到控制器实时数据库中 |
7 | 站控、中心控制状态切换时 | 站控状态下自动从PLC中同步数据 |
8 | DNP网关与PLC通信链路 | 只有主控网关与PLC建立唯一通道 |
三 | DNP网关与iaSCADA通信 | |
1 | DNPA为主控时断开路由器 A网段 | iaSCADA能正常刷新PLC数据及控制 |
2 | DNPA为主控时断开路由器 B网段 | iaSCADA能正常刷新PLC数据及控制 |
3 | DNPB为主控时断开路由器 A网段 | iaSCADA能正常刷新PLC数据及控制 |
4 | DNPB为主控时断开路由器 B网段 | iaSCADA能正常刷新PLC数据及控制 |
5 | DNPA与DNPB主备切换 | iaSCADA能正常刷新PLC数据及控制 |
6 | 当iaSCADA连接DNP网关A网段时,断开PLC的A网段 | iaSCADA能正常刷新PLC数据及控制 |
7 | 当iaSCADA连接DNP网关B网段时,断开PLC的B网段 | iaSCADA能正常刷新PLC数据及控制 |
8 | 断开T5120 A网段 | iaSCADA能正常刷新PLC数据及控制 |
9 | 断开T5120 B网段 | iaSCADA能正常刷新PLC数据及控制 |
10 | 当DNPA主控时掉电 | iaSCADA能正常通过A\B网段通信DNPB |
11 | 当DNPB主控时掉电 | iaSCADA能正常通过A\B网段通信DNPA |
3、 主要性能比较
根据测试结果,与现有在现场应用的SCD5200网关比较,有如下特点:
a. 该DNP协议网关与PLC通信只建立一个通信通道,当该通信通道发送通信失败时,由DNP协议网关通信控制逻辑自动切换到另外一个网段建立新连接,保证了数据的唯一性和减少PLC通信负担。SCD5200是采用一个设备连接一个网段的方式,每个SCD5200均与PLC建立通信连接,大大增加了PLC负荷,同时两个SCD5200数据库不同步,数据不唯一。
b. 该DNP网关在单网络故障、本身单模块故障及PLC单网卡故障等同时存在时,DNP网关依然能够通过其完备的冗余性能保证中心与PLC的通信;SCD5200网关由于一个网段连一个SCD5200的方式进行冗余,当存在两点以上多点故障时,中心即与PLC失去通信;当iaSCADA通过A网段与SCD5200通信,单PLC的A网卡存在故障时,该类型的单点故障也使中心与PLC失去通信,失去冗余功能。
c. 该DNP网关配置非常简单,通过简单添加通信参数,设置扫描和写地址区域就可完成配置,冗余功能通过简单的选择即可完成;有状态指示LED和友好的远程下载监视工具,方便日常巡视和系统集中维护。SCD5200配置由于采用标签方式组态,每个点都需要建立标签,同时需要对每点DO做复位处理,组态及维护工作比较复杂。
d. 该DNP网关与PLC交换数据的速度非常快,可以做到最快10ms的交换速度,实时性能非常好。SCD5200与PLC交换数据的速度最快为1S,实时性能较差。
e. 当调度中心与DNP网关通过A网连接时,发生PLC与交换机间A网故障,该DNP网关将自动切换到B网与PLC进行通信。但在使用SCD5200作为网关时,调度中心由于固有缺陷无法监测到SCD5200与PLC的通信情况,而认为网关工作正常,并不会切换到B网,造成了调度中心与站控系统假连接的问题,从而造成调度监视和判断错误;在特殊的运行工况下,该问题有可能造成生产事故。