计算机测绘图形程序在火力发电机组中的应用

时间:2022-09-07 05:14:52

计算机测绘图形程序在火力发电机组中的应用

摘要:文章介绍了火力发电机组中可以实现相关应用目的的图形软件的应用环境。

关键词:B/S;Delphi;C++ Builder

中图分类号:TP311 文献标识码:A 文章编号:1000-8136(2012)09-0032-02

在火力发电机组中,利用计算机测绘图形软件开发出的实施图形来判断现场工况的变化的现象已日渐普遍。因其软件传达信息方便、快捷、省时、节约资源等特点,已越来越被各厂所认可及普及。本文旨在介绍实现测绘图形界面的若干类开发应用环境。

1在浏览器B/S环境下的应用

按照电厂运行监测要求,数据库中的数据每分钟刷新一次,这就要求Web页面中的数据要不断刷新与数据库的连接以保证获得新的数据,反映到实时曲线中。由于在刷新页面也会出现同实时数据显示的同样问题而导致白屏、影响视觉效果。在这里我们采用嵌入Iframe子页面的属性。Iframe标记又叫浮动帧标记。它不同于Frame标记最大的特征即这个标记所引用的HTML文件不是与另外的HTML文件相互独立显示,而是可以直接嵌入在一个HTML文件中。另外,还可以多次在一个页面内显示同一内容,而不必重复写内容。在Frame中不能传递参数问题在这里得到了解决。因为首先它与相包含页面不是互相独立在index.asp中的,而是相互成为一个整体,既可以接受外部传来的参数又可以进行内部参数传递。

曲线的绘制采用VML和JavaScript、VBScript等脚本语言相结合的方法。添加一个Group对象,让其他VML对象拥有同一个坐标系。实时曲线图形由坐标轴、网格、实时线段、基准线构成。坐标轴的纵轴表示量程范围,横轴为时间轴,均使用Line对象。现例举一个Drawline实时曲线函数,工作背景如图:

v为子页面的传递参数,也就是电厂中某一点需要实时观测的点的数据,通过子页面的不断刷新:值调用该line(v)函数,首次调用时只有一点不能形成线段,t为累加器,所以当t=0时,把原始点数据横纵座标值赋给a、b。当t不为零时,将横纵座标点值赋给c、d。这样从a、b至c、d我们可以通过VML的line构成一条折线,并且画出,然后把c、d的值赋给a、b,当再次调用时以上次的结束点作为下次的起点,这样持续调用的过程中就在页面上实现了该点的实时动态曲线。

2在Delphi环境中的应用

该组件功能十分强大,可以绘制多种图形,包括二维和三维的,且可选择的方式有多种,在这里仅介绍二维实时曲线的绘制。Teechart组控件有chart和Dbchart两个控件。

2.1chart控件

利用chart控件的Addxy的方法绘制曲线现给出定时绘制曲线的部分代码:

procedure TTeeMainForm.Timer1Timer(Sender: TObject);// 定时程序

var tmpX:Double;

begin

With FastLineSeries1 do

begin

tmpX:=XValues[1]-XValues[0] ; // 取得相邻两点的间隔

Delete(0); // 删除曲线第一个点,这个很重要

Add XY (X Va lu e s .L a s t+ tmpX ,

Random(100),”,clTeeColor);// 绘制随机曲线。

end;

end;

2.2Dbchart控件

Dbchart控件主要是与数据库相连,只要在这个控件的数据库选项选择数据库,就会在该控件中绘制出这部分数据的曲线,如果数据库定时刷新,曲线也就跟着变化,这样就绘制出实时曲线。由于篇幅,现在仅给出在实际运行中的画面。利用 Teechart的方法可以完成比较复杂的曲线绘制工作,而且操作简单,达到的效果也较好。

以上代码在delphi5.0,delphi6.0中运行通过。

3在C++ Builder环境中的应用

C++ Builder中嵌入了同公司的产品Delphi组件TeeChar,t 它包括:Additiona l页的TChar, t Data Controls页的控件的TDBChar,t Decision Cube页上的TDec isionGraph和Qreport页上的TQRChart组件,其中TChart是基本组件,其余的都是由它继承来的。它们都可以很方便地实现图表的绘制,而且绘制图形功能强大、界面友好。

在电动加载实验台系统中,需要通过下位机采集角度和力矩信号并上传给上位机,然后由上位机来处理数据并进行曲线的拟合和可视化显示,以此来分析实验效果。例如,上载数据角度、变频器反馈力矩值和力矩传感器力矩值,分别将其存放在数组sita[100]、t_feed[100]、t_sensor[100]中(在下位机系统中由于硬件和实验时间的限制仅仅采集了100个有效点),而在实际曲线显示时根据用户的需求则需要增加到500个点,因此需要进行插值处理。

曲线绘制步骤如下:先在绘制曲线的窗体添加控件,然后双击该控件,在Ser ies页面下点击Add按钮即可添加需要的曲线类型。同时也可以在其他页面下修改TChart控件的其他属性,比如T itle,Axis等,这些属性值的设置也可以在运行阶段在程序中实现或对其进行修改。程序如下:

刚添加时在界面上显示的只是设计阶段的随机曲线显示,要在运行阶段看到曲线,就必须添加相应的代码。在具体的实验中加入了两条曲线,双击TChart控件,在ChartT itles页面下设置显示曲线为/角度-力矩对比曲线0;在ChartAxis页面下,设置Left下的T itle为/力矩(牛#米)0,设置Bottom下的T itle为/角度(度)0。实现程序如下:

void_fastcall TForm1J FormShow(TObject* Sende r)

{

/ /用户自己编写复杂的插值函数, 将100 组数据3 次样条

插值成500组数据;

, , , , , , , , , , , ,

/ /将插值后的数据保存在Psita[i]、Pt_feed[i]、Pt_sensor

[i]中

这样就可以完成曲线的绘制了。

4结束语

VML相当于IE里面的画笔,根据语言控制读取数据库中实时变化的数据以实现你所想要的图形,而且结合脚本,可以让图形产生动态或连续的效果。

Delphi组件功能十分强大,可以绘制多种图形,包括二维和三维的,且可供选择的方式有多种,选择余地较大。

采用C++ Builder来快速开发程序的界面并与下位机进行通信,利用MATLAB的内核来进行数据的计算及显示的工作,使得两种方法优势互补,整个工程开发工程量也相应减少,且实现的效果要更好。

上一篇:《公路技术状况评定标准》在农村公路中应用的... 下一篇:水电厂调速器常见故障的原因及处理方案探讨