首页 > 文章中心 > 正文

Ovation控制系统组态工程研究

Ovation控制系统组态工程研究

Ovation控制系统具有非常良好的开放性,几乎所有组态文件都可导出为文本文件,或以文本文件导入数据库。例如,点数据库可以导出为txt文件,流程图画面保存为src文件,控制逻辑图保存为dwg、src、svg文件。其中Txt、src、svg文件可以用普通的文本编辑器直接编辑,dwg虽然不能直接用文本编辑器编辑,但可以把dwg文件转换成dxf文本文件后再编辑。工程中,通常用Ultraedit等文本编辑软件对多个组态文件里的内容进行批量查找或替换处理,这在一定程度上提高了工作效率,但传统的基于确切的字符串进行文本查找和替换的方法效率低、灵活性差,不适合进行复杂文本处理。正则表达式是基于模式匹配法则对文本进行智能查找和替换,一个通用的正则表达式能高度概括所有可能出现的情况,执行一次基于正则表达式的查找或替换操作可以批量解决一类问题。本文把正则表达式引入控制系统组态工程,用具体实例说明了正则表达式的强大功能。

1正则表达式

1.1正则表达式简介正则表达式源于神经生理学研究,最早由数学家StephenKleene于1956年提出,他在对自然语言的递增研究成果的基础上定义了一个代数系统,并且引入了一种记号系统来描述正则集,这种记号系统被称为“正则表达式”[3]。UNIX系统的创造者KenThompson于1968年第一个把正则表达式用于计算机领域,并取得了巨大成功,后经几个时期的发展,现已被国际标准组织批准为ISO标准。如今,各种文本编辑器和搜索工具都集成了正则表达式,如Ultraedit和Editplus等,各种程序语言也都支持正则表达式,如C++、C#、Java、Basic、Python、Perl、PHP等。开发人员可以选择不同的程序语言开发各种基于正则表达式的应用程序。常规的搜索和替换操作,需要提供确切的文字,这种技术只适用于对静态文本进行简单搜索和替换任务。由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的。而正则表达式可以对动态文本进行复杂的查找和替换,它是基于模式匹配的一种智能数据检索和提取方法。例如,可以对一个输入字符串进行测试,看在该字符串中是否存在一个电话号码模式或一个信用卡号码模式;可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。

1.2正则表达式语法正则表达式是由一些普通字符和特殊字符(或称元字符)组成。特殊字符包括“$”,“^”,“.”,“*”,“+”,“?”,“[”,“]”和“\”。除非在一个字符前面有“\”,否则正则表达式中出现的任何其他字符都是普通字符。虽然任何普通字符都构成一个简单的正则表达式,但这仅仅可以匹配与自己相同的字符,相当于常规的查找方法。普通字符和特殊字符结合在一起就构成功能强大的正则表达式,它可以匹配一组或一类字符串,而不用明确地列举出所有的确切形式。如“.*a[bce]+[0-9]d”,这个正则表达式表示从字符串的任意位置开始,以字符a开头,其后是一个或任意多个b,c或e,然后是一个数字,最后是字符d。正则表达式内容丰富,功能强大,限于篇幅,本文仅对其作一简要介绍。

2Ovation控制系统组态工程

2.1Ovation控制系统简介Ovation系统是集过程控制及企业管理信息技术于一体的,融合了当今世界最先进的计算机及通信技术于一身的典范。其采用了高速、高可靠性、高开放性的通信网络,具有多任务、多数据采集能力以及潜在的控制能力。Ovation控制系统分为Windows平台和Solaris平台两种系统。目前新的Ovation控制系统以Windows平台为主,最新版本为3.3版。Windows平台的Ovation控制系统提供功能强大的开发平台(OvationDeveloperStudio),它集成了各种软件组态工具,用于生成和保存系统的控制策略、过程画面、测点记录、I/O设置、报表生成以及全系统的组态,经过授权的任何一个操作员站都可使用组态工具[4]。

