首页> 中国专利> 一种基于元件模型的自定义功能块及组态封装方法

一种基于元件模型的自定义功能块及组态封装方法

摘要

本发明提供了一种基于元件模型的自定义功能块及组态封装方法,包括以下步骤:a)定义可继承的功能块元件模型,设计标准的实例化接口和统一的数据结构;b)实例化工控领域通用的算法类功能块;c)定义组态文件结构;d)基于可继承的功能块组态的控制策略,封装成自定义功能块;e)自定义功能块信息存入原组态文件中。本发明从功能块建模的角度,吸取面向对象方法的思想,对算法功能块的典型特征和关键数据信息进行提取抽象,建立可继承的功能块元件模型。在此基础上,实例化包括算术类、逻辑类、控制类、时间类等众多通用的基本算法功能块,以满足常规工业过程控制的算法组态和调试需求。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-02-07

    授权

    授权

  • 2018-04-20

    实质审查的生效 IPC(主分类):G05B19/05 申请日:20160918

    实质审查的生效

  • 2018-03-27

    公开

    公开

说明书

技术领域

本发明属于工业自动化控制领域,尤其涉及用于工业过程控制系统中功能块图算法组态。

背景技术

在工业过程控制领域中,功能块图(FBD,Function Block Diagram)因其直观易懂的特性,迅速成为应用最广泛的工控逻辑编程语言之一。但功能块图作为一种编程语言,可扩展性较差,缺乏用户自定义的特性和要素。为了解决这个问题,一般是由用户提出功能块需求,工控厂家据此开发专用新功能块。此外,部分厂家提供了其他编程语言,如结构化文本(ST,Structured Text),作为用户自定义新功能块的语言。但结构化文本的可读性较差,对用户的要求偏高,所以在实际应用中普遍接受度不高。

随着互联网的深入发展,控制系统和互联网技术的深度融合已变成必然的发展趋势,由此导致控制系统的网络安全面临巨大的挑战。其中核心工艺参数和关键控制策略,乃是安全保密的重中之重。然而目前通用的安全手段是通过权限管理等外在手段来实现管理,缺乏对控制器内控制策略和关键参数进行封装隐藏的功能,从而导致其泄密的可能性大大增加。

发明内容

本发明提供了一种基于元件模型的自定义功能块及组态封装方法,该方法从功能块建模的角度,吸取面向对象方法的思想,对算法功能块的典型特征和关键数据信息进行提取抽象,建立可继承的功能块元件模型。在此基础上,实例化包括算术类、逻辑类、控制类、时间类通用的基本算法功能块,以满足常规工业过程控制的算法组态和调试需求。

用户可利用基本算法功能块,自定义封装算法逻辑,选择输入输出和参数接口,实现控制逻辑的封装和关键参数的隐藏功能。

本发明一种基于元件模型的自定义功能块及组态封装方法具体包含以下步骤:

a)定义可继承的功能块元件模型,设计标准的实例化接口和统一的数据结构;

b)基于所述可继承的功能块元件模型,实例化工控领域通用的算法类功能块;

c)定义组态文件结构(由算法类功能块构成的组态文件结构),保留控制器(工业过程控制器,用于工业控制系统领域)执行控制策略所需要的指令类和数据类信息,同时保留组态软件完全还原控制策略组态SAMA图图形化内容;

d)基于可继承的功能块组态的控制策略,封装成自定义功能块,只保留输入输出接口和参数接口,实现控制逻辑的封装和关键参数的隐藏;

e)经过封装的自定义功能块,数据和运行逻辑继承自被封装的算法类功能块及其组态逻辑,自动图元绘制功能继承自功能块元件模型;自定义功能块信息存入原组态文件中,不会破坏原组态文件结构,同时维持文件内容的完整性。

可继承的功能块元件模型,包含数据、指令信息,其标准化接口涵盖算法执行和图元自动绘制相关函数接口。

其中步骤b)的算法类功能块包括算术类、逻辑类、控制类、时间类和输入输出类型的通用功能块。

其中步骤c)的组态文件结构包括文件基本信息、模块信息表、页面数据表、指令信息表、通讯点表、组态逻辑图形信息和组态逻辑注释信息。

