韓浩+尹亞南+朱曉山
摘 要 數據報表是電站管理的一項重要功能,是對電力系統的運行參數及設備狀態進行定時記錄的一種重要形式。利用組態王提供的內嵌式報表系統以及豐富的報表函數,實現了變電仿真培訓系統中的數據報表功能,具有實時數據采集以及報表的自動保存、查詢和打印功能。
關鍵詞 組態王 報表 仿真
中圖分類號:TP317 文獻標識碼:A DOI:10.16400/j.cnki.kjdkz.2017.07.023
0 引言
組態軟件是工業控制領域開發計算機監控系統的一個快捷平臺,與VC、VB等平臺相比,利用其提供的各類工具,通過簡單的組態工作,即可實現監控系統的開發。“組態王”集自動控制、通信、畫面動態連接以及可與其它的應用軟件數據交換等功能于一身,是國內使用比較普遍的建立工業控制對象的人機接口的一種智能軟件包,其組態過程主要包括I/O設備連接、數據詞典建立、監控畫面設計以及動畫連接等幾個步驟,利用軟件圖庫所提供的豐富的圖庫元素以及各類控件保證了所開發的工業控制系統的界面一致性和通用性,其電力版在電力系統的變電運行以及變電仿真培訓系統中應用廣泛。
變電仿真培訓系統就是利用軟件或者軟硬結合的方式實現現場變電站運行系統的各種功能,以達到提高運行人員解決現場實際問題的能力。數據報表是電站管理的一項重要功能,通常以日為單位對電力系統運行中各節點以及回路的運行數據、設備的運行狀態(如斷路器等的位置信息)等進行記錄。利用日報表能實現生產過程的統計、分析,以使運行和管理人員既能夠及時掌握電力系統運行情況也可通過分析找尋出參數的變化規律,為生產任務的制定和發展規劃提供依據。
1 報表功能的實現
組態王提供的內嵌式報表系統,使開發人員可以任意設置報表格式,對報表進行組態。同時也提供了豐富的報表函數,實現各種運算、數據轉換、統計分析、報表打印等。既可以制作實時報表,也可以制作歷史報表。
1.1 自動報表功能的實現
新建畫面,在畫面中插入報表控件并設計報表格式,右鍵點畫面并在“畫面屬性”的命令語言中的“存在時”選項頁中填入如下代碼:
long xx = 0,yy =371,rww = 99, strt = 773;
string tmp, filen1; //定義變量
strt =HTConvertTime($年,$月,$日,$時,0,0);
ReportSetCellString2("Report0", 4, 1, 27, 6, " "); //清空單元格
ReportSetCellString("Report0", 2, 2, \\本站點\$日期); //填寫日期
ReportSetHistData("Report0", "\\本站點\壓力", strt, 120, "B4:B33"); //設定各參量及填充
ReportSetHistData("Report0", "\\本站點\溫度", strt, 120, "C4:C33"); //位置和采集間隔,
ReportSetHistData("Report0", "\\本站點\密度", strt, 120, "D4:D33"); //此處設定120秒,
ReportSetHistData("Report0", "\\本站點\電流", strt, 120, "E4:E33"); //可視情況改變
ReportSetHistData("Report0", "\\本站點\電壓", strt, 120, "F4:F33");
while(xx<30)
{
rww=4+xx;
yy=strt+x*120;
tmp=StrFromTime( yy, 2 );
ReportSetCellString("Report0", rww, 1, tmp);
x=x+1; //填充表中的時間列,注意應與上述數據采集時間一致
}
if($分==59&&$秒==59)
{
filen1=InfoAppDir()+"\Datafile\"+StrFromReal( $年, 0, "f" )+StrFromReal( $月, 0, "f" )+
StrFromReal( $日, 0, "f" )+StrFromReal( $時, 0, "f" )+StrFromReal($分, 0, "f" )+
StrFromReal( $秒, 0, "f" )+".rtl";
ReportSaveAs("Report0",filen1); //表整時保存,以時間命名
}
1.2 查詢功能的實現
新建畫面并插入“下拉式組合框”控件,點擊右鍵,在畫面屬性的“顯示時”選項頁中填入如下代碼:
string filen3,filen4, filen5;
filen3=InfoAppDir()+"\Datafile \*.rtl";
listClear("serh");
ListLoadFileName( " serh ",filen3);
filen4=InfoAppDir()+"\Datafile \"+\\本站點\ serh;
ReportLoad("Report1",filen4);
filen5=InfoAppDir()+"\Datafile \*.rtl";
listClear("serh ");
ListLoadFileName( " serh ", filen5);
1.3 即時保存及打印功能的實現
分別在報表畫面和查詢畫面中設置保存和打印兩個按鈕,雙擊“保存”按鈕,在“彈起時”填入如下代碼:
string filen2;
filen2=InfoAppDir()+"\Datafile \"+StrFromReal($年, 0, "f" )+StrFromReal( $月, 0, "f" )+
StrFromReal( $日, 0, "f" )+StrFromReal( $時, 0, "f" )+StrFromReal($分, 0, "f" )+
StrFromReal( $秒, 0, "f" )+".rtl";
ReportSaveAs("Report0",filen2);
雙擊“打印”按鈕,在“彈起時”填入如下代碼:
ReportPrintSetup("Report0");
2 結束語
報表系統的運行效果圖如圖1所示(說明:演示的數據采集間隔為2分鐘,整點自動保存),綜合利用組態王的報表控件以及報表函數完成了報表數據的自動采集、報表的自動保存以及查詢和打印等功能,完美地實現了變電站仿真培訓系統的報表功能
參考文獻
[1] 組態王6.55用戶手冊[R].2012.
[2] 組態王6.55命令語言函數速查手冊[R].2012.
[3] 劉學多等.面向中間件的組態王遠程數據采集驅動設計[J].計算機應用,2016.36(1).
[4] 劉景華等.基于組態王的數據采集監控系統[J].青島理工大學學報,第29卷第4期.endprint