APP下载

分布式污水处理厂远程监控系统的开发

2016-11-22薛美盛李先知孙胜杰

化工自动化及仪表 2016年7期
关键词:指令客户端远程

薛美盛 李先知 孙胜杰 袁 鑫

(中国科学技术大学信息科学技术学院,合肥 230027)

分布式污水处理厂远程监控系统的开发

薛美盛 李先知 孙胜杰 袁 鑫

(中国科学技术大学信息科学技术学院,合肥 230027)

采用OPC协议和ZMQ协议,开发了一套分布式污水处理厂远程监控系统。系统主要包括数据采集、存储、发送及接收指令等几个主要模块,给出了这几个模块的设计方案。在各污水处理厂配置一套远程监控节点,实现了现场数据的采集、存储和远程发送,同时可方便地接收远程指令。

远程监控 OPC ZMQ

随着计算机技术和自动控制理论的发展,现代工厂越来越多地采用计算机进行控制[1,2]。在污水处理现场,基本上实现了全自动控制,但传统的工业控制网络主要是针对现场设备进行监控。工业控制网络分布在不同现场,不能直接与互联网连接,导致各设备数据和资源比较封闭,形成信息孤岛[3]。这将不利于企业的统一管控,控制效率低,给企业的管理带来了极大的不便。

将工业控制网络和互联网进行连接,实现工业控制网络远程通信,利用网络接口将工业控制网络的各种信息发送到远程监控端,实现统一控制,提高工业控制效率。笔者开发的远程监控系统,在现场以OPC协议实现数据的采集,并将数据存在本地数据库中,利用服务器端ZMQ协议,将数据发送到远程服务器,并将接收的远程指令写到工业控制现场。远程监控端根据不同的FactoryID来区分不同的工业控制网络,并将控制指令写到不同的工业控制网络现场,对分布式污水处理现场真正地实现了远程监视和控制。

1 OPC技术概述①

OPC协议标准包括OPC数据访问、报警与事件及历史数据访问等。OPC技术基于Windows的OLE、COM和DCOM技术[4],为硬件厂商和应用软件开发者提供了一套标准接口。OPC数据访问技术把硬件厂商和软件开发商分离开来,提供了从不同的硬件设备和数据库提取数据的标准方法。OPC采用客户端和服务器端通信模式,硬件开发者通过提供OPC服务器,使任何带有OPC接口的客户程序都可采用统一的方式,对不同的硬件设备数据进行存取。采用OPC技术开发工业控制系统已成为一种趋势,在短短的几年内得到了越来越多的硬件厂商和软件开发者的支持,成为了工业控制软件的标准[5]。

2 远程监控平台的设计

2.1数据采集模块

在远程监控系统中,工业控制网络现场数据的采集包括OPC服务器数据节点和数据采集传输仪数据节点。现阶段污水处理基本上都采用计算机监控系统,比较常用的监控软件有西门子的WinCC、三维力控的ForceControl和亚控的组态王[6]。该系统现场使用的组态软件是亚控的组态王6.53版本,组态王安装好以后就可以做OPC服务器,其OPC服务器的名称为KingView.View.1[7]。监控系统采用OPC协议和OPC服务器进行通信。数据采集传输仪采用广州某公司K37型环保数采仪,它和环保中心通过GPRS进行通信,同时本身带有两个RS-232接口,监控系统采用RS-232接口和Modbus协议同数据采集传输仪通信[8]。

系统使用C#开发OPC客户端,利用自动化接口和OPCDAAuto.dll开源组件[9]。开发OPC客户端的流程包括:枚举计算机上所有的OPC服务器名称、连接需要的OPC服务器、遍历该OPC服务器所有的Group、遍历Group下所有的Item[9,10]、选取自己感兴趣的数据节点。如果连接远程OPC服务器,还需要配置OPC服务器和客户端的DCOM。为了实现OPC服务器的冗余备份,还要填写备用服务器的IP地址和OPC服务器的名称。主程序中设置一个10s的定时器,对数据进行采集,将采集到的数据暂存到存储和发送队列中,供存储和发送模块进行调用。本项目是连接本地OPC服务器,无需对服务器和客户端的DCOM进行配置,连接界面如图1所示。

