叶李锋,林高基,欧阳军,颜野迪,毛军辉
(1.净化控股集团股份有限公司,浙江 台州 317605;2.西安财经大学商学院,陕西 西安 710000)
随着我国水资源浪费和水源污染日趋严重,水资源保护和净化处理势在必行。2015年开始,国家鼓励水行业发展智慧水务,旨在采用信息化手段进行节水净水。在此背景下,水厂的运营目标已不仅局限于单纯的供水量及水质达标率,更致力于通过大数据和建模,结合人工智能算法,解决日常“三耗”(水耗、药耗、电耗)过高及设备使用寿命低的问题。由于部分水处理设施建设运行年代久远,供水系统存在不同程度的数据不完整、功能不充分的问题,使得必要信息不能相互流通,变成“信息孤岛”,即使在同一网络环境下也不能实现实时数据共享,更无法实现智慧应用。对标完整的智慧供水信息系统,现有水务信息化程度仍有较大提升空间。在水厂供水系统现有基础上对水务系统进行改造升级,使其从信息化迈向智慧化。即在“互联网+水务”的思维下,运用先进计算机和互联网技术,对供水生产、管网运行过程的海量数据进行感知、分析、处理与挖掘,增强对供水系统的可控性和可预测性,充分发挥其辅助决策作用,以智慧指导生产、输配、管理和服务。
水厂的数据安全需要得到重视。2000年澳大利亚马鲁基多尔污水处理厂SCADA系统遭受非法入侵攻击,发生46次控制设备功能异常事件,导致数百万公升的污水进入了地区供水系统。2007年加拿大某水利SCADA控制系统被入侵者故意安装破坏软件致使控制萨克拉门托河水调度系统失灵[6]。2012年美国污水SCADA系统受网络攻击,PLC关闭泵站失败,导致2百万加仑未经处理污水直接排入提华纳河,最后花费9200万美元治理污染;2019年我国多地污水处理SCADA系统遭受不同程度的WannaCry和挖矿病毒攻击,导致许多污水处理厂的工业主机出现蓝屏、反复重启、数据被加密勒索等情况;2020年以色列国家排水管网系统遭受境外网络攻击,以色列水利局告知企业“重点更改运营系统和液氯控制设备”的密码。这两类系统遭受的攻击最多,特别是Stuxnet病毒,这种病毒是首个专门针对工业控制系统编写的破坏性病毒,其中含有Fanny蠕虫病毒的漏洞入侵技术,它无需借助网络连接便能够利用对电脑操作系统和上位机组态软件平台系统的7个漏洞进行攻击并控制操作设备运行开关[7]。
本研究以智慧水务平台建设为目标构建水厂的数据体系,针对各类水厂不同方式的自控系统提出对应的数据采集流程,最终建立通用的实时数据采集方法,该方法已在福建、安徽、湖北等地区的多个水厂进行实际应用,有效性得到充分检验。
数据采集工作需要按照水厂的基本工艺结构进行确定。目前绝大多数水厂工艺结构如图1所示,主要工艺点包括取水泵站、平流沉淀池、滤池、清水池、加药(PAC)间、加氯间、送水泵房等。主要流程为原水通过泵站从水源地输送至沉淀池,经加药絮凝沉淀和加氯消毒后流向滤池,滤池过滤流到清水池,最后通过送水泵和配水管网输送到千家万户。
图1 水厂工艺结构图
采集的数据主要分为仪表数据和设备数据,仪表数据主要包括进出水水质、流量、压力、加药流量、滤池清水池液位等,设备数据主要包括电流、电压、故障信号等泵类数据和开度、状态、故障等阀门类数据。具体数据及单位见表1。
表1 常见水厂运行数据单位
水厂数据来源主要包括各种仪表和设备,数据采集通过通讯协议方式连接PLC或单片机,再经过网络传输至上位机。还有一部分仪表和设备直接通过本体通讯协议配合工业网关进行数据传输,水厂网络系统架构如图2所示。
图2 水厂网络系统架构
由图2可知,水厂数据由厂区内数据、厂区外管网数据、末端或中端的增压泵站数据三大基本功能块构成。厂区内数据通过PLC进行采集和控制,数据传输网络采用内部以太网,属于生产控制系统;厂区外管网数据包括管网压力流量等,这部分数据通过仪表自带的传输单元传输到公有云或本地私有云;末端或中端的增压泵站数据,主要包括压力、浊度及余氯等,这部分数据通过以太网上传到公有云或本地私有云。
常见的水厂数据通讯协议包括OPC通讯协议及延展OPC UA通讯协议、Modbus通讯协议和CAN总线通讯协议。
(1)OPC通讯协议是为自动化行业不同厂家的设备和应用程序能相互交换数据而定义的通用接口函数。有了OPC就可以使用统一的方式去访问不同设备厂商的产品数据[1]。OPC UA协议是在OPC基础上制定的新OPC标准,只使用一个地址空间就能访问之前所有的对象,而且不受操作系统类型限制。由于OPC UA是从传输层Scoket以上进行改进,使得协议灵活性和安全性比OPC都有较大程度提升[2]。
(2)Modbus是一个工业通讯协议,通过公用线路或局部专用线路连接而成。其系统结构既包括硬件也包括软件[3],不仅是一个请求/应答协议,还提供功能码规定的服务。
(3)CAN总线通讯协议是ISO国际标准化的串行通讯协议,是一种有效支持分布式控制或实时控制的串行通信网络[4]。具体分类包括CANopen协议、SAEJ1939协议和devicenet协议等。
水厂数据采集方式大致分为PLC硬件采集、PLC软件直采、上位机软件采集(本身自带历史数据库存储)3类。
水厂自动化控制和数据读取绝大多数使用PLC进行操作,每个功能单元由独立的PLC系统控制。水厂设备硬件状态接入DI模块(即数字信号输入模块),设备启动与停止控制命令接入DO模块(即数字信号输出模块),水泵变频器指定频率接入AO模块(即模拟信号输出模块),仪表数据和水泵变频器反馈频率接入AI模块(即模拟信号输入模块)。有些仪表和水泵变频器通过485协议直接与PLC通讯端口进行通讯,少数水厂生产系统通过DCS系统进行控制,两者主要区别在于分散独立控制和集中控制(也可以按照控制点位数量进行区分)。
2.1.1PLC硬件采集
PLC硬件采集不需要编程,通过外部访问协议连接同品牌PLC或通过多功能网关盒子连接PLC进行采集。最常见的品牌例如西门子,其中各种大中微型不同型号PLC之间可以通过同一环网进行双边S7通讯,如图3所示。S7通讯的特点是:用于西门子S7系列PLC之间的通信,不能用于与非西门子的设备通信;S7支持多个S7系列PLC之间的通信;除了适用于西门子S7系列PLC之间的通信外,还可用于与上位机的通信。此时就可以搭建同品牌PLC进行统一采集,通过工业网关汇总后将整个自动化运营设备IO状态和仪表数据写入数据库。其优点在于数据汇总于同一PLC,不仅方便管理数据,还不影响整个环网正常运行。在现实水厂自动化系统中S7通讯应用广泛,例如绝大部分滤池单池体控制是通过小型PLC S7-200CN独立运行,只需调用PUT/GET指令就可以与总柜互相传送数据,无需额外编写程序。且PUT/GET指令并不需要在两端PLC内进行部署,只需要在专门采集数据的PLC硬件上面调用GET指令即可,指令简单且传输稳定。AB的PLC可以建立Produce/Consume(生产者/消费者)标签进行数据交互。其特点包括:生产者就是需要采集的PLC变量数据,用于发送变量数据给消费者(接受者);无需编写程序,只需建立标签变量即可进行数据交互;可以通过背板传送,也可以通过ControNet网络和EtherNet/IP网络传送,但传输工作只能在同一背板或网络中进行;标签变量必须创建在控制器区域,且Produce标签和Consume标签数据格式必须一致;标签变量的类型只支持单个DINT或DINT数组、单个REAL或REAL数组,或者UDT(用户自定义结构数据),也可以进行MSG指令进行采集[5]。同样,大多数品牌PLC都能通过Modbus TCP主从站功能进行数据采集,统一采集汇总到一台PLC就可以通过网关存入数据库。日系PLC有MC协议FINS UDP/TCP协议,松下有松下以太网协议,施耐德可以用DTM协议或调用read_var,write_var功能块。
图3 S7通信模型
除使用厂家PLC通信来进数据采集外,还可以添加工业网关进行采集数据转存。工业网关作为工业物联网解决方案中的数据采集模块,其主要功能就是采集设备的相关参数信息,通过现场网络(如4G、3G网卡、wifi、有线以太网)来实现数据的传输,最终实现对设备全流程的监测及数据采集。
2.1.2PLC软件直采
PLC软件直采通过中间通信软件进行数据中转,最大特点是无需编程或在PLC里调用功能块。其中最典型的就是OPC软件,它具有两端接口,一端访问数据源头PLC,另一端对外提供数据。OPC软件因简单易用而应用广泛。但随着工业技术发展,从便捷性、安全性、系统兼容性及效率性上来说,OPC软件总体性能已逐渐落后,在局部领域中也不再具有经济性。除了OPC通信软件外,还有一些专业的中间通信软件对比传统OPC软件增加了许多便捷功能,如自带驱动、多样采集、运行稳定、缩放运算、转存功能、安全兼容等。中间通信软件运用最多的功能就是自带驱动采集PLC数据,目前市场上PLC且品类繁多及地区使用习惯导致通信驱动各有不同,本体软件自带驱动能够很大程度上解决这个问题,再加上转存功能,基本满足采集需求。
2.1.3上位机软件采集
上位机软件采集通过上位组态软件自带的通信功能对软件内的数据变量进行采集,其中最直接的方法就是通过OPC软件的端口读取其内部变量,大部分上位组态软件是OPC服务器端口默认打开,或者需要在上位组态软件里设置下OPC服务器端口启动权限。上位机组态软件具有实时数据转发功能,用来采集并储存水厂实时数据,并响应SQL请求提供历史数据报告。实时数据库是使用Microsoft SQL Server作为数据库引擎,不需要操作人员熟练掌握SQL语句即可将数据储存和采集分开,且能够在异地部署,从本地储存转发到远程InSQL储存,采集过程如图4所示。另外可以在上位机组态软件内进行脚本编写,将数据变量直接写进数据库里。以INTOUCH举例,第一步新建配置参数,在数据库里新建一张数据表然后将需要报表记录的变量和定义参数全部建立;第二步建立链接关系,在INTOUCH里对应SQL的数据表进行配置关系链接和脚本编写;第三步写入时间条件,在编辑条件脚本里以SECOND或HOUR写入。一小时插入一条数据的示例如图5所示。
图4 Historian采集数据
图5 脚本每小时写入数据
除上述3种方法采集外,还有一种PLC编程与外部建立以太网连接、通过收发指令进行数据交换的方法。实现这种方法需要通过硬件配置建立通信通道,然后编程进行收发。这类方式需要采集人员同时具备计算机编程和PLC调试能力,难度较大;在调试完成后,增加变量则需要从上到下全部更改,实务中不常使用这种方法。
对于水厂数据变量的采集,如何保障数据采集和传输过程的网络安全至关重要。首先要对水厂现场网络结构、主体设备、系统软件、网间连接器等运行状况进行安全调研和分析,分析出系统内部网络的关键节点,确定水厂现场采集存在的安全隐患和安全防护问题。水厂系统是一个以PLC控制为基础的控制系统,为规避水厂及管路数据采集中的联网安全风险,需要针对PLC通讯所使用的Modbus TCP协议内容进行深度解析和防护,预防工业网络安全生产事故的发生。调度中心操作员站、数据采集服务器、历史数据服务器等采用Windows操作系统,在勒索、蠕虫等病毒的攻击防护层面存在不足,需要针对工业主机的安全性进行专项加强。现提出如下解决方案。
(1)部署站点防火墙。在现场调度中心和各个子站之间部署防火墙进行网络安全隔离和防护,提升各个子站的安全防护能力。
(2)设置安全区域。将每个子站作为单独安全域,在各个子站PLC/采集仪等工控设备的网络端口部署防火墙进行访问严格控制,提升对重要控制设备的安全防护等级。
(3)提升主机防护。在现场调度中心、各子站、现场操作员站、数据采集服务器、工程师站上部署工控主机卫士,对各个厂区自动化控制的主机进行安全防护。
(4)加强安全协同。在现场调度中心统一部署安全管理平台,对整个厂区自动化控制系统网络进行统一管理配置及维护,便于消息汇总及故障解决。
本方案下的水厂安全防护网络架构如图6所示,该方案提升了数据采集过程安全性,减少了被入侵风险,可以有效防止来自内部误操作和外部恶意干扰。
图6 安全防护示意图
上述方法都是借助成熟的软件和驱动进行数据采集,灵活配置即可安全快速地将水厂生产数据采集到所指定的数据库里。具有在各种复杂工况环境简单易操作、安全可靠等优势。
案例一为在福建某市的智慧水务系统建设过程中,需要对3个自来水厂进行数据采集来达到数据集成目的。3个水厂的自动化系统各不相同,其中A水厂是新建的集成一体化自来水厂,B水厂是新建的常规工艺的自来水厂,C水厂建成投产时间较长并在不断升级改造。
A水厂一体化设备采用Siemens S7-200smart系列PLC,上位机组态软件采用北京亚控组态王品牌,总体结构简单,但在前期运营过程中业主并未保存PLC变量点位表和IP地址表,通过运行组态王软件OPC服务端则可以使用采集软件读取OPC内数据,变量名可以对照组态软件的显示内容进行辨别和分类,然后利用采集软件转发SQL功能将变量数据储存在数据库里。B水厂设备采用Siemens S7系列PLC,上位机组态软件采Wonderware品牌,由于其已编写脚本将数据存入SQL数据库里,只需读取即可。C水厂设备采用Siemens S7系列PLC,上位机组态软件采Wonderware品牌,但其存在三期建设时间跨度较长,其中一期工程于1998年5月建成投产,二期扩建工程于2009年建成投产,三期工程于2018建成投产。Siemens老式设备存在连接端口有接入端台数限制问题,使得无法接入更多端口进行数据采集,还同时存在取水泵站没有连接到厂区环网的问题,相关解决方案为:在取水泵端加设工业网关盒子进行采集数据,老式设备通过组态软件写入数据库来进行采集,其余设备则通过采集软件驱动采集,全部储存到统一数据库里。
数据采集前,已在各个PLC端及上位机上加装了工业防火墙保证采集数据中的安全,还将原来端口映射采集全部改为主动发送数据。这样保证了3个水厂的数据采集安全又高效。
案例二为西安某老旧水厂自动化系统改造过程中需要进行数据采集。现场只有1台工控主机为Windows XP系统,控制设备采用老式且已经停产的200 CN PLC,上位机组态软件采用组态王。本工程中由于设备过于陈旧,引起了以下3个问题:PLC端口IP网口点位使用情况不明,工控柜不方便添加工业盒子,工控主机配置较低无法安装本地数据库。采取的解决方案是在工控主机上设置odbc连接远程数据库,通过采集软件OPC读取组态王数据,再进行odbc数据转发,数据类型与名字通过组态画面进行识别和分类。
经过上述操作将采集来的数据存入数据库,接着可以依靠HTML+css+javascript的方法将数据库里的水厂数据进行可视化操作,这样一个基础的智慧水厂系统如图7所示。
图7 智慧水厂系统
本文通过对现有水厂的工艺流程、自动化系统和通讯协议进行描述,针对水厂复杂自控系统的数据采集和集成提出了软硬件相结合的方法,该方法将数据采集从传统编写端口程序采集转换到利用现代工具进行采集。通过将多种工具组合使用和在数据采集和集成过程中添加工业防火墙的措施,完成了各种复杂情况下快速安全地进行水厂数据采集任务,并将所提方法在福建、陕西等地水厂进行实际运用,验证了该方法的可行性。相比于传统方法,本文所提方法具备安全和高效等优点,为智慧水务建设过程中的数据采集和数据集成相关发展提供了有价值的参考。在接下来的研究中,将从降低数据获取成本以及节约数据采集时间的角度出发作进一步的探究。