2.2Ovation控制系统组态工程介绍Ovation控制系统组态工程是指基于Ovation控制系统的软硬件平台,根据设计文档的要求,完成相关点数据库、工艺流程图和控制逻辑图的组态工作。主要设计文档通常包括输入输出测点清单(简称IO清单)、端子接线图、工艺流程图、控制方案和策略等。点组态过程就是把IO清单里的点的属性值配置到Ovation点数据库对应的数据库字段。点数据库组态的依据是IO清单,IO清单一般由设计院提供,其中包含测点的各种属性信息,如测点名称、测点描述、控制器号、工程单位、量程、报警限、安全级别等。Ovation控制系统支持11个类型的点,每个类型的点都有其对应的数据库字段和属性值。实际工程中用得最多的是模拟量点、数字量点和打包点,这三种类型点的数量占所有点数的99%以上。从点是否包含硬件信息来看,可把模拟量点和数字量点分别分为两类,一类是带有卡件位置和通道号等硬件信息的IO测点,也叫一次点或硬件点,一般占总点数的10%左右;另一类是不带硬件信息的点,也叫二次点或软件点,一般占总点数的90%左右。以单台600MW燃煤机组主机系统为例,大约包含5000至10000个IO测点,逻辑图组态过程中还要生成并配置几千个中间点和打包点。因此,当需要组态的点较少时,可用Ovation点组态工具手工配置点的各个属性值,当需要组态的点的数量较多时,可通过文本导入的办法批量生成数据库里的点。另外,可以把Ovation系统里的所有点导出为一个文本文件,通常称为部分数据库文件。流程图画面组态是指利用Ovation开发环境里的画面组态工具,绘制控制流程图主画面和弹出面板子画面等。流程图画面里的所有信息都包含在src格式的文本源文件中,画面组态工具只不过是提供了友好的人机操作界面,其实质作用是把绘制的各种线条、文字、形状、颜色、宏等图形元素自动翻译成特定的语句并保存成src文件,即src文件里的每一条语句对应流程图里的一个图形元素。因此当需要批量进行流程图画面组态时,只需要按照流程图画面的语法规则批量修改src文件即可。控制逻辑组态是指利用Ovation开发环境里的逻辑组态工具,根据设计控制策略绘制相应的控制逻辑图,也称SAMA图。3.0及之前版本的Ovation控制系统采用AutoCAD软件进行逻辑图组态,编译后的组态文件保存为DWG文件和SRC文件;3.1及之后版本的Ovation控制系统采用SVG编辑器进行逻辑图组态,保存为SVG文件。SRC文件和SVG文件都是文本文件,其中包含了逻辑图画面的各种信息,如输入点名、输出点名、测名描述、信号线、算法名称等。非文本格式的DWG文件亦可被转换成DXF格式的文本文件。点数据库组态是工艺流程图和控制逻辑图组态的基础,准确高效地进行点数据库组态对于整个组态工程的进度和质量起到重要的作用。否则,不规范的点数据库组态易导致后续组态工作频繁返工,使整个工程失去规范性并遗留诸多缺陷[5]。点数据库组态主要包括硬件点组态和软件点组态。硬件点组态的依据是IO清单,IO清单通常包含测点名称、测点描述、工程单位、量程、卡件类型、卡件位置和通道号等信息。软件点组态的依据是实现特定控制策略的控制逻辑图,工程中需要根据工艺过程的意义定义大量的中间点,通常这些软件点会被流程图主画面或弹出子画面所引用。IO清单和软件点的设计整理贯穿组态工程全过程,只有借助强有力的文本处理工具才能时刻保持软、硬件点信息的完整性和规范性。

3正则表达式的工程应用

3.1软件介绍虽然正则表达式功能强大,但是其使用规则比较晦涩难懂,不易掌握,因此本文把Ovation控制系统组态工程中经常用到的一些匹配模式集成到软件中,工程人员只需从软件下拉菜单中选择相应的匹配模式即可解决大部分常用的文本处理问题。组态工作的大量原始数据都是基于MicrosoftExcel表格,因此有必要基于Excel表格开发软件,软件开发通常有两种方式,一种是利用VBA脚本语言编写程序;另一种是基于COM接口开发Excel插件。VBA脚本程序属于Excel文档的一部分,在不同的Excel文档中共用VBA脚本比较麻烦,且VBA脚本程序不易管理。COM接口插件与Excel应用程序本身集成在一起,只要打开Excel表格,任何时候都可调用COM接口插件里的功能。另外,从程序的运行速度来看,COM接口插手也大大快于VBA脚本程序。鉴于COM接口插件的诸多优点,本文采用该方式开发了Excel插件。

3.2IO清单中的应用由于各种因素,IO清单里的测点名称存在诸多不规范问题,如字母O误写成数字0,编码长度不一致,编码规则不统一等[5]。采用人工检查的办法只能发现一个问题纠正一个,不易一次性解决一类问题。实际工程中,由于频繁更新IO清单,导致逻辑图和流程图画面组态工作经常被迫返工。KKS编码是工程中被广泛采用的编码方式之一,它是一种根据功能、工艺和安装位置等特征来标识发电厂中的系统和设备及其组件的一种代码[6]。根据KKS编码的设计规则,可以写出测点名称准确性检验正则表达式。实例1判断点名称是否符合KKS规范正则表达式:[\d]{2}[A-Z]{8}(?=XB01|XB02|YB01|YB02)说明:[\d]{2}表示前两个字符串只能是数字;[A-Z]{8}表示第3至10个字符只能是A至Z的26个大写字母;(?=XB01|XB02|YB01|YB02)表示最后4个字符只能是XB01或XB02或YB01或YB02。