其中步骤d)中的自定义功能块的运行算法逻辑,为其封装的控制逻辑,不必额外编程调试。

其中步骤e)进一步包括:在原组态文件中加入了经过封装和自定义的新功能块信息之后,组态软件能够无差别还原其SAMA图原状,同时被封装的隐藏控制逻辑完全不受影响。

其中步骤e)进一步包括:在需要解除关键控制策略的封装或取消自定义功能块时,组态软件可以依据对应组态文件中的信息精准还原封装或自定义之前的SAMA图原状,同时被解封的控制逻辑不受影响。

较优地,可继承的功能块元件模型包含以下元素:基本属性、元件数据和标准接口。

较优地,步骤b)具体包括以下步骤:(1)定义算法类功能块的基本属性;(2)确定算法类功能块包含的数据个数;(3)在控制器内核代码中实现算法类功能块的算法执行函数,在组态软件中实现算法类功能块的图元自动绘制接口。

较优地,组态文件结构包括:文件基本信息、模块信息表、页面数据表、指令信息表、通讯点表、组态逻辑图形信息和组态逻辑注释信息。

与现有技术相比,本发明的优点是:实现了利用功能块图这一基本编程语言,自定义新的功能块,满足特定行业或工艺上的应用需求。同时给用户进行算法保密和控制策略的封装提供了便利的手段,实现对工艺参数和控制逻辑细节的保密性管理。

本发明通过按照面向对象的方法定义可继承的功能块元件模型,实现满足工业过程控制应用的基本算法功能块;并以此为基础,定义组态文件结构,满足工控算法组态和调试的需要;更进一步,利用可继承元件的特性,用户可自定义或封装控制逻辑和核心算法,形成具有保护和封装特性的功能块,在满足用户高级应用需求的同时,顺应工业过程控制系统与互联网技术深度融合的发展趋势。

附图说明

图1 可继承元件的数据模型;

图2 组态文件结构示意图;

图3 自定义功能块和组态封装流程示意图;

图4 组态软件还原含有自定义功能块的组态文件处理流程图;

图5 取消自定义功能块或解除组态封装处理流程图。

具体实施方式

为使本发明的上述内容、特征和优点能够更加清晰易懂,下面结合附图对本发明的详细实施步骤做具体的说明。

本发明通过按照面向对象的方法定义可继承的功能块元件模型,实现满足工业过程控制应用的基本算法功能块;并以此为基础,定义组态文件结构,满足工控算法组态和调试的需要;更进一步,利用可继承元件的特性,用户可自定义或封装控制逻辑和核心算法,形成具有保护和封装特性的功能块,满足高级应用的需要。

一种基于元件模型的自定义功能块及组态封装方法,包含以下步骤:

步骤a)定义可继承的功能块元件模型,设计标准的实例化接口和统一的数据结构。

作为一种典型的工控算法编程语言,功能块图的实现思路是通过穷举定义工业控制过程中所需要用到的所有基本算法功能块,并在控制系统研发时开发实现。这样一方面,用户常常因为新增工艺或新类型对象,产生新的功能块开发需求;另一方面,在不断增加和独立开发算法类功能块的过程中,往往忽视了算法类功能块的共性特征,导致算法类功能块的开发产生了重复工作量。

因此,本方法借鉴面向对象的思想,从工控各类算法功能块中,提取共性特征和关键属性,最终定义可继承的功能块元件模型包含以下元素:

(1)基本属性:包括元件类型、元件变量名列表等。

(2)元件数据:包括输入变量、输出变量、属性变量和中间变量数据;

(3)标准接口:包括元件的算法执行、图元自动绘制等标准化接口;

对于元件数据,不同的算法功能块拥有不同个数的输入变量、输出变量以及属性变量等。为了统一元件模型的数据结构,特定义专用的元件数据模型,从而将元件输入、输出和属性等统一到一个标准化的数据模型数组中。

元件的数据模型根据工业过程控制应用的实时信息进行抽象封装,涵盖组态所需的属性信息,具体如图1所示。

(1)实时值:数据点的实时状态值;

(2)数据类型:数据点的自描述类型;