图1 OPC客户端连接界面

2.2数据存储模块

现场采用的数据库是微软公司的SQL Server 2008,它提供了两种数据库的连接方式,根据用户名和密码连接,也可以采用Windows验证进行连接[11]。在使用用户名和密码连接数据库时,需要指定数据库服务器的名称、数据库名称、数据库用户名和密码。存储之前先在数据库中建两个竖表,每个表的大小为800,并且以采集的时间作为表的主键。目前数据节点有1 280多个,随着数据节点的增多,当容量达到了设计上限,数据库会自动建立容量为800的新表。

2.3数据发送和接收指令模块

数据发送采用JSON格式,它是一种轻量级的数据交换格式,具有良好的可读性,可在不同平台之间进行数据交换[12]。笔者采用第三方开源组件Newtonsoft.Json.dll对数据进行JSON格式序列化[13]。随着数据节点的增多,数据量也在变大,故在数据发送之前先对数据进行GZIP数据压缩,减少带宽压力。为保证工业控制网络数据的安全性,在数据发送之前需要进行加密,采用的加密算法是AES对称加密算法,它是美国国家标准与技术研究所用于加密电子数据的规范,是一个迭代的、对称密钥分组的密码,可以使用128、192和256位密钥[14]。

远程服务器端采用ZMQ协议,它是类似于socket的一系列接口,跟socket的主要区别是,普通的socket是端到端的(1∶1的关系),而ZMQ却是可以N∶M的关系。BSD套接字是点对点的连接,但点对点连接需要显式地建立连接、销毁连接、选择协议(TCP/UDP)及处理错误等。而ZMQ屏蔽了这些细节,让网络编程更为简单。数据发送之前需要指定远程ZMQ服务器的IP地址、端口号,设置数据包的个数,发送周期、密钥和工厂的FactoryID。

现场接收的远程指令也为JSON格式,接收到的指令格式如下:

[“request”:“send_command”,”factory_id”:“jnshw_001”,“signal_id”:“auto_001”, “datetime”:“yyyymmdd hh:mm:ss”, “schedule_time”:“300s”, “command”:“shut”]

处理完现场指令向服务器发送确认指令如下:

[“ack”:“command_success”,“factory_id”:“jnshw_001”,“signal_id”:“auto_001”, “datetime”:“yyyymmdd hh:mm:ss”, “value”:”0”]

为确保现场和远程服务器之间通信正常,每10s由中控采集向远程网关发送一次心跳包。格式如下:

[“request”:“heartbeat”, “heartbeat_id”:“yyyymmdd_1”, “factory_id”:“jnshw_01”]

指令接收时序如图2所示。

2.4其他模块

日志的记录是软件开发中的重要组成部分。它可以记录下完整的时序逻辑,供开发人员尽快找到应用程序中的Bug,一旦在程序中加入了Log输出代码,程序运行过程中就能生成并输出日志信息而无需人工干预。该系统主要把日志分为错误日志和时序逻辑日志两个文件夹,文件夹的名字以日期命名,每天生成一个文件夹。日志记录使用的组件是Log4net,它是第三方开源组件,可以在系统出现异常时,根据保存的日志信息,查看当时系统的状态。在程序容易出现异常的地方使用try…catch语句,捕捉到异常,并记录到日志。

当初次启动系统的时候,系统会创建XML配置文件,用来保存系统的配置参数。主要包括用户数据库名称、OPC服务器的地址、ZMQ服务器的地址和端口及发送数据包的设置参数等。XML文件可以用来标记数据、定义数据类型,对于描述复杂的数据结构非常方便,但使用上比INI文件稍麻烦[15]。再次启动程序的时候,程序会自动从配置文件上查找相应的参数。程序的主界面如图3所示。

