一种优化组态系统的制作方法

文档序号:6397618阅读:452来源:国知局
专利名称:一种优化组态系统的制作方法
技术领域
本发明涉及一种优化组态系统,应用于工业生产中应用和能源管控优化计算和组态中,用于解决平衡、预测、性能计算、数据挖掘、优化调度和故障诊断等内容。
背景技术
目前,工业中应用的优化软件很多,各种优化软件在计算中存在很多通用的功能,如求平均值、滤波、水蒸气焓熵查询、锅炉性能计算、最小二乘法、多元线性回归分析、多元非线性回归分析、神经网络、动态规划和遗传算法等功能;同时每个算法都需要与实时库和配置库接口,有的还需要与历史库接口,需要组态和运行,都需要输入日志文件以备调试。优化软件通常可分四部分算法部分、运行部分、组态部分、和外围部分。算法部分首先,为了实现各种优化计算,功能分解后,一方面,各优化软件也有差异,有的侧重性能计算,有的侧重故障诊断,各自成体系,不同开发人员接口不同,导致各算法相互调用比较困难。另外一方面,也存在相同的需求,一般性能计算都要对输入进行滤波处理以提高算法的稳定性,所以开发了一个输入和一个输出的滤波功能块。性能计算的很多输入位号常有的2 3个相同的传感器与之对应,如主蒸汽温度测点有两个测点,则可能需要这些传感器取平均值,所有开发了平均值功能块。数据挖掘算法经常需要定期触发一次,如每个月的I号执行一次,那么开发了时间触发功能块,用户只需要配置触发周期和具体的触发时间,则可完成触发功能,数据挖掘收到触发信号后,就可进行数据分析和处理。大部分优化分配算法都基于成本特性曲线,这些曲线一般存储在关系库的表中,所以开发关系数据库读取功能块,根据用户配置的用户名、密码、数据库名称和表名称等,就可获取成本特性数据。运行部分的相同要求如要求热备用/温备用;分布式计算;各功能模块可相互调用;参数/输入/输出可配置;获取实时数据,把计算结果写入实时库组态在线下载;在线调试等。组态部分各优化计算为了增加其通用性,都要求从配置数据库获取配置信息进行展示和组态,如输入位号的组态,参数的配置,结果输出对象的配置,由于属于不同人开发,组态界面风格各不相同,需要编写各种组态说明书,给用户维护造成了一定的难度。外围部分未做统一设计的话,配置数据库、配置文件、实时库的表格和日志文件在格式上可能差异比较大,以配置文件为例子,“备用模式=1”在有的设计思路中I代表热备用,而有的设计思路中I代表温备用,不利于工程实施和维护;综上所述,算法部分、运行部分、组态部分和外围部分存在重复开发和设计,各功能块接口因人而异,相互调用困难。且组态界面风格各不相同,也存在开发重复性工作、维护工作量大。本发明借鉴工业控制中基于IEC61131-3标准中的功能块组态技术,把该技术思路从控制领域移植到优化领域,使用户通过组态的方式实现优化功能。目前基于功能块组态技术还未见运用于通用优化计算的文献,本发明并针对优化领域的特点做了针对性开发,使得该技术更顺利地运用在优化领域,目前已经运用于中天钢铁能源管控系统中,实现了仪表故障诊断、能源介质平衡、能源介质预测、性能计算、成本特性相关的数据挖掘、制氧机组负荷优化分配和空压机组负荷优化分配等功能。