(3)数据品质:数据点的品质状态;

(4)数据角色:自定义功能块时,标识数据点的角色,如自定义输入、自定义输出、自定义属性类型;

(5)其他备用位。

此外,在元件的数据模型中还有部分未展示的属性项,包含在其他备用位中。因其与本方法无关,故在此没有列出。

步骤b)基于所述可继承的功能块元件模型,实例化工控领域通用的算法类功能块。

在功能块元件模型定义的基础上,实例化各类算法类功能块,包括如下定义和实现步骤:

(1)定义算法类功能块的基本属性,包括算法类功能块类型的常量值和字符串值,算法类功能块所有变量的字符串名称;

(2)确定算法类功能块包含的数据个数,具体包括输入、输出、属性和中间变量,定义基于专用数据模型的算法类功能块数据结构;

(3)在控制器内核代码中实现算法类功能块的算法执行函数,在组态软件中实现算法类功能块的图元自动绘制等接口。

常规算法类功能块的实例化,应尽可能涵盖所有基本的算法种类。此外,在特定行业已有一定认知度和成熟度的专用模块,也需要在这一步进行实例化。

步骤c)定义组态文件结构,保留控制器执行控制策略所需要的指令类和数据类信息,同时保留组态软件完全还原控制策略组态SAMA图图形化内容。

在完成常规算法类功能块的实例化之后,考虑控制策略的图形化展示要素及控制器实时解释执行的需求,提出一种紧凑高效的组态文件结构。该文件结构以最精简的方式保存了控制器实时解释执行控制逻辑所需要的指令和数据信息,同时涵盖了必要的图形化展示要素,以方便组态软件根据文件内容正确且准确地还原控制策略组态SAMA图。

如图2所示,定义的组态文件结构包含以下内容:

(1)文件基本信息:包括文件的创建时间、校验码、版本号、封装密钥等;

(2)模块信息表:包含模块的类型、实例名,模块数据索引、隐藏标记;

(3)页面数据表:页面所有模块的数据集合,根据模块组态顺序紧凑排列在数组内;

(4)指令信息表:由组态模块及其连线关系翻译而成的中间层指令语言,涵盖常规算法类功能块和赋值功能块的中间层指令及其操纵的数据索引信息;

(5)通讯点表:页面内所有对外通讯的数据点索引信息表;

(6)组态逻辑图形信息:包括模块图元位置、连线端点信息;

(7)组态逻辑注释信息:页面组态逻辑的注释文本内容及位置信息。

步骤d)基于可继承的功能块组态的控制策略,封装成自定义功能块,只保留输入输出接口和参数接口,实现控制逻辑的封装和关键参数的隐藏。

基于常规算法类功能块,用户可以轻松利用组态软件,在前述定义的组态文件结构框架下,实现自定义功能块或者控制策略的封装,具体步骤如图3所示。

首先按照步骤301,选定需要封装的模块及其之间的联系。注意此处的模块只可以是常规算法类功能块,不可以包含自定义功能块。

选定之后,选择自定义按钮,弹出对话框,进入步骤302,输入自定义功能块的类型字符串名如“MODULE_TEST”,设定对应的类型变量,由于0~1000是属于常规算法类功能块的类型定义范围,所以一般在1001~65535间任选一值,确保不与其他的自定义功能块重复。

输入完毕之后,点击下一步,进入步骤303。在弹出的所有被封装模块的变量列表中,点选自定义功能块的输入变量、输出变量和属性变量。未被选中的变量将作为中间变量,中间变量在自定义功能块的变量列表中不予显示。选择完毕,点击确定,则所有变量的数据角色写入组态文件页面数据表中对应数据的属性位上。

设置完自定义功能块的数据角色,则进入步骤304。组态软件根据自定义功能块的输入、输出个数、其类型字符串名等信息自动生成对应的图元,绘制在被选定区域的正中。如果用户手动拖动新图元,则其内被封装的所有模块位置都做同样移动变化。原有对外连线将根据新的图元和位置自动重新连线。

在完成图元绘制之后,进入步骤305。组态软件将所有被选中的模块信息表中置上隐藏标记。接着进入步骤306,在文件中的组态逻辑图元信息部分,记录自定义功能块图元的位置信息。

