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