一種頁面模塊封裝重用方法及裝置與流程
2023-10-17 09:24:24 1

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