前言:本站為你精心整理了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文件即可??刂七壿嫿M態是指利用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環境中。組態人員只需從正則表達式匹配規則列表中選擇相應的匹配規則即可解決組態過程中的各種文本查找和替換問題。大大降低了組態人員使用正則表達式的門檻,從而使正則表達式在控制系統組態工程中得到廣泛的應用。
作者:張雄單位:艾默生控制系統(上海)有限公司