发明内容
本发明目的是提供一种优化组态系统,以组态计算的方式,使得研发技术人员在开发各优化功能块不需要处理通用的问题,只专注于优化算法,并提供统一的组态界面,使工程人员和用户通过组态的方式,就可解决优化问题,组态模块和运行模块分离,各功能块和运行模块分离,提高了软件的稳定性、可维护性和扩展性,也大大提高了开发效率、工程实施效率和维护效率。本发明的技术方案是一种优化组态系统,包含以下五部分a)功能块基类所有功能块都派生于该基类,实现了各功能块的数据名称和统一的程序接口;b)功能块所有功能块都继承功能块基类,包含各种通用算法;c)组态模块主要实现功能块的组态配置;d)运行模块主要实现功能块的初始化和运行等;e)外围部分为组态模块和运行模块提供相关载体和支撑。其中a)功能块基类包括含单元测试虚函数,含显示计算输入/参数/输出等接口,含历史数据获取虚函数,含通用检查接口,含专用检查、初始化、输入、计算和复位虚函数。其中b)功能块包含类别为1/0类、模拟量计算类、逻辑计算类、性能计算/考核类、数据挖掘类、能源和介质平衡类、能源和介质预测类、寻优/调度类、故障诊断和优化控制类。其中c)组态模块包含通过从配置数据库Oracle获取各组态配置表及其组态内容;通过联络信号与运行模块进行通讯来实现组态在线下载,即若组态修改,则组态模块把联络信号设置为I;运行模块每个运行周期获取联络信号的值,如果联络信号值为1,则重新初始化,并重新读取组态等,如果联络信号为0,则不需要重新初始化,继续进行算法运算等步骤;通过获取由运行模块写入组态配置表的调试结果字段内容实现在线调试。其中d)运行模块中包括运行软件模块通过参数配置就可自动获取历史数据并传递给功能块;实现了根据功能块的版本号、输入个数/描述、参数个数/描述和输出个数/描述等信息自动同步到功能块结构信息表中;自动获取点的描述并更新到功能块配置信息表中。另外d)运行模块还包含基于现有的分布式实时数据库,实现功能块组态和实时库组态的自动同步;实现了根据功能块的版本号、输入个数/描述、参数个数/描述和输出个数/描述等信息自动同步到功能块结构信息表中;考虑到大部分功能块的输出的名字相同,工程组态采用默认值。其中d)运行模块通过文件接口读取配置文件Config.1ni内容,从而获取到功能块配置信息表的名称,再根据Oracle配置数据库接口从功能块配置信息表获取数据,进而实例化各功能块;负责调用实时库接口把功能块需要的实时数据传递给功能块的输入,把功能块的结果输出到优化实时库,以便画面展示等;按照功能块间的组态连接关系依次调用功能块运行;实现了温备用/热备用;组态在线调试,在线下载;按输出日志信息的详细程序可配置为四个级别。其中e)外围部分包括:(I) Oracle配置库:含公共部分表格,功能块配置信息表1,…,功能块配置信息表n,功能块配置信息表示各功能块的配置信息存储的位置,以便组态模块进行组态,运行模块根据组态内容实例化各功能块进行计算;(2)配置文件Config.1n1:配置运行模块的功能块配置信息表,各种运行模式等内容;(3)实时库:包含存放优化结果的优化实时库和存放从各PLC/DCS系统采集数据的监控系统实时库;(4)日志文件:由运行模块生成;(5)画面、曲线、报警、历史存储等:实现优化计算结果的展示等。本发明有益效果是:以组态计算的方式,使得研发人员在开发各优化功能块时不必再处理通用的问题,只需专注于优化算法,且提供统一的组态界面,使工程人员和用户通过组态的方式,就可解决各工业过程优化问题。另外,组态模块和运行模块分离,各功能块和运行模块分离,提高了软件的稳定性、可维护性和扩展性,也大大提高了开发效率、工程实施效率和维护效率。


