Graph数据波形显示控件的功能介绍
本文中的数据波形显示控件Graph采用ActiveX技术开发,用于显示仪器采集进来的数据,在计算机中屏幕上进行波形连续滚动显示,实现虚拟示波器的功能,非常适合应用在工业控制中数据的图形化显示。
Graph控件可在各种编程环境中使用,包括Visual Basic、Visual C++、Delphi、Excel和Word。在同一个软件界面上可以包括多个波形界面,无需重复编写代码。Graph控件的注册见本人的博客的另一篇文章《ActiveX控件的使用方法》。下面介绍Graph控件的功能。
1、用户鼠标右键点击Graph控件,会出现图1中所示的快捷菜单,各菜单项的功能见表1。
图1 Graph图形显示控件
图1为采用数据波形显示控件Graph开发出来的软件的界面。
表1 Graph控件快捷菜单功能表
菜单项 |
子菜单项 |
功能 |
显示坐标 |
显示X坐标 |
显示鼠标所处点的X坐标,通过单击鼠标左键实现测量线的拾取,放下功能。 |
显示Y坐标 |
显示鼠标所处点的Y坐标,通过单击鼠标左键实现测量线的拾取,放下功能。 |
|
关闭显示 |
关闭坐标显示 |
|
游标测量 |
水平测量 |
进行X轴的游标测量,通过单击鼠标左键实现游标的拾取,放下功能。 |
垂直测量 |
进行Y轴的游标测量,通过单击鼠标左键实现游标的拾取,放下功能。 |
|
关闭游标 |
关闭游标测量 |
|
Y轴显示 范围 |
自动调整 |
自动调整刻度,Y方向满屏显示采集进来的数据 |
自定义 |
自主设置显示范围和跟踪阈值 |
|
显示模式 |
固定长度 |
屏幕中每个象素点显示一个数据 |
压缩模式 |
X方向满屏显示采集进来的数据 |
|
坐标转换 |
X轴坐标转换 |
X轴乘以一个系数Kx,转换成另一个单位 |
Y轴坐标转换 |
Y轴乘以一个系数Ky,转换成另一个单位 |
|
显示网络 |
—— |
标记菜单,显示/不显示网格 |
显示坐标轴单位 |
—— |
标记菜单,显示/不显示坐标轴单位 |
曲线移动 |
X方向移动 |
X方向移动图形 |
Y方向移动 |
Y方向移动图形 |
|
清除数据 |
—— |
清除前面采集进来的数据 |
粗线条显示 |
—— |
标记菜单,用粗/细线条画图形 |
线条颜色 |
|
选择线条颜色,选项有红、绿、蓝、黑 |
跟踪阈值:当最新采集进来的数dt(n)与前一时刻采集进来的数dt(n-1)的差小于跟踪阈值时,Graph控件将屏幕中最大值Max和最小值Min的平均值(Max+Min)/2画在屏幕中央;当dt(n)与dt(n-1)的差大于跟踪阈值时,则将最新采集进来的数dt(n)画在屏幕中央。比如跟踪阈值设为5,若当前采集的值与上一时刻采集的值的差在5以上,则Graph控件自动将当前采集的值画在屏幕中央;否则Graph控件将屏幕中最大值和最小值的平均值(Max+Min)/2画在屏幕中央。此项功能满足了自动跟踪当前值的需要。跟踪阈值的设置根据实际需要来定。
坐标转换:(1) X轴乘以一个系数Kx,转换成另一个单位。如Graph控件每0.5秒收到一个数据,则Kx设成0.5。此时“显示X坐标”、“X方向游标测量”、“显示坐标单位”功能将按转换成秒的单位显示。(1) Y轴乘以一个系数Ky,转换成另一个单位。如Graph控件接收的数据的原始单位为伏特(V),则Ky设成1000。此时“显示Y坐标”、“Y方向游标测量”、“显示坐标单位”功能将按转换成毫伏(mV)的单位显示。
除快捷菜单中提供的功能外,Graph控件还可通过滚动鼠标滚轮进行图形的放大、缩小,平移等功能。
2、Graph控件提供给软件开发人员的接口
(1) AddPoint函数,将一个数据加入到Graph控件的显示队列;(2) SaveSetting函数,保存Graph控件当前的设置值,这样下次启动程序时的设置值还是上次所设置的参数。需要指定保存的文件名,如“1.txt”。强烈建议在程序关闭时使用此函数;(3) LoadSetting函数,从文件中装载设置的参数。需要指定文件名,如“1.txt”,强烈建议在启动程序时使用此函数。
比如在工程中添加了一个Graph控件对象m_ctrlGraph1,则可通过m_ctrlGraph1.AddPoint(a)往Graph控件添加数据并显示出来,参数a为浮点型的数。在程序启动时调用m_ctrlGraph1.LoadSetting("1.txt")函数,在程序退出时调用m_ctrlGraph1.SaveSetting("1.txt")函数,以确保每次程序启动时的参数与上一次使用时相一致,从而实现参数的持久性。1.txt为保存参数的文件的名称,注意LoadSetting和SaveSetting中的文件名必须一致。
注意事项:同一个控件的SaveSetting和LoadSetting中的文件名必须一致,如都为“1.txt”。若一个程序工程中含多个Graph控件,则SaveSetting和LoadSetting中的文件必须有差别,如第一个Graph控件m_ctrlGraph1启动和关闭程序时采用m_ctrlGraph1.LoadSetting(“1.txt”)、m_ctrlGraph1.SaveSetting(“1.txt”),则第二个Graph控件m_ctrlGraph2启动和关闭程序时采用m_ctrlGraph2.LoadSetting(“2.txt”)、m_ctrlGraph2.SaveSetting(“2.txt”)。
Graph控件的下载在本人的“资源”里面。如有问题或有需要改进的地方,可与本人联系,E-Mail:f[email protected],QQ:275185019,本人将免费进行修改!
欢迎交流!