3.3点数据库组态中的应用Ovation系统点数据库的日常维护或系统升级改造时,通常需要对Ovation点数据库里的信息进行梳理,分别整理出各种类型点的IO清单,如模拟量点,数字量点,打包点等。实例2从Ovation点数据库文件中提取出模拟量点正则表达式:\(TYPE=″AnalogPoint″.*?(?=\r\n\s+\(TYPE)说明:\(表示左括号;TYPE=″AnalogPoint″表示字符串本身;.*?表示包含换行符的懒惰型的任意数量的字符串;(?=\r\n\s+\(TYPE)表示以字符串“换行符后紧接若干个空格再紧接字符串(TYPE”结尾。

3.4工艺流程图画面组态中的应用Ovation系统升级改造工程中经常需要根据用户习惯和喜好对流程图画面做相应调整,如:批量更改画面的底色、泵或阀门形状、字体大小,批量增加或删除画面中显示的点,批量替换符合某一特征的宏等。另外,为了便于对流程图画面进行检索和管理,需要从流程图中提取各种信息、如点名称、宏号、子窗口号、点组号等。实例3查找宏语句中包含以字符串OCB开头的点名的宏,获取该宏语句中的的X、Y坐标及点名信息,利用这些信息重构新的宏语句正则表达式:Macro(\d{1,5})(\d{1,5})(\d{1,5})(.*\OCB.*\r\n)(.*\r\n){1,3}?(?=Macro|BACKGROUND|\r\n)说明:以Macro字符串开头,第一个(\d{1,5})表示由1至5个数字组成的宏号,第二个(\d{1,5})表示由1至5个数字组成的X坐标,第三个(\d{1,5})表示由1至5个数字组成的Y坐标,(.*\\OCB.*\r\n)表示包含\OCB的任意字符串,(.*\r\n){1,3}?表示由任意字符组成的1至3行字符串且优先匹配较短的字符串,(?=Macro|BACKGROUND|\r\n)表示以Macro或BACKGROUND或回车符结尾。实例4从流程图中提取用到的点名正则表达式:\\([^\\s\r\n]*)\\说明:\\表示反斜杠符,[^\\\s\r\n]表示除反斜杠符、空格符、回车符之外的任意字符串。

3.5控制逻辑图组态中的应用为了便于对控制逻辑图和其中的算法进行检索和管理,需要从逻辑图中提取各种信息、如点名称、逻辑描述、算法名称、逻辑图名称、逻辑图号、控制器任务区等。实例5从Src文件中提取以MOD字符串结尾的打包点名称正则表达式:PTR_VALUE\$P1\$I\d{3}\\([\w]+-MOD)说明:PTR_VALUE\$P1\$I表示以PTR_VALUE$P1$I开头,\d{3}\\表示3个连续的数字后面紧跟一个空格和一个\符号,([\w]+-MOD)表示以MOD字符串结尾的任意长度的字符串。实例6从Src文件中提取逻辑图的名称、页号和控制器号正则表达式:PTR_VALUE\$P3\$A116X4″(.*)″|PTR_VALUE\$P3\$A88X8″(.*)″|PTR_VALUE\$P3\$A48X40″(.*)″说明:PTR_VALUE\$P3\$A116X4表示字符串PTR_VALUE$P3$A116X4,″(.*)″表示以″号开头并以″号结尾的任意长度的字符串,|表示逻辑或,|符之后的正则表达式与其之前的正则表达式的意义类似,说明从略。实例7从SVG文件中提取逻辑图的名称、页号和控制器号正则表达式:cb-sheet-title=″(.*)″|cb-sheet-number=″(.*)″|cb-drop-id=″(.*)″说明:以字符串cb-sheet-title="开头,以字符"结尾,.*表示不包含换行符的任意字符串,|之后意义类似,说明从略。

4结语

正则表达式作为一种智能模式匹配规则,具有强大的文本查找和替换功能,在网页解析、信息抽取、文本挖掘领域得到广泛的应用。他山之石可以攻玉,本文把正则表达式引入控制系统组态工程的各个环节,如点数据库组态、工艺流程图组态、控制逻辑图组态等,用各种实例证实了其在提高工作效率和质量方面起到的重要作用。虽然正则表达式功能强大,但是熟练掌握和应用正则表达式并非易事。为此,本文把控制系统组态工程中常用的基于正则表达式的匹配规则编制成Excel插件,集成于Excel环境中。组态人员只需从正则表达式匹配规则列表中选择相应的匹配规则即可解决组态过程中的各种文本查找和替换问题。大大降低了组态人员使用正则表达式的门槛,从而使正则表达式在控制系统组态工程中得到广泛的应用。

作者:张雄单位:艾默生控制系统(上海)有限公司

文档上传者