图2 指令接收时序

图3 程序主界面

在远程服务器端,将接收的数据绘制出实时曲线,可方便地监测某些变量是否满足要求,根据变量的变化趋势及时向现场发送控制指令。服务器端节点曲线如图4所示。

图4 服务器端节点曲线

3 结束语

远程监控系统基于OPC通信协议和ZMQ协议,将孤立的工业控制网络连接到互联网,实现了远程中心对分布式污水处理厂的实时监视和控制。系统包括数据采集、存储、发送及接收指令等几个主要模块,根据单元测试用例,对模块进行了单元测试。最终将开发的系统运行在工业控制现场,可在远程数据中心实时监控不同污水处理厂的数据,并向现场发送控制指令,给企业的管理带来了极大的方便。

[1] 任学勇,王鹏起,车颜喆,等.流化床式生物质快速热解设备监控系统的设计与开发[J].化工机械,2011,38(2):166~169.

[2] 童少为,施云贵.基于系列GE90-30 PLC实现的锅炉汽包水位监控系统[J].化工机械,2006,33(4):236~240.

[3] 李俊.基于TCP/IP协议的工业控制网络远程通信网关研究[J].自动化与仪器仪表,2014,(10):3~6.

[4] 李善宣.OPC技术在工业控制系统中的应用研究[D].成都:西南交通大学,2006.

[5] 顾志刚.一类基于OPC的工业控制系统的研究[D].杭州:浙江工业大学,2007.

[6] 马国华.监控组态软件的相关技术发展趋势[J].自动化博览,2009,26(2):16~20.

[7] 何新军,张明赞.基于组态王的污水处理系统通讯设计[J].化工自动化及仪表,2004,31(5):38~40.

[8] 骆冬松,李琼.基于GPRS的环保数据采集传输系统的研究与设计[J].工业仪表与自动化装置,2011,(2):22~25.

[9] 黄娟.基于C#的OPC数据通信的设计与实现[J].工业控制计算机,2013,26(11):14~15.

[10] 黄锦花,常喜茂.基于快速开发工具的OPC客户端的开发与实现[J].化工自动化及仪表,2013,40(7):894~897.

[11] 祁新安,侯清江.SQL Server数据库的运用研究[J].制造业自动化,2010,32(14):30~32.

[12] 高静,段会川.JSON数据传输效率研究[J].计算机工程与设计,2011,32(7):2267~2270.

[13] 王魁生,王晓波.利用JSON进行网站客户端与服务器数据交互[J].软件导刊,2010,9(3):147~149.

[14] 赵雪梅.AES加密算法的实现及应用[J].常熟理工学院学报,2010,24(2):105~110.

[15] 张学敏.XML设计方法研究[D].武汉:武汉理工大学,2006.

DevelopmentofRemoteMonitoringSystemforDistributedWastewaterTreatmentPlants

XUE Mei-sheng, LI Xian-zhi, SUN Sheng-jie, YUAN Xin

(SchoolofInformationScienceandTechnology,UniversityofScienceandTechnologyofChina,Hefei230027,China)

Through making use of OPC protocol and ZMQ protocol, a remote monitoring system for distributed sewage treatment plants was developed, in which, the modules for data collection and storage, data sending and receiving can be seen and the design scheme for these modules was presented; the remote monitoring nodes scattered over the sewage treatment plants can collect and store and send and receive field data, including the remote orders. The application of this system improves both management and control level greatly.

remote monitoring, OPC, ZMQ

2015-10-23

TH865

A

1000-3932(2016)07-0747-04

猜你喜欢

指令客户端远程
让人胆寒的“远程杀手”:弹道导弹
远程工作狂综合征
如何看待传统媒体新闻客户端的“断舍离”?
远程诈骗
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
中断与跳转操作对指令串的影响
基于汇编指令分布的恶意代码检测算法研究
一种基于滑窗的余度指令判别算法