图1为具体实施步骤示意图。图2为软件包整体示意图。图3为软件包运行模块类间关系示意图。图4为软件包运行模块启动过程流程图和周期性循环流程图。图5功能块组态实现汽轮机性能计算示意图。图6为功能块基类结构示意图。图7gkopt和gkScada的实时库示意图。
具体实施例方式具体实施步骤如图1,(I)针对优化目标进行需求分析和设计,把目标分解为一个或者多个功能块;(2)将分解后的各功能块画成功能图;(3)是否有功能块需要开发?如需要开发则进行第4步骤,否则直接跳转到第8步骤;(4)绘制功能块流程图;(5)进行功能块属性和算法设计;(6)把新开发的功能块加入运行模块;(7)功能块编码,并进行单元测试;(8)通过组态模块进行功能图配置;(9)联合调试直到满足设计目标。如图2所示软件包的各个组成部分,各功能块的组态内容存放于优化计算的配置数据库(Oracle),公共区域存放每个功能块信息、优化配置表名称与描述等;不同的优化目标存放于不同的区域。实时数据主要来源于监控系统实时库gkScada,少量来源于优化实时库gkOpt,优化后结果都存放于优化实时库gkOpt中;每个优化程序对应一个Config.1ni配置文件,里面可配置功能块配置表、实时库自动同步对应的分支、运行周期、备用方式、各种运行选项和运行周期等;每个优化程序通过Config.1ni配置文件读取配置数据库的Oracle表,里面每一行代表一个功能块,功能块的名称、描述、页号、是否通过验证、各参数和各输入都在该行中。本发明软件包运行模块各类关系示意图如图2,圆圈范围内就是组态软件的范围,其余为外围部分,大概关系如下(I)读取程序配置文件类把配置文件Config.1ni的配置信息读取后,传递给关系库类、实时数据库类和历史数据库类,这样软件包级别的配置信息就获取完毕,然后软件包利用读取数据库配置类读取Oracle表,根据每一行信息(功能块名称、参数内容、需要历史数据的时间长度和输入内容等)实例化为一个功能块,(2)把历史数据和实时数据传递给各功能块;软件包运行部分启动过程和周期性循环的流程图如图4 其中,图4中的有关步骤步骤“I根据配置数据库内容实例化各计算类”实现方法如下
if(qfilds[fb—field—index]==*PB—Sophie—Read—by—Name,
{
cFB[I]=new FB—Soph ic—Read—by—Xame;
}cFB[i]即为第i个功能块;考虑到大部分功能块的输出的名字相同,如果位号不含功能块输出的名字,那么采用默认值以便工程组态,这样组态内容更加简洁。“4,5根据功能块的结果位号名称获取其在实时库的相关信息表名称,0ID,(fieldid, field长度)和描述;如结果位号在数据库中不存在的自动加点”:由于约定功能块结果都存放在gkopt数据库,如果该数据库中不存在和结果名称相同的点,那么根据功能块默认的存放表的名称,名称和描述,调用实时库的接口,自动添加点。然后再获取该点在实时库的相关信息,以便运行模块获取实时库的实时值。同时,该步骤还获取了输入点的描述并更新到功能块描述信息表,便于用户打开组态模块后了解输入的含义。“6确定计算深度”实现过程开始时候各功能块的计算深度都为I ;如功能块A的输入是否功能块B的输出,则功能块B的计算深度=功能块A计算深度+1,表明应该先运算功能块A,然后再运行功能块B ;如此循环几次后,如果最大计算深度不变,则完成该过程。“7获取历史数据”:根据功能块配置信息表的“IN_HIS_C0UNT”字段内容,就可知道该功能块需要历史数据的时间跨度,这样调用历史接口获取历史数据,把历史数据拼接为一个字符串,赋值给功能块的历史值字符串,从而完成历史数据的获取过程。“8功能块初始化,检查”:调用各功能块的初始化过程和检查过程来实现,具体代码由各功能块自己实现;“9插入/更新功能块结构信息表”:在各功能块的构造函数中把所有功能块FB [i]的输入个数、各输入的描述、参数个数、各参数描述、结果个数和各结果描述等信息赋值完毕,然后在该过程自动把这些信息插入/更新到功能块描述表中,以便组态界面结合功能块配置信息表(不含功能块的描述信息)展示功能块相关配置。功能块的输入过程由运行模块获取通过功能块输入的0ID、FieldID和Field长度读取其在实时数据库的值,并把数据赋值给功能块的输入;功能块根据业务逻辑完成计算过程,由运行模块完成功能块结果更新到sophic实时库;复位过程也是通过调用功能块的复位过程来实现,应该如何计算由各功能块自己实现。
图5功能块组态实现汽轮机性能计算示意图,以电厂汽轮机性能计算为例说明各优化算法组态的方式,一般性能计算都要对输入进行滤波处理以提高算法的稳定性,所以开发了一个输入和一个输出的滤波功能块;性能计算的很多输入位号常有的2 3个相同的传感器与之对应,如主蒸汽温度测点有两个测点,则可能需要这些传感器取平均值,所有开发了平均值功能块。配置的时候,如有多测点的,通过组态平均值功能块实现,再把平均值功能块后组态滤波功能块,最后把滤波功能块的输出和汽轮机性能计算功能块的输入建立连线。总之,需要对优化目标进行分解,把不同的功能解耦为不同的功能块来实现,再通过组态模块进行组态配置,最后运行模块读取组态内容,实例化各功能块进行优化运算。图6功能块基类结构示意图中,功能块基类包括:含单元测试接口,开发人员可通过黑盒测试方法编写各测试用例,然后判断计算的结果是否等于理论结果,如果所有测试用例均通过,则测试结果返回真,代表单元测试成功,此设计方便代码管理和维护。功能块基类含显示计算输入/参数/输出等接口,如果调试模式大于等于1,那么输出功能块的输入的描述与值、参数的描述与值、结果值与结果的描述和其他信息到屏幕;如果调试模式大于等于2,则既把这些信息显示到屏幕,也把这些信息写入日志文件,方便开发和调试。图7为实时库的结构示意图,每个优化分区下都有5张表,其中Value,Valuel 50和DValuel 50为计算结果存放的字段。I功能块配置信息表:存放各个功能块的输入、输出的含义等,以便软件包的运行模块根据此表对各种功能块进行实例化,同时软件包的组态模块通过读取该表知道每个优化目标配置了多少功能块和功能块的具体内容。命名规则:“EMS_”开头,每个优化目标对应一个表格。
权利要求
1.一种优化组态系统,其特征是:包含以下部分,a)功能块基类:所有功能块都派生于该基类,实现了各功能块的数据名称和统一的程序接口 ;b)功能块:所有功能块都继承功能块基类,包含各种通用算法;c)组态模块:主要实现功能块的组态配置;d)运行模块:主要实现功能块的初始化和运行等;e)外围部分:为组态模块和运行模块提供相关载体和支撑。
2.如权利要求1所述的一种优化组态系统,其特征是:实施步骤为,(I)针对优化目标进行需求分析和设计,把目标分解为一个或多个功能块;(2)将分解后的各功能块画成功能图;(3)是否有功能块需要开发,如需要开发则进行第4步骤,否则直接跳转到第8步骤;(4)绘制功能块流程图;(5)进行功能块属性和算法设计;(6)把新开发的功能块加入运行模块;(7 )功能块编码,并进行单元测试;(8 )通过组态模块进行功能图配置;(9 )联合调试直到满足设计目标。
3.如权利要求1所述的一种优化组态系统,其特征是:其中a)包括:单元测试虚函数,显示计算输入/参数/输出等接口,历史数据获取虚函数,通用检查接口,专用检查虚函数、初始化虚函数、输入虚函数、计算虚函数和复位虚函数。
4.如权利要求1所述的一种优化组态系统,其特征是:其中b)功能块类别包括:1/0类、模拟量计算类、逻辑计算类、性能计算/考核类、数据挖掘类、能源和介质平衡类、能源和介质预测类、寻优/调度类、故障诊断和优化控制类。
5.如权利要求1所述的一种优化组态系统,其特征是:其中c)包括:组态模块通过从配置数据库Oracle获取各组态配置表及其组态内容;通过联络信号与运行模块进行通讯来实现组态在线下载,即若组态修改,则组态模块把联络信号设置为I ;运行模块每个运行周期获取联络信号的值,如果联络信号值为I,则重新进行初始化,并重新读取组态等,如果联络信号为0,则不需要重新初始化,继续进行算法运算等步骤;通过获取由运行模块写入组态配置表的调试结果字段内容实现在线调试。
6.如权利要求1所述的一种优化组态系统,其特征是:其中d)包括:运行模块通过参数配置就可自动获取历史数据并传递给功能块;自动获取点的描述并更新到功能块配置信息表中。
7.如权利要求1所述的一种优化组态系统,其特征是:其中d)包括:基于现有的分布式实时数据库,实现功能块组态和实时库组态的自动同步;实现了根据功能块的版本号、输入个数/描述、参数个数/描述和输出个数/描述等信息自动同步到功能块结构信息表中;考虑到大部分功能块的输出名字相同,工程组态采用默认值。
8.如权利要求1所述的一种优化组态系统,其特征是:其中d)包括:运行模块通过文件接口读取配置文件Config.1ni内容,从而获取到功能块配置信息表的名称,再根据Oracle配置数据库接口从功能块配置信息表获取数据,进而实例化各功能块;负责调用实时库接口把功能块需要的实时数据传递给功能块的输入,把功能块的结果输出到优化实时库,以便画面展示等;按照功能块间的组态连接关系依次调用功能块运行;实现了温备用/热备用;组态在线调试,在线下载;按输出日志信息的详细程序可配置为四个级别。
9.如权利要求1所述的一种优化组态系统,其特征是:其中e)外围部分包括:(1)Oracle配置库:含公共部分表格,功能块配置信息表I,…,功能块配置信息表η,功能块配置信息表示各功能块的配置信息存储的位置,以便组态模块进行组态,运行模块根据组态内容实例化各功能块进行计算;(2)配置文件Config.1n1:配置运行模块的功能块配置信息表,各种运行模式等内容;(3)实时库:包含存放优化结果的优化实时库和存放从各PLC/DCS系统采集数据的监控系统实时库;(4)日志文件:由运行模块生成;(5)画面、曲线、报警、历史存储等:实现优化计算结果的展示等。
10.如权利要求1或2所述的一种能源管控优化组态系统模块,其特征是:各功能块的组态内容存放于能源管控优化计算的配置数据库(Oracle),公共区域存放每个功能块信息、能源管控优化配置表名称与描述;不同的能源管控优化目标存放于不同的区域;实时数据来源于监控系统实时库gkScada和少量来源于能源管控优化实时库gkOpt,能源管控优化后结果都存放于能源管控优化实时库gkOpt中;每个能源管控优化程序对应一个Config.1ni配置文件,其中配置功能块配置表、实时库自动同步对应的分支、运行周期、备用方式、各种运行选项和运行周期;功能块中的每个能源管控优化程序通过Config.1ni配置文件读取配置数据库的Oracle表,里面每一行代表一个功能块,功能块的名称、描述、页号、是否通过验证、各参数和各`输入都在该行中。
全文摘要
一种优化组态系统,包含以下五部分a)功能块基类所有功能块都派生于该基类,实现了各功能块的数据名称和统一的程序接口;b)功能块所有功能块都继承功能块基类,包含各种通用算法;c)组态模块主要实现功能块的组态配置;d)运行模块主要实现功能块的初始化和运行等;e)外围部分为组态模块和运行模块提供相关载体和支撑。本发明以组态计算的方式,使得研发人员在开发各优化功能块时不必再处理通用的问题,只需专注于优化算法。另外,组态模块和运行模块分离,各功能块和运行软件分离,提高了软件的稳定性、可维护性和扩展性,也大大提高了开发效率、工程实施效率和维护效率。
文档编号G06F9/44GK103077033SQ201310007628
公开日2013年5月1日 申请日期2013年1月9日 优先权日2012年8月20日
发明者郝勇生, 彭兴, 孟宪宇, 梁少华, 林语, 孙立国, 刘利, 耿欣 申请人:南京南瑞继保电气有限公司, 南京南瑞继保工程技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1