鄧小軍,祝杰,張旭,姚璋,黃鵬,張子鵬
(1.中國核動力研究設計院,核反應堆系統(tǒng)設計技術重點實驗室,成都610213;2.中核四〇四有限公司,嘉峪關735100)
在儀控系統(tǒng)工程設計中,DCS(digital control sys?tem)不同站點之間存在大量數據(2萬~4萬的網絡變量)交互,設計站間網絡變量需要提供準確的對端站點信息。各站點存在設計階段不同步的情況,不同設計人員進行交互設計時依賴于接口信息傳遞是否及時準確,在進行站間接口設計時容易產生設計差錯。DCS設計過程需要經歷多次迭代設計,每一版設計的更迭均有可能造成接口變更,變更時需要對所有網絡變量進行核對,采用人工核對既費時且易出錯。提高設計過程的綜合效率,一直是工程設計的重點研究方向之一。
在工程設計中使用自動化軟件進行輔助設計及檢查能夠極大提升設計效率[1-5]。本文針對DCS設計過程中組態(tài)網絡變量編制及修改過程中的繁瑣流程,設計并實現了一種基于LabVIEW軟件自動生成DCS組態(tài)網絡變量的軟件系統(tǒng),成功應用于某核電廠1、2號機組安全級DCS設計項目中,提升了設計效率,降低了人因錯誤率。
以組態(tài)中的儀控功能圖為例,其主要功能區(qū)分為軟件邏輯部分和輔助接口信息部分,其分界為MPU(main process unit)邊框,如圖1所示。
圖1儀控功能圖繪圖區(qū)域
圖1為基于“龍鱗”DCS平臺圖形組態(tài)軟件NASLAD繪制的儀控功能圖。輔助接口信息為站點與外部的接口,由靜態(tài)接口圖符組成,包括硬接線類型和網絡類型。PLM為優(yōu)先級邏輯模塊,通過PLM接入的信號同樣包括了硬接線類型和網絡類型。輔助接口信息不參與軟件邏輯運算,而是幫助識圖者理解軟件邏輯及硬件的連接關系。雖然輔助接口信息的錯誤不會對下裝的組態(tài)軟件造成影響,但是其錯誤會給識圖者造成誤解,引發(fā)錯誤的維護操作,進而影響設備安全。
基于以上需求,考慮開發(fā)一套軟件系統(tǒng)可以針對靜態(tài)圖符中的網絡變量信息進行自動生成和核對,包括網絡變量名稱、對端功能圖頁號和對端站號等。
目前市面上應用的DCS組態(tài)軟件多種多樣,本系統(tǒng)以基于“龍鱗”DCS平臺的組態(tài)軟件NASLAD為例,其組態(tài)生成的文件可通XML(extensible markup lan?guage,可擴展標記語言)格式保存并導出。XML是一種基于文本的、用于標記電子文件使其具有結構性的語言,便于在不同應用程序之間中進行格式化數據的交換。本文采用LabVIEW作為開發(fā)平臺,LabVIEW為NI(national instruments)公司推出的一款編程軟件,其先進便捷的圖形化開發(fā)方式目前應用廣泛。Lab?VIEW中提供的XML解析器是使用DOM文檔對象模型的Xerces 2.7解析器,本文通過相關的XML解析器VI和屬性節(jié)點可以對XML文件進行各種處理。
自動生成系統(tǒng)包括4個子模塊,即循環(huán)控制模塊(A)、對端變量讀取模塊(B)、輔助功能模塊(C)、網絡變量生成模塊(D)。4個模塊在系統(tǒng)中的位置和接口關系如圖2所示。
循環(huán)控制模塊通過讀取圖頁名稱列表,控制每張圖頁檢查模塊的執(zhí)行次數;對端變量讀取模塊讀取對端網絡變量表Excel,為本端網絡變量的生成提供信息;輔助功能模塊主要實現新建輸出路徑文件夾的功能;網絡變量生成模塊是核心部分,循環(huán)實現每張功能圖頁中網絡變量的自動生成,循環(huán)次數為功能圖總頁數。同時,總替換數量變量記錄總共生成的網絡變量標簽的個數。利用這個參數,可將軟件作為檢查工具使用。在總替換變量個數為0時,表示原圖紙的網絡變量標簽是正確的。
循環(huán)控制模塊(A)如圖2所示。圖紙列表文件以txt格式存儲在“Station站號AlgPageList.txt”文件中。通過人機界面讀入的信息,使用LabVIEW自帶的“路徑拆分”子VI、“路徑構建”子VI、“讀取文本文件”子VI進行讀取,然后使用“電子表格字符串至數組轉換”子VI將列表信息轉換為數組。由此得到的圖紙頁數即為網絡變量生成模塊的循環(huán)次數,達到控制循環(huán)的目的。
網絡變量表包含對端站點的變量列表信息,包含網絡變量名稱、說明、功能圖頁碼等。循環(huán)控制模塊如圖2中的B部分所示。采用ActiveX技術讀取Excel,結合實際工程項目背景,讀取內容主要兩種形式(網絡變量和PLM變量)。具體實現如圖3所示。
圖2 控制站網絡變量自動生成
循環(huán)控制模塊如圖2中的C部分所示。利用各種字符串和路徑操作子VI,獲得生成圖頁文件的存儲路徑,并判斷該路徑是否存在。如果存在,則不作操作;反之則新建文件夾。最終將文件夾路徑傳至網絡變量生成模塊。
網絡變量生成模塊(D)實現對每一張功能圖的處理,其核心部分是CREATE子VI。由循環(huán)控制模塊(A)得到功能圖的總頁數,即循環(huán)次數,實現對控制站每一頁功能圖頁網絡變量的自動生成。
每一張功能圖對應一個XML文件,每處理一個XML文件將調用一次CREATE子VI。CREATE子VI內部如圖4所示。
CREATE子VI分為讀取元素節(jié)點模塊(a)、讀取完整圖頁信息模塊(b)、替換元素模塊(c)、生成新圖頁文件模塊(d)。
2.5.1 讀取元素節(jié)點模塊
讀取元素節(jié)點模塊(a)利用XML解析器工具包,實現對XML文件中所有元素節(jié)點的讀取,包括算法塊、變量、靜態(tài)圖符等。其實現如圖5所示。
利用Property Node(獲得XML文件引用)、Get All Matched Nodes.vi(獲取XML所有匹配節(jié)點)、In?voke Node(XML轉字符串)等功能塊及子VI,逐步解析XML文件內容。
圖3讀取網絡變量表Excel
圖4 CREATE子VI
圖5讀取所有的元素節(jié)點
其中,Static Item子VI內部如圖6所示,該子VI的功能是獲得該功能圖頁的所有元素節(jié)點后,篩選出靜態(tài)附圖元素節(jié)點,再按照指定格式的簇捆綁成靜態(tài)圖符集。
循環(huán)該頁的所有元素節(jié)點,通過對比,獲取所需的“/item/frameType”節(jié)點,并向后傳輸。
Static Item子VI的輸出分為兩個接口。其一包含了靜態(tài)圖符的元素字符串(數組“靜態(tài)item”),后續(xù)用于替換節(jié)點的藍本使用;其二包含該靜態(tài)圖符的元素的屬性值(簇“靜態(tài)圖符集”),后續(xù)用于匹配替換的元素節(jié)點屬性。
圖6 Static Item函數
2.5.2 讀取完整圖頁信息模塊
讀取完整圖頁信息模塊(b)。利用“獲取所有匹配節(jié)點”子VI,先讀取所有的頁節(jié)點元素,通過元素引用的“獲取XML屬性”讀取XML字符串,形成字符串數組。由于每張功能圖只有一個頁節(jié)點(
2.5.3 替換元素模塊
根據實際功能需求,替換元素模塊(c)包括網絡變量和PLM變量兩種情況。兩種情況的處理方法類似。
(1)網絡變量。網絡變量表中的功能圖頁碼,表示該變量在對端站點所處的功能圖頁碼。在原有
(2)PLM變量。PLM變量的情況與上述情況類似。PLM變量表中主要包含了功能圖中PLM的反饋信號去向,根據PLM變量表中的功能圖頁碼核對該功能圖。若不一致,則進行替換,然后生成新的靜態(tài)圖符元素節(jié)點。具體實現如圖9所示。
圖8網絡變量表的功能圖頁碼核對
2.5.4 生成新圖頁文件模塊
生成新圖頁文件模塊(d)如圖所示,將新生成的靜態(tài)圖符元素節(jié)點替換舊節(jié)點后,形成新的圖頁XML文件。利用“寫入文本文件”子VI,保存新生成的XML文件,此文件由于需要XML解析,因此在文件起始處增加文本“”。
將更新后的靜態(tài)圖符內容與原圖頁XML文件框架結合,形成符合標準格式的圖頁XML文件,并在目標文件路徑生成新圖頁XML。循環(huán)更新每一圖頁后,即完了對目標站點的網絡變量自動生成。
圖9 PLM變量表的功能圖頁碼核對
圖10 XML文件保存
本文基于LabVIEW軟件設計了一套軟件系統(tǒng),通過讀取txt、xml、Excel等格式的文件,并按特定規(guī)則處理比較,實現了DCS儀控功能圖中網絡變量的自動生成及檢查。本系統(tǒng)成功應用于某核電廠1、2號機組安全級DCS項目的設計,提高了設計效率,降低了人因錯誤導致的設計錯誤量。軟件開發(fā)過程中應用的技術可遷移至DCS設計過程中的其他工作,進一步提升設計效率。