最后记录用户输入的封装密钥,并保存文件,完成自定义功能块的过程。

由上述步骤可见,在自定义功能块的过程中,并没有修改指令信息表,也没有增删页面数据表,因此并不影响组态文件在控制器内的执行结果。

另外,用户在自定义功能块时,组态软件一般默认规则命名输入、输出和属性变量。如将输入变量按照“IN1~IN0N”的规则命名,输出按照“OUT1~OUT0N”的规则命名。用户也可以详细自定义各个变量名,由此形成额外的自定义功能块变量表,可在后续相关环节选择匹配使用。

在自定义功能块之后,所保存的组态文件结构增加了新的内容,那么组态软件根据该组态文件进行控制SAMA图还原时,按照如图4所示的步骤处理。

组态软件在打开一个组态文件,生成SAMA图时,首先读取模块信息表,进入步骤401。若模块信息表为无效信息,则证明该组态文件为空。否则进入步骤402。

按照步骤402,读取并解析模块类型和实例名,根据模块类型值判断其是否属于自定义功能块。当类型值在1001~65535范围内,属于自定义功能块,进入步骤404。否则类型值在0~1000范围内,属于常规算法类功能块,则进入步骤405。

承接步骤404,由于是自定义功能块,组态软件需要根据其包含的数据角色来生成图元,所以定位到页面数据表,统计其输入、输出个数。然后根据这两个参数,组态软件自动生成图元,完成步骤406,进入步骤408。

承接步骤405,由于是常规算法类功能块,首先读取其模块信息表中的隐藏标记,判断其是否需要显示。若需要显示,进入步骤407,否则直接返回步骤401。

承接步骤407,对于常规算法类功能块,组态软件直接根据模块类型调用图元生成函数,生成其对应的图元,随后进入步骤408。

按照步骤408,组态软件读取该模块对应的图元位置,进而绘制模块。然后进入步骤409,根据模块数据索引加载页面数据表中模块所有数据信息以及通讯点表中对应信息。至此,一个模块的图元绘制和数据加载过程全部完成,进入步骤410。

如果模块信息表已经扫描完成,则进入步骤411;否则返回步骤401。

承接步骤411,组态软件继续读取组态逻辑图元信息中的连线端点信息并完成连线的绘制。然后按照步骤412,读取注释及位置信息,完成注释内容的绘制。

至此,完成整个组态文件还原为组态SAMA图的过程。

当有需要取消自定义功能块或者解除控制策略的封装时,因组态文件已经保存了自定义功能块前的完整信息,可根据图5所示的步骤处理该过程。

按照步骤501,在组态SAMA图上选定自定义功能块,点击解封按钮,在弹出的对话框中,输入解封密钥,点击确定,进入步骤502。判断输入密钥与存储密钥是否匹配,若匹配成功,则进入步骤503;否则进入步骤504。

承接步骤504,密钥不匹配,则解封失败,本次解封直接结束。

承接步骤503,密钥匹配成功后,组态软件清除该自定义功能块涵盖的所有算法模块的隐藏标记,然后进入步骤505。

按照步骤505,组态软件清除页面数据表中,自定义功能块对应包含的所有数据点的数据角色值。然后进入步骤506,组态软件删除自定义功能块的图元位置信息,接着按照步骤507,删除自定义功能块在页面模块信息表中的对应内容。

至此,取消自定义功能块的过程全部完成。

步骤e)经过封装的自定义功能块,数据和运行逻辑继承自被封装的算法类功能块及其组态逻辑,自动图元绘制功能继承自功能块元件模型;自定义功能块信息存入原组态文件中,不会破坏原组态文件结构,同时维持文件内容的完整性。

在原组态文件中加入了经过封装和自定义的新功能块信息之后,组态软件能够无差别还原其SAMA图原状,同时被封装的隐藏控制逻辑完全不受影响。

其中步骤e)进一步包括:在需要解除关键控制策略的封装或取消自定义功能块时,组态软件可以依据对应组态文件中的信息精准还原封装或自定义之前的SAMA图原状,同时被解封的控制逻辑不受影响。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号