南京南瑞繼保電氣有限公司的研究人員陳宏君、張磊、徐睿、曾凱、劉坤,在2019年第3期《電氣技術(shù)》上撰文,分析了面向國際市場的用戶軟件現(xiàn)狀與問題,介紹了新一代控制保護平臺PCS-S系列裝置配套軟件設(shè)計理念與關(guān)鍵實現(xiàn)技術(shù)。
軟件以驅(qū)動包文件銜接裝置研發(fā)、工程實施、用戶運維等過程,支持驅(qū)動包在線升級更新。以“所見即所得”的設(shè)計理念,通過分布式配置和集中式瀏覽編輯,解決數(shù)據(jù)一致性和同步等難題。通過MOT選型、可配置腳本、可視化主接線、圖形化跳閘矩陣等手段提升裝置可配置能力。
軟件通過模塊化元件內(nèi)嵌IEC 61850模型、圖形化配置過程層數(shù)據(jù)模型等方式實現(xiàn)IEC 61850多版本自動建模。支持以裝置能力描述文件為輸入源,進行數(shù)字化回路配置,實現(xiàn)智能變電站裝置配置、調(diào)試、集成和運維一體設(shè)計。基于本文設(shè)計的PCS-Studio軟件已經(jīng)在多個工程實施中應(yīng)用,滿足用戶可配置、易維護的需求。
保護測控裝置已經(jīng)實現(xiàn)了平臺化、可視化、可配置和調(diào)試的功能,一些廠家的產(chǎn)品已經(jīng)銷售到國際市場,與國內(nèi)的大客戶定制化、標準化模式相比,國際市場區(qū)域分散、用戶需求存在較大差異,裝置軟硬件平臺、應(yīng)用程序配置、用戶運維軟件等需要提升靈活性、可配置能力。
對過程控制系統(tǒng)(process control system, PCS)系列裝置配套PCS- Explorer軟件,在國內(nèi)外工程實施進行調(diào)研總結(jié),在獲得用戶的認可同時,亦存在如下不足:
①部分應(yīng)用配置復(fù)雜度較高,即使深入閱讀說明書,也存在理解和操作上的困難,例如針對主變高、中、低壓側(cè)的模擬量分配和保護功能連接關(guān)系的配置,需要提供50余頁專項說明;
②限制于工具軟件所能提供的功能,部分應(yīng)用的靈活可配置能力有待提升,例如國外不同地區(qū)的間隔的接線方式非常靈活,往往超出預(yù)設(shè)的組合范圍,一些特殊接線只能二次變更開發(fā);
③IEC 61850采用全自動化建模方式,用戶無法自主設(shè)置實例號,導(dǎo)致后續(xù)工程維護升級時新增/刪除信號帶來邏輯節(jié)點實例號的變化,加大了維護工作量;
④裝置配置調(diào)試和變電站集成需要通過2個軟件分步完成,缺少一體化設(shè)計交互能力。
針對上述反饋,結(jié)合新一代控制保護平臺PCS-S系列裝置的推廣需求,新開發(fā)了配套的面向國際市場的裝置開發(fā)運維軟件PCS-Studio,本文介紹了該軟件的設(shè)計理念和關(guān)鍵技術(shù)。
軟件需注重用戶體驗,實現(xiàn)所見即所得。按照支撐產(chǎn)品全生命周期的要求進行設(shè)計,從裝置訂貨、研發(fā)調(diào)試、工程實施、運行維護等環(huán)節(jié),提供裝置選型、應(yīng)用開發(fā)、插件選配、用戶配置、整站集成、狀態(tài)瀏覽、波形分析等功能模塊。
1.1 概念定義
元件是完成特定功能邏輯、面向?qū)ο蠓庋b的一組數(shù)據(jù)和對數(shù)據(jù)進行處理的過程,處理完后輸出的數(shù)據(jù)供其他元件使用。元件包含輸入、輸出、參數(shù)、邏輯節(jié)點、人機配置等內(nèi)容。
驅(qū)動包是一個自定義格式的文件,把硬盤目錄下整個裝置的編程、配置、建模相關(guān)文件打包壓縮形成*.dev。其包括裝置的元件庫、可視化頁面、定值、事件錄波、裝置選型、液晶主畫面等裝置配置的源素材文件,還包括通過分析源素材文件形成的裝置運行接口文件、ICD(裝置能力描述文件)等。
研發(fā)人員通過PCS-Studio軟件開發(fā)裝置驅(qū)動包,將驅(qū)動包下載到裝置運行。工程人員和用戶可從裝置中裝上驅(qū)動包、或者從驅(qū)動包安裝庫中選擇驅(qū)動包新建離線配置,進行本地化配置,形成新的驅(qū)動包。
1.2 配置調(diào)試集成一體化設(shè)計
如圖1所示,PCS-Studio采用一體化設(shè)計,以變電站為單位創(chuàng)建工程,支持單裝置配置調(diào)試、跨裝置集成功能。
圖1 配置調(diào)試集成一體化設(shè)計
軟件提供的功能包括:
上述功能覆蓋了從單裝置研發(fā)到現(xiàn)場運行調(diào)試的相關(guān)過程。軟件的用戶包括裝置研發(fā)人員、生產(chǎn)制造人員、技術(shù)支持人員、產(chǎn)品代理人員、購買裝置的用戶。
以技術(shù)支持用戶為例,其典型的操作流程如圖2所示:
對于智能變電站的裝置,還可進行過程層變電站事件(generic object oriented substation event, GOOSE)、模擬量采樣(sampled value, SV)的發(fā)送接收端子配置,形成單裝置ICD文件。之后在資源管理器導(dǎo)入其他裝置的ICD文件,將其他裝置的GOOSE-SV發(fā)送數(shù)據(jù)集對應(yīng)的發(fā)送端子選擇拖入到ICD的Inputs節(jié)點內(nèi),并選擇外裝置的FCDA和本裝置的接收虛端子DAI關(guān)聯(lián),通過ExtRef存儲對應(yīng)關(guān)系。
裝置是以回路實例配置(configured circuit description, CCD)文件作為數(shù)字化傳輸?shù)慕涌?,配置軟件根?jù)ICD文件中的發(fā)送數(shù)據(jù)集和Inputs接收端子信息,形成該配置文件,通過1個軟件,即完成了裝置間的數(shù)據(jù)傳輸配置。完成相關(guān)離線配置后,將驅(qū)動包下載到裝置進行在線調(diào)試。
1.3 以驅(qū)動包為核心銜接全流程設(shè)計
面向國內(nèi)外市場,要求保護測控裝置具備靈活的可配置能力和快速集成能力?;趥鹘y(tǒng)的定制化編程方式,已經(jīng)很難適應(yīng)不同國家和地區(qū)用戶需求。需提供可配置方法,支持用戶二次開發(fā),滿足現(xiàn)場需求,而面向用戶的可配置,要求風(fēng)險可靠,避免用戶進行程序編譯等復(fù)雜度高的操作。
另外隨著研發(fā)分工的細化,裝置程序的研發(fā)也需分步實現(xiàn),模塊研發(fā)人員側(cè)重于單個功能模塊的設(shè)計,以提高模塊的研發(fā)質(zhì)量和運行效率,裝置集成研發(fā)人員基于可復(fù)用的模塊庫,搭建裝置功能,并設(shè)計開放給用戶的配置接口,以提高裝置集成速度。本軟件以驅(qū)動包為核心,實現(xiàn)不同用戶分權(quán)限、分步驟開發(fā),如圖3所示。
圖2 用戶操作流程設(shè)計
圖3 以驅(qū)動包為核心的分步開發(fā)過程
用戶版軟件僅顯示用戶可見的模塊、頁面、定值、配置選項等數(shù)據(jù),用戶版本的邏輯編程數(shù)據(jù)處理采用動態(tài)注冊技術(shù),是免編譯的。
1.4 提升裝置可配置能力設(shè)計
在PCS-Explorer軟件中,裝置運行的主體功能使用圖形化元件搭建,在保留該軟件部分核心功能前提下,PCS-Studio新增了主接線功能、圖形化跳閘矩陣功能,進一步提升母差保護裝置、主變保護裝置的可配置能力,降低上述應(yīng)用的配置復(fù)雜度,并對IEC 61850建模配置進行了新的設(shè)計,提升用戶自主配置修改方便性。
1)主接線配置
母差保護采用面向間隔對象的方法來形成差動構(gòu)成圖,該方法針對不同母差主接線情況下,只需要修改母差配置,不需要修改母差程序。之前的標準母差保護支持的主接線形式固定(通過MOT提供11種可選接線方式),無法滿足一些較特殊的主接線方式,由研發(fā)人員進行二次開發(fā)實現(xiàn)。故需要通過繪制母差主接線圖實現(xiàn)自動形成母差配置的功能。其主接線實現(xiàn)步驟如下:
在進行變壓器保護配置前,需要了解原理圖、用戶習(xí)慣,由于變壓器主變接線方式和高中低壓側(cè)的分支數(shù)可變,所以對應(yīng)的模擬量拉線、命名、HMI配置都有可能要修改,由于其靈活的可配置模式,對工程人員和用戶來說,需要深刻理解掌握變壓器保護的配置思路,專業(yè)門檻高,存在一定難度,也需要通過圖形化的方式,以直觀地進行模擬量和功能配置。其主接線配置實現(xiàn)步驟如下:
圖4 主變保護主接線示意圖
2)跳閘矩陣
主變?nèi)齻?cè)保護多,跳閘開關(guān)多,每個保護跳的開關(guān)不一樣,如果都用繼電器就需要定義很多壓板。之前是通過定值整定或者通過搭建繁雜的邏輯頁面實現(xiàn),存在不直觀、不易匯總的問題。跳閘矩陣先將要跳的每個開關(guān)的繼電器固定,對每個保護要跳開關(guān)編碼,用點擊圓圈方式直接起動要跳開關(guān)繼電器。
通過對各種保護跳閘進行統(tǒng)一需求分析,設(shè)計了通用的跳閘矩陣符號,其在數(shù)據(jù)建模是個通用的元件,包括輸入、輸出、參數(shù)、邏輯節(jié)點模型,在圖形上進行特殊處理,根據(jù)輸入個數(shù),動態(tài)調(diào)整顯示行數(shù),固定32個輸出和定值,采用圍棋模式的按比特位進行整定,支持修改關(guān)聯(lián)變量描述,其他頁面可使用跳閘矩陣的輸出變量。
3)IEC 61850建模
目前國際市場存在IEC 61850Ed1、Ed2兩個版本建模的需求,需支持可選切換導(dǎo)出符合Ed1、Ed2標準的模型,為此構(gòu)建了支持2個版本的SCL數(shù)據(jù)模型,通過傳入形參數(shù),動態(tài)形成對應(yīng)版本的屬性和子節(jié)點。針對單裝置的IEC 61850建模,采用三類圖形化符號實現(xiàn)。
(1)應(yīng)用元件內(nèi)嵌邏輯節(jié)點模型。例如零序過流保護元件采用類型為PDOC的邏輯節(jié)點關(guān)聯(lián),在符號庫元件制作階段,可導(dǎo)入2個版本的數(shù)據(jù)模板,將邏輯節(jié)點作為元件的成員模型,進行元件變量和邏輯節(jié)點的數(shù)據(jù)屬性映射配置、數(shù)據(jù)集配置,元件實例化時邏輯節(jié)點也同步實例化,完成裝置主體功能建模。
(2)提供通用邏輯節(jié)點圖形化符號建模,例如MMXU、GGIO,進行用戶級自定義模擬量、開關(guān)量符號建模,這類符號可以關(guān)聯(lián)跨元件的變量。
(3)提供PTRC、TCTR、TVTR等過程層GOOSE、SV的數(shù)據(jù)發(fā)送接收符號,采用圖形化方式進行發(fā)送壓板控制、接收邏輯編程,通過分析上述符號的拓撲關(guān)系,進行過程層虛端子建模。
通過元件關(guān)聯(lián)邏輯節(jié)點和圖形化符號,實現(xiàn)IEC 61850的自動化、圖形化建模,用戶不用關(guān)心底層SCL語法,降低了配置建模復(fù)雜度,支持用戶基于研發(fā)人員預(yù)配置的數(shù)據(jù)集,進行用戶級數(shù)據(jù)集的創(chuàng)建,篩選裝置側(cè)上送給后臺的信號。同時提供集中式瀏覽界面,匯總各個頁面的邏輯節(jié)點模型,支持用戶集中修改實例化、前綴等內(nèi)容,驅(qū)動包升級時保留用戶設(shè)置的屬性。
1.5 可靠性設(shè)計
在提升軟件可靠性方面,通過組件化的設(shè)計,提升系統(tǒng)的穩(wěn)定性、可選升級能力;通過基于用戶角色的權(quán)限管理(role-based access control, RBAC)進行用戶操作控制;通過內(nèi)置校驗規(guī)則進行防誤校驗,實現(xiàn)用戶操作的日志記錄,用戶驅(qū)動包下載前的配置合規(guī)檢查。
1)基于組件的軟件工程理念
軟件系統(tǒng)比較龐大復(fù)雜,同時用戶對軟件的發(fā)布、升級的可靠性、運行過程的穩(wěn)定性的要求越來越高,對軟件的設(shè)計和開發(fā)帶來挑戰(zhàn),需要有合適的軟件工程方法來指導(dǎo)軟件設(shè)計開發(fā)過程?;诮M件軟件工程是一種基于復(fù)用方法來定義、實現(xiàn)和組合松散耦合的獨立組件,使之成為一個系統(tǒng)。組件是比對象更高層次的抽象,其接口的實現(xiàn)細節(jié)對其他組件是隱藏的。開發(fā)可靠易維護的軟件設(shè)計原則如下:
組件具有標準化、獨立性、可組合性、可部署性、文檔化等特征?;诮M件復(fù)用的軟件開發(fā)過程包括:系統(tǒng)需求概覽定義、識別候選組件、根據(jù)發(fā)現(xiàn)的組件修改需求、體系結(jié)構(gòu)設(shè)計、識別候選組件、組合組件并構(gòu)建系統(tǒng)。本文的PCS-Studio軟件采用了組件化設(shè)計理念。
2)權(quán)限管理
按照IEEE 1686規(guī)范進行角色權(quán)限設(shè)計。預(yù)設(shè)置7種用戶角色,分別為“查看”、“控制”、“定值”、“測試”、“配置”、“調(diào)試”和“管理”。工具默認提供一個管理員賬戶,默認具有所有權(quán)限。用戶第一次配置時使用admin賬戶進行登錄,登錄以后需要立即修改默認的用戶名和密碼。
管理員可以進行權(quán)限配置:①設(shè)置哪些權(quán)限不需要校驗密碼;②設(shè)置免密碼操作的超時時間;③之后再創(chuàng)建角色,給角色分配權(quán)限,并且創(chuàng)建用戶,將用戶添加到角色組中。配置完成后相關(guān)設(shè)置信息保存到權(quán)限文件中,再下載到裝置最終生效。圖5是PCS-Studio的虛擬液晶調(diào)試子進程和裝置通信時的權(quán)限校驗過程。
圖5 虛擬液晶調(diào)試軟件登錄過程
3)防誤校驗
軟件在防誤操作設(shè)計方面,在編輯過程中進行即時校驗,例如定值設(shè)置超范圍提示、IO插件不允許邏輯編程的控制、部分元件實例個數(shù)的控制、部分元件僅能在指定插件的范圍內(nèi)使用、連接線兩端輸出-輸入變量類型不匹配提示等多項細節(jié)的提示,減少用戶配置過程中的誤操作。
軟件梳理總結(jié)了裝置側(cè)系統(tǒng)軟件相關(guān)配置檢查規(guī)則,在驅(qū)動包形成處理過程中,進行逐條檢測,并按照錯誤/告警/提示的級別進行展示,僅當(dāng)零錯誤的配置才形成可下載的驅(qū)動包。此外客戶端軟件與裝置之間的調(diào)試下載通信進行完整性校驗機制,采用了MD5對敏感數(shù)據(jù)保護進行保護,通信報文采用加密處理,避免非法會話與攻擊。
2.1 可擴展腳本技術(shù)
在MOT選型、系統(tǒng)配置、可視化主接線等場景,配置選項的修改,需要即時生效。例如投入退出插件、顯示隱藏頁面、修改內(nèi)部參數(shù)等。QT庫的QObject類和派生類有property屬性和c++slot接口,可以在python解釋引擎中注冊相關(guān)實體對象,在腳本中調(diào)用注冊對象的API接口,界面上點擊保存或失去焦點時自動執(zhí)行相關(guān)腳本,實現(xiàn)數(shù)據(jù)聯(lián)動修改功能。圖6是可視化主接線中雙CT母聯(lián)符號內(nèi)置的腳本示例。
圖6 配置腳本
在圖6中,Bay表示當(dāng)前符號注冊名,Graph表示主接線畫面注冊名,GetSymbolByName等是軟件預(yù)先定義的接口函數(shù),裝置應(yīng)用開發(fā)人員可調(diào)用軟件提供的API函數(shù),編寫應(yīng)用層邏輯,實現(xiàn)工具軟件和不同應(yīng)用邏輯之間解耦。
2.2 數(shù)據(jù)刷新同步技術(shù)
由于模塊化元件支持該元件內(nèi)變量菜單分組配置功能,在可視化頁面組件和LCD菜單組件均可進行菜單分組配置,因此采用一次讀取驅(qū)動包內(nèi)容到共享內(nèi)存、多處視圖編輯瀏覽、即時刷新同步的策略實現(xiàn)數(shù)據(jù)一致性。
軟件需實現(xiàn)離線HMI菜單配置和可視化頁面配置的同步生效。將配置相關(guān)的數(shù)據(jù)源主體存儲在可視化頁面文件中,集中分組配置的菜單文件按順序存儲變量的ID。首次點擊裝置節(jié)點時,需一次讀取菜單分組、定值、錄波和可視化頁面信息,確保需同步的數(shù)據(jù)在內(nèi)存中。
以新建元件為例,從符號庫中選擇元件塊釋放到頁面,則從變量庫中獲取默認實例名、默認的邏輯節(jié)點實例名,構(gòu)建符號、變量的ID。讀取符號內(nèi)分組引用表的配置,匯總各個菜單引用表的變量ID,根據(jù)層次菜單英文名,查找離線HMI配置的數(shù)據(jù)(包括菜單、錄波、事件、定值),將相關(guān)變量ID順次添加到對應(yīng)的離線分組內(nèi)存數(shù)據(jù)中。
2.3 組件化集成技術(shù)
PCS-Studio軟件采用組件加載和子進程調(diào)用的集成模式,設(shè)計了主進程-子進程-子組件的分層架構(gòu),分主框架、頂層界面組件層、數(shù)據(jù)模型層、公共服務(wù)驅(qū)動層,支持功能靈活擴展。
基于組件的開發(fā)設(shè)計要點包括:①實現(xiàn)對組件的管理,宿主程序可以搜索、加載、卸載組件和維護組件的狀態(tài)。將這些功能放到組件配置樹(組件容器)模塊實現(xiàn);②接口的設(shè)計和識別,接口是不同組件之間、宿主程序與組件之間的通信基礎(chǔ)。宿主程序只有識別接口,才能加載組件;③資源的互斥和同步,多個組件的并行運行可能對申請資源產(chǎn)生競爭。
組件系統(tǒng)的功能由組件實現(xiàn),設(shè)計了基礎(chǔ)數(shù)據(jù)basedata.dll、基礎(chǔ)界面basegui.dll、抽象組件basepackage.dll、消息總線msgbus.dll作為底層驅(qū)動公共服務(wù)模塊,數(shù)據(jù)模塊和應(yīng)用能夠組件繼承自上述基礎(chǔ)模塊,組件之間通過消息總線交互數(shù)據(jù),各應(yīng)用層組件如圖7所示,包括工程管理組件、圖形化配置組件、全局配置組件等。
2.4 主界面框架設(shè)計技術(shù)
軟件主框架的頂層窗體QWidget由區(qū)域1、區(qū)域2、區(qū)域3組成,3個區(qū)域使用QVBoxLayout豎式對齊。其中區(qū)域1為主標題窗體,顯示軟件名字和當(dāng)前打開的工程名稱。區(qū)域2包括菜單欄、工具欄。區(qū)域3為QMainWindow,由QSpliter和狀態(tài)欄組成。
使用QSpliter作為中心窗體,依次豎式管理左側(cè)工具欄、左側(cè)停靠窗體、中間界面容器、右側(cè)??看绑w、右側(cè)工具欄。中間界面容器分兩個子區(qū)域,包括QWorkSpace工作空間、底部??看绑w,使用橫式排列。QWorkSpace用于管理各中子界面。整個軟件的配色使用QSS的層次樣式表設(shè)計,通過分層主界面框架,實現(xiàn)新型自定義軟件界面風(fēng)格。
圖7 組件集成架構(gòu)
圖8 PCS-Studio主界面框架
PCS-Studio軟件采用模塊化設(shè)計思想,通過可視化的方式配置調(diào)試PCS-S系列裝置。以變電站為單位管理PCS-S系列裝置,能有效管理全站的裝置配置方案。使用驅(qū)動包和MOT創(chuàng)建裝置,基于標準模板,可快速構(gòu)建配置。提供功能豐富的離線配置和在線調(diào)試。支持跨裝置的GOOSE-SV數(shù)據(jù)傳輸配置功能。軟件在功能完善性、界面友好性、操作易用性、運行穩(wěn)定性等方面有了較大改進提升,促進了PCS-S系列裝置的市場推廣。