本發(fā)明涉及一種頁面模塊封裝重用方法及裝置,屬于電力系統(tǒng)離線數(shù)字仿真技術領域。
背景技術:
PSCAD/EMTDC是電力系統(tǒng)電磁暫態(tài)分析中的專業(yè)仿真工具。PSCAD是用戶仿真界面,EMTDC是仿真引擎。它具有精確和豐富的電力系統(tǒng)應用模型、方便的數(shù)據(jù)輸入方式以及強大的數(shù)據(jù)分析能力,是進行電力系統(tǒng)分析和工程研究的有用工具,在全世界范圍內(nèi)有著廣泛的應用。頁面模塊是該仿真系統(tǒng)中一種特殊形式的元件,該元件模型有獨立的圖形頁面,并含有硬編碼腳本與之對照,圖形頁面程序由基本功能元件和連線組成,還包括輸入、輸出、參數(shù)符號塊,并且可以包含其他頁面模塊,從而擁有分層建模能力。但目前單個頁面模塊定義只能創(chuàng)建一個實例。在使用過程中,存在將頁面模塊進行封裝重用的需求,即將頁面模塊封裝成可重用的庫元件,通過實例化庫元件定義,功能可多次重用。另外目前很多直流工程均是使用PSCAD/EMTDC軟件進行仿真研究,在面向海外市場時迫切需要進行相關細節(jié)的隱藏,給用戶只提供頂層封裝模塊,不開放源圖形頁面程序,從而有效保護核心技術。
通過重用功能穩(wěn)定的頁面模塊,可加快開發(fā)效率,提高仿真速度。公布號為CN103885782的專利申請文件公開了一種可視化編程頁面程序庫函數(shù)封裝重用方法,該方法通過形成封裝庫函數(shù)的圖形文件,形成封裝庫函數(shù)的頭文件、形成封裝庫函數(shù)的源文件,形成封裝庫函數(shù)的二進制目標文件,完成庫函數(shù)的實例化重用。雖然該文件提供了一種頁面封裝重用的方法,但是該方法需要形成和處理頁面模塊的頭文件,并且需要重新定義代碼文本形成規(guī)則,以及重新編寫庫函數(shù)的構造接口、初始化接口、運行階段的任務調(diào)用接口,增加了編程和調(diào)試的難度,封裝的工作量比較大。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種頁面模塊封裝重用方法及裝置,以解決目前頁面模塊封裝過程中需要重新定義代碼文本形成規(guī)則導致編程和調(diào)試的難度增大,以及封裝的工作量大的問題。
本發(fā)明為解決上述技術問題而提供一種頁面模塊封裝重用方法,該方法包括以下步驟:
1)選擇需要封裝的頁面模塊,并編譯生成頁面模塊的源程序文件;
2)從頁面被編譯后生成的源程序入手,修改數(shù)據(jù)存儲方式,將數(shù)據(jù)存儲位置從系統(tǒng)內(nèi)部存儲數(shù)組修改到用戶自定義存儲數(shù)組;
3)將修改后的頁面模塊的源程序文件鏈接到用戶自定義庫頁面中,并通過編譯該用戶自定義庫得到頁面模塊的二進制目標文件;
4)在自定義庫中將頁面模塊封裝為庫元件;
5)在任一工程實例中創(chuàng)建封裝后庫元件,將其鏈接到頁面模塊形成的二進制文件,即可實現(xiàn)頁面模塊的功能重用功能。
步驟2)是將數(shù)據(jù)存儲位置從系統(tǒng)內(nèi)部存儲數(shù)組STOL、STOI和STOF修改到用戶自定義存儲數(shù)組STORL、STORI和STORF。
步驟4)是在用戶自定義庫中新建元件定義,使該庫元件圖標外形和連接節(jié)點與頁面模塊相同,能直接復制頁面模塊的圖形文件,并在庫元件腳本中設置接口函數(shù)以調(diào)用頁面模塊的二進制文件,以實現(xiàn)與頁面模塊的相同功能。
步驟1)是將需要封裝的頁面模塊單獨加載到一個新的案例工程中,編譯后即可得到該頁面模塊的源程序文件。
本發(fā)明還提供了一種頁面模塊封裝重用裝置,該頁面模塊封裝重用裝置包括編譯模塊、修改模塊、目標文件形成模塊、頁面封裝模塊和重用模塊;
所述編譯模塊用于選擇需要封裝的頁面模塊,并編譯生成頁面模塊的源程序文件;
所述修改模塊用于從頁面被編譯后生成的源程序入手,修改數(shù)據(jù)存儲方式,將數(shù)據(jù)存儲位置從系統(tǒng)內(nèi)部存儲數(shù)組修改到用戶自定義存儲數(shù)組;
所述目標文件形成模塊用于將修改后的頁面模塊的源程序文件鏈接到用戶自定義庫頁面中,并通過編譯該用戶自定義庫得到頁面模塊的二進制目標文件;
所述頁面封裝模塊用于在自定義庫中將頁面模塊封裝為庫元件;
所述重用模塊用于在任一工程實例中創(chuàng)建封裝后庫元件,將其鏈接到頁面模塊形成的二進制文件,即可實現(xiàn)頁面模塊的功能重用功能。
所述的修改模塊是將數(shù)據(jù)存儲位置從系統(tǒng)內(nèi)部存儲數(shù)組STOL、STOI和STOF修改到用戶自定義存儲數(shù)組STORL、STORI和STORF。
所述頁面封裝模塊是用于在用戶自定義庫中新建元件定義,使該庫元件圖標外形和連接節(jié)點與頁面模塊相同,能直接復制頁面模塊的圖形文件,并在庫元件腳本中設置接口函數(shù)以調(diào)用頁面模塊的二進制文件,從而實現(xiàn)與頁面模塊的相同功能。
所述的編譯模塊是將需要封裝的頁面模塊單獨加載到一個新的案例工程中,編譯后即可得到該頁面模塊的源程序文件。
本發(fā)明的有益效果是:本發(fā)明通過編譯生成頁面模塊的源程序文件,直接修改簡化源程序文件,并將其編譯生成對應的二進制目標文件,同時將頁面模塊封裝為庫元件。整個過程,本發(fā)明不需要形成和處理頁面模塊的頭文件;不需要重新定義代碼文本形成規(guī)則,不需要重新編寫庫函數(shù)的構造接口、初始化接口和運行階段的任務調(diào)用接口;不需要通過分析頁面程序和拓撲連線即可形成封裝后的圖形符號,操作更加簡單,并大大降低了編程和調(diào)試的難度,減少了封裝的工作量。
附圖說明
圖1為本發(fā)明的頁面模塊封裝重用示例;
圖2為本發(fā)明的頁面模塊封裝重用流程圖;
圖3為本發(fā)明的頁面模塊源文件函數(shù)結構示意圖。
具體實施方式
下面結合附圖對本發(fā)明的具體實施方式做進一步的說明。
本發(fā)明的頁面模塊封裝重用方法可選擇任意頁面模塊將其封裝為用戶自定義庫中的元件,并通過將元件定義多次運用于工程實例來實現(xiàn)頁面模塊的實例化重用。面向終端用戶只提供封裝后庫元件的圖形符號和腳本,以及頁面模塊的二進制目標文件,不提供源圖形頁面程序和Fortran源文件,實現(xiàn)了頁面模塊的重用,加快了開發(fā)效率,提高了仿真速度,并且封裝后圖形頁面程序不可見,有利于保護核心技術。
下面以PSCAD/EMTDC仿真系統(tǒng)中的頁面模塊封裝重用方法為例對本發(fā)明進行詳細說明,該方法實現(xiàn)流程如圖2所示,具體包括以下步驟。
1.生成頁面子模塊的源程序文件。
在PSCAD仿真系統(tǒng)中將需要封裝的頁面模塊單獨加載到一個新的案例工程中,如PICH.psc,編譯后即可得到頁面模塊的源程序文件(如PICH.f)。
2.修改簡化頁面子模塊的源程序文件。
本實施例從頁面模塊別編譯后生成的Fortran源程序入手,修改數(shù)據(jù)存儲方式,將數(shù)據(jù)存儲位置從系統(tǒng)內(nèi)部存儲數(shù)組STOL、STOI和STOF,并簡化一些不必要的代碼。頁面模塊源程序函數(shù)結構如圖3所示,在變量聲明、記錄本地索引、讀取存儲數(shù)組數(shù)據(jù)和寫入存儲數(shù)組數(shù)據(jù)四部分中,將數(shù)據(jù)存儲位置從系統(tǒng)分配存儲數(shù)組SLOT、STOL、STOI和STOF修改到用戶自定義存儲數(shù)組STORL、STORI和STPRF。
3.生成頁面模塊的二進制目標文件。
本步驟是將修改后的頁面模塊的源文件(如PICH1.f)鏈接到用戶自定義庫頁面中,并通過編譯該用戶自定義庫即可得到頁面模塊的二進制目標文件,如PICH.obj。
4.將頁面模塊封裝為庫元件。
本實施例中將工程的用戶自定義庫(如PICH.psl)中創(chuàng)建一個新的元件定義,其圖標外形和輸入輸出接口與需要封裝的頁面模塊相同,并在其腳本中添加接口函數(shù)以調(diào)用頁面模塊的子函數(shù)。以PICH為例,相關接口函數(shù)如下:
#STORAGE LOGICAL:1INTEGER:1REAL:17;功能:預處理,聲明函數(shù)使用用戶自定義存儲數(shù)組大小。
#SUBROUTINE PICHDyn;功能:預處理,對被調(diào)用函數(shù)進行聲明。CALL PICHDyn($W,$X,$KP,$TN,$LL,$LU,$Y,$QL,$QU);功能:函數(shù)調(diào)用。
封裝后的庫元件其圖標外形和連接節(jié)點與頁面模塊相同,可直接復制頁面模塊的圖形文件,并在庫元件腳本中設置接口函數(shù)來完成頁面模塊的功能調(diào)用。
5.完成頁面模塊的實例化重用。
本步驟中可在任一工程實例中(如test.psc)創(chuàng)建多個封裝后庫元件,并設置該工程屬性,將其鏈接到頁面模塊形成的二進制文件,即可實現(xiàn)頁面模塊的重用功能,如圖1所示。
本發(fā)明還提供了一種頁面模塊封裝重用裝置,該頁面模塊封裝重用裝置包括編譯模塊、修改模塊、目標文件形成模塊和重用模塊,編譯模塊用于選擇需要封裝的頁面模塊,并編譯生成頁面模塊的源程序文件;修改模塊用于從頁面被編譯后生成的源程序入手,修改數(shù)據(jù)存儲方式,將數(shù)據(jù)存儲位置從系統(tǒng)內(nèi)部存儲數(shù)組修改到用戶自定義存儲數(shù)組;目標文件形成模塊用于將修改后的頁面模塊的源程序文件鏈接到用戶自定義庫頁面中,并通過編譯該用戶自定義庫得到頁面模塊的二進制目標文件,同時在自定義庫中將頁面模塊封裝為庫元件;重用模塊用于在任一工程實例中創(chuàng)建封裝后庫元件,將其鏈接到頁面模塊形成的二進制文件,即可實現(xiàn)頁面模塊的功能重用功能。各模塊的具體實現(xiàn)手段已在方法的實施例中進行了詳細說明,這里不再贅述。
本發(fā)明通過在PSCAD仿真軟件中編譯生成頁面模塊的源程序文件,直接修改簡化源程序文件,并將其編譯生成對應的二進制目標文件,同時將頁面模塊封裝為庫元件。整個過程,本發(fā)明不需要形成和處理頁面模塊的頭文件;不需要重新定義代碼文本形成規(guī)則,不需要重新編寫庫函數(shù)的構造接口、初始化接口和運行階段的任務調(diào)用接口;不需要通過分析頁面程序和拓撲連線即可形成封裝后的圖形符號,操作更穩(wěn)簡單。大大降低了編程和調(diào)試的難度,減少了封裝的工作量,并結合了PSCAD仿真系統(tǒng)的具體應用環(huán)境,令本發(fā)明更具有可重復操作性。