韩浩+尹亚南+朱晓山
摘 要 数据报表是电站管理的一项重要功能,是对电力系统的运行参数及设备状态进行定时记录的一种重要形式。利用组态王提供的内嵌式报表系统以及丰富的报表函数,实现了变电仿真培训系统中的数据报表功能,具有实时数据采集以及报表的自动保存、查询和打印功能。
关键词 组态王 报表 仿真
中图分类号: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