王丹豪, 彭道刚, 张锐锋, 赵慧荣
(1.上海电力大学 自动化工程学院, 上海 200090;2.贵州电网有限责任公司 电力科学研究院, 贵州 贵阳 550002)
智慧电厂的本质是信息化和智能化技术在发电领域的融合,信息化和智能化的基础就是数据[1]。以发电厂厂级监控信息系统和分散控制系统为例,通常以用于过程控制的OLE(OLE for Process Control,OPC)作为现场设备数据信息的接口标准[2],基于此标准传输实时数据,构建电厂的信息化平台。OPC数据采集一般使用相关厂家的商业OPC客户端软件[3-6],存在模式单一、功能简陋、费用昂贵、采样频率低等问题,导致了后续系统开发成本高、周期长、可靠性差等后果,为智慧电厂的建设带来了一定的困难。
OPC标准已经应用多年,多种编程语言均支持OPC标准的开发。文献[7]提出了一种采用node.js语言开发的OPC客户端;文献[8]提出了一种基于C#语言开发的OPC客户端;文献[9]提出了一种基于JAVA语言的OPC客户端。
虽然很多学者采用了不同的语言进行OPC客户端的开发和实现[10-11],但大多数还停留在代码层级的实现。鉴于此,本文依据OPC实时数据访问规范(Data Access,DA)标准,采用JAVA编程语言,设计开发了一套基于OPC(DA)标准的通用工业数据采集和转储系统软件(OPC to Database,OTDB),很好地解决上述数据采集和转储过程中存在的问题。
在实际的工业信息化系统开发中,现有的OPC数据采集和转储系统软件主要存在以下问题。
(1) 未集成可视化交互界面,采集方式不灵活,用户体验差,普通用户难以使用。
(2) 转储类型单一,只能转储特定的数据仓库,或只能满足特定版本的数据仓库。
(3) 转储模式固定,只能以其软件固定的方式写入数据仓库,无法更改字段名称和数据表名称,难以满足系统的实际开发需求。
(4) 转储配置复杂,配置页面内容复杂,在采样点比较多的情况下,无法批量选择与更改,甚至存在一步做错就要全部重置的情况。
(5) 跨平台能力差,部分软件只能在特定的系统版本上运行,难以在不同的平台上使用。
(6) 容灾能力差,在服务器故障关机重启后,无法自动恢复数据的转储,导致数据大量丢失。
针对现有OPC数据采集和转储系统软件的不足,OTDB在设计研发过程中需要遵循的原则主要包括以下几个方面。
(1) 通过JAVA可视化技术,开发交互界面,丰富配置内容,为用户提供简单自由的配置方式。
(2) 提供多样的数据仓库支持,包括常用的MySQL和Sql Server数据仓库系统,并且提供同一数据仓库的不同版本之间的支持。
(3) 通过简单的文件配置即可完成不同的数据表转储任务,并提供自定义的数据库名、数据表名、字段名更改,可动态地创建或重建转储库和转储表。
(4) 通过简单配置项可生成配置模板,提供高自由度的转储配置方法,实现批量配置修改,降低配置复杂度。
(5) 支持不同的系统平台进行安装和部署,具备优异的跨平台能力。
(6) 支持系统软件开机自启动,可配置开机自动转储数据仓库的功能,在服务器故障恢复时能自动恢复数据转储任务,减少数据丢失,降低运维的复杂度。
(7) 提高系统的数据采集能力,可实现大规模数据的采集及短周期、超短周期高频数据的采集。
(8) 与其他业务系统解耦,专注于实现数据的采集和转储任务,提高系统的稳定性和可靠性。
OTDB系统软件在网络中处于OPC服务器与数据系统服务器之间,集成了用户授权验证、实时数据显示、OPC服务端配置、转储列表配置、数据仓库配置、转储粒度配置、实时任务状态日志显示、软件及任务自启动自恢复、OPC服务器自动激活等多种功能。通过这些功能,将OPC服务器的数据自由地导入本地或远程数据仓库中。其功能架构如图2所示。
图2 OTDB功能架构
为了保证OTDB数据采集和转储系统软件在实际使用过程中的稳定性和可靠性,对程序的执行流程进行了有针对性的设计和优化。程序执行的具体步骤如下。
(1) 判断软件是否已经取得授权。若已取得授权则软件会自动激活,并判断用户是否设置故障自启动。若设置了自启动,则OTDB会自动激活OPC服务端程序,否则等待用户手动启动客户端。
(2) 自动扫描配置信息,若已有配置信息,则进行OPC服务器的连接认证和数据库服务器的连接测试;若无配置信息,则需先进行信息配置。
(3) 配置OPC服务器,通过自动导出功能,导出测点文件的配置信息;用户自主选择需要转储的测点以及导入数据库的字段信息;系统可支持向多张不同的表同时导入数据的功能。
(4) 设置完配置文件后,可选择相应的厂家数据库及对应的数据库版本。用户可自主重建数据库及数据表,缩短开发周期,简化开发流程。
生物化学实验是药学专业一门重要的专业基础实验课,为了能让药学生在有限的资源和时间内更好地掌握实验技能,生物化学实验教学课程体系需要不断优化和完善。近年来,本校生物化学教研室在教学方法和手段、教学内容、成绩评估方式和教学资源等方面,对实验课程的教学进行了系列改革。通过实践,提高了学生的科研素质、分析问题与解决问题的能力,为培养高质量药学人才奠定了基础。
(5) 设置数据的采集周期,导入测点配置文件后进行连接测试。若连接测试通过,即可配置自动转储功能的开启;否则,根据提示信息排查错误。
(6) 配置信息步骤完成后,开始对OPC服务器的测点进行数据采样,并以多线程的方式写入相应的数据库和数据表中。
OTDB程序执行流程如图3所示。
图3 OTDB的程序执行流程
由于数据分析系统通常采用JAVA语言开发,所以基于JAVA语言开发OPC客户端能与其他系统有更好的兼容性,且便于二次开发。JAVA语言开发OPC客户端主要分为Utgard和JEasyOPC两种开源类库方式。Utgard方式具有采样频率高、支持点数多等优点,但不支持组查询,无法读取OPC的节点列表,且使用前需要配置DCOM获得用户名和密码,导致操作过程复杂,用户无法有效使用,其功能以面向开发者为主[6]。JEasyOPC进行OPC数据采集的方式虽然牺牲了部分性能,但其无需配置DCOM,不需要用户名和密码,且支持组查询等,使用过程简单,稳定性好。两种方式的具体对比如表1所示。
表1 Utgard和JEasyOPC的性能对比
OTDB客户端采用JEasyOPC方式,C/S架构开发,具备简洁的用户交互界面,同时支持WindowsXP,Windows7,Windows8,Windows10的32/64位操作系统。其主要包含用户授权模块、用户配置模块、数据采集模块。
用户在安装OTDB客户端后,程序会自动读取本机的机器码,通过相关加密算法,生成与机器码对应的唯一识别码。当用户获得授权码后,OTDB会将授权码持久化到磁盘。当软件服务器重启或故障恢复后,系统会自动跳过用户验证页面,以保证数据转储任务的正常运行。
JAVA通过调用服务器脚本命令查询CPU序列号,再通过输入流的方式获得序列号,在客户端将授权码进行解码,并与序列号进行一致性校验。
用户授权登录模块软件界面如图4所示。
图4 用户授权模块软件界面
该模块的主要功能包括OPC服务器的相关配置、数据库相关配置,以及转储任务的相关配置等,其实现流程如下。
(1) JAVA OPC客户端与OPC服务器建立安全通道,获取OPC服务器的组列表及节点名称,通过文本输出流将测点信息写入csv文件。
(2) OTDB软件将现在主流的数据库驱动加入软件内部,用户可自行选择不同类型的数据库驱动,通过数据库的地址、用户名、密码与数据库建立连接。
(3) 用户配置csv格式的数据采集文件,文件包含采集标志、测点描述、测点地址、转储表名、转储字段名5个关键信息。
用户配置模块软件界面如图5所示。
图5 用户配置模块软件界面
本模块的主要功能包括转储任务的启动和停止信息显示、OPC服务器名称及连接状态显示、数据库信息及连接状态显示、转储任务的明细数据及转储状态显示、OPC采集测点名称及实时数据显示、OTDB软件运行日志显示等内容。通过这些关键信息的显示,使用户能够明确知道自己的配置文件是否配置成功,转储的功能是否实现等。
其实现流程如下。
(1) 通过JOpcBrowser进行组查询,初始化OPC服务器的连接。
(2) 与OPC服务器建立连接后,读取选择的OPC服务器名称,与对应的服务器建立安全通道。
(3) 将配置文件中配置的测点名称加入到新建立的OPC组中,完成OPC测点的初始化。
(4) 添加OPC测点完成后,以OPC组的方式按照设置的读取频率进行异步读取OPC的数据,再将读取到的数据进行坏点校验,将处理完成的数据存入数据库中。
实时数据采集模块软件界面如图6所示。
图6 实时数据采集模块软件界面
作为一款通用的OPC数据采集软件,OTDB的应用场景广泛,理论上可用于所有自动化领域的数据采集,如分散控制系统、数据采集系统、厂级监控信息系统等。通过OTDB采集数据,可以构建统一的工业控制系统信息平台,完成异构网段数据的有效交换,实现不同工业网络系统的信息集成。经过不断的迭代更新,OTDB的功能已达到工业现场实时数据采集的要求,现已运用于多个发电厂数据分析系统。图7为某火电厂重要辅机能耗分析与评价系统的应用界面。
图7 OTDB在火电厂重要辅机能耗分析与评价系统中的应用界面
该系统通过OTDB以分钟为密度,从厂级监控信息系统开放的OPC服务器采集共计514个测点的数据。通过采集到的数据对火电厂重要辅机的能耗、单耗、电耗等指标进行数据挖掘和分析,为火电厂的经济运行、智慧发电、检修维护提供指导,OTDB已与该系统配套运行近4个月。
另一电厂采用的小指标分析与决策系统,通过OTDB以秒级采样的方式,采集厂级监控信息系统共计1 000个测点的数据。根据采集到的数据,对电厂机组运行数据进行筛选,统计超温、超压等异常数据。通过对机组运行参数的统计,分析不同的班组值班时机组的运行状态,对班组的成绩进行考核等。通过该系统,为电厂机组的运行提供了指导。OTDB已与该系统配套运行近3个月。
经过长期的运行及检验,OTDB采集的数据准确率高,丢包率低,即使服务器故障重启,OTDB仍能自动恢复数据转储任务,为系统的数据采集提供了有力保障。
通过深入研究OPC(DA)相关技术规范,采用JAVA语言开发的OPC数据采集和转储系统软件,有效地解决了工业信息化过程中数据采集的难题,缩短了系统开发周期,增强了数据采集的可靠性,实现了跨平台、高自由度、自恢复及自启动的数据采集和转储。同时,通过在现场的实际应用和检验,证明了该软件的稳定性和可靠性,具有较强的实用性和广泛的应用前景。