KVHTrend控件使用方法1.docx
《KVHTrend控件使用方法1.docx》由会员分享,可在线阅读,更多相关《KVHTrend控件使用方法1.docx(16页珍藏版)》请在冰豆网上搜索。
KVHTrend控件使用方法1
KVHTrend控件使用方法
KVHTrend曲线控件是组态王以ActiveX控件形式提供的绘制历史曲线和ODBC数据库曲线的功能性工具。
通过该控件,不但可以实现历史曲线的绘制,还可以实现ODBC数据库中数据记录的曲线绘制,而且在运行状态下,可以实现在线动态增加/删除曲线、曲线图表的无级缩放、曲线的动态比较、.曲线的打印等。
该曲线控件最多可以绘制16条曲线。
1、创建历史曲线控件:
在组态王开发系统中新建画面,在工具箱中单击“插入通用控件”或选择菜单“编辑”下的“插入通用控件”命令,弹出“插入控件”对话框,在列表中选择“历史趋势曲线”,单击“确定”按钮,对话框自动消失,鼠标箭头变为小“十”字型,在画面上选择控件的左上角,按下鼠标左键并拖动,画面上显示出一个虚线的矩形框,该矩形框为创建后的曲线的外框。
当达到所需大小时,松开鼠标左键,则历史曲线控件创建成功,画面上显示出该曲线,如图1所示。
图1历史曲线控件
2、设置控件固有属性:
控件创建完成后,在控件上单击右键,在弹出的快捷菜单中选择“控件属性”命令,弹出历史曲线控件的固有属性对话框,如图2所示。
控件固有属性含有两个属性页:
曲线、坐标系。
下面详细介绍每个属性页中的含义。
2、1曲线属性页
如图2所示,曲线属性页中下半部分为定义在绘制曲线时,历史数据的来源,可以选择组态王的历史数据库或其它数据库为数据源。
曲线属性页中上半部分“曲线”是定义曲线图表初始状态的曲线变量、绘制曲线的方式、是否进行曲线比较等:
Ø列表框:
显示已经添加的变量的名称及绘制方式定义等。
Ø“增加”按钮:
增加变量到曲线图表,并定义曲线绘制方式。
单击该按钮,弹出如图3所示的对话框。
图2历史曲线控件固有属性
图3增加曲线
●变量名称:
在“变量名称”文本框中输入要添加的变量的名称,或在左侧的列表框中选择,该列表框中列出了本工程中所有定义了历史记录属性的变量,单击鼠标选择,则选中的变量名称自动添加到“变量名称”文本框中。
●曲线定义:
线类型:
单击“线类型”后的下拉列表框,选择当前选择的变量绘制曲线时的线的类型。
线颜色:
单击“线颜色”后的按钮,在弹出的调色板中选择绘制的曲线的颜色。
绘制方式:
曲线的绘制方式有四种:
模拟、阶梯、逻辑、棒图,可以任选一种。
隐藏曲线:
是否在绘制曲线时初始设置隐藏当前绘制的曲线。
●曲线比较:
通过设置曲线比较时间差,使曲线绘制位置有一个时间轴上的平移,这样通过关联的变量名相同,但一个是显示与时间轴相同的时间的数据,另一个作比较的曲线显示与时间轴的时间差为某个值的数据(如一天前),从而达到用两条曲线来实现了曲线比较的目的。
●数据来源:
选择曲线使用的数据来源,可同时支持组态王历史库和ODBC数据源。
若选择ODBC数据源,必须先配置数据源.具体配置方法如下:
1、启动控制面板中的数据源ODBC。
单击“系统DSN”项。
单击“增加”,弹出“创建新数据源”对话框。
2、选择所需数据源的驱动如“MicrosoftAccressDriver(*.mdb)”,单击“完成”按钮。
弹出“ODBCMicrosoftAccress安装”对话框。
3、在“数据源名”中定义一个数据源名称,数据库“选择”中选择曲线数据所在的数据库,此数据库的表至少有三个字段:
时间字段、数据字段、毫秒字段。
单击“确定”,新创建的数据源就添加到“系统DSN”列表中。
数据源:
选择曲线使用的数据库,在弹出的“SelectDataSource”中选择上面定义的数据源。
表名称:
选择曲线使用的数据来自所选数据库的某一个表
时间字段:
选择曲线数据对应的时间记录,日期/时间类型
数据字段:
选择曲线对应的数据值,长整型或浮点型
毫秒字段:
选择曲线数据对应的毫秒记录,数字类型
无效值:
每一条曲线都和表中一个表示其值的字段关联,这个字段的值在某一时点可能是无效的,但表的结构决定了这个字段在一条记录中的值不能为空白,所以就有了无效值的定义。
比如:
1)当表中数值字段的值为NULL时表示该点数据无效,那么配置无效值时就可以空。
2)当表中数值字段的值为0时表示该点数据无效,那么配置无效值时就可以写0。
3)当表中数值字段的值为“abcd”时表示该点数据无效,那么配置无效值时就可以写“abcd”。
选择完变量并配置完成后,单击“确定”,则曲线名称添加到“曲线列表”中。
如图4所示:
图4增加变量到曲线列表
如上所述,可以增加多个变量到曲线列表中。
Ø“删除”按钮:
删除当前列表框中选中的曲线定义。
Ø“修改”:
修改当前列表框中选中的曲线定义。
Ø“显示列表”选项:
是否显示如图1中的曲线变量列表。
Ø数据源:
显示曲线使用数据源的信息。
2.2坐标系属性页
如图2,单击“坐标系”标签,进入坐标系属性设置页,如图5所示。
图5坐标系属性页
Ø边框颜色和背景颜色:
设置曲线图表的边框颜色和图表背景颜色。
单击相应按钮,弹出浮动调色板,选择所需颜色。
Ø绘制坐标轴选项:
是否在图表上绘制坐标轴。
单击“轴线类型”列表框选择坐标轴线的线型;单击“轴线颜色”按钮,选择坐标轴线的颜色。
绘制出的坐标轴为带箭头的表示X、Y方向的直线。
Ø“分割线”定义:
定义时间轴、数值轴主次分割线的数目、线的类型、线的颜色等。
如果选择了分割线“为短线”,则定义的主分割线变为坐标轴上的短线,曲线图表不再是被分割线分割的网壮结构,如图6所示。
此时,次分割线不再起作用,其选项也变为灰色无效。
图6分割线与分割线为短线
Ø标记数值(Y)轴:
“标记数目”编辑框中定义数值轴上的标记的个数,“最小值”、“最大值”编辑框定义初始显示的值的百分比范围(0~100%)。
单击“字体”按钮,弹出字体、字型、字号选择对话框,选择数值轴标记的字体及颜色等。
Ø标记时间(X)轴:
“标记数目”编辑框中定义时间轴上的标记的个数。
通过选择“格式”或的选项,选择时间轴显示的时间的格式及内容。
“时间长度”编辑框定义初始显示时图表所显示的时间段的长度。
单击“字体”按钮,弹出字体、字型、字号选择对话框,选择数值轴标记的字体及颜色等。
所有项定义完成后,单击“确定”返回。
3、设置控件的动画连接属性
以上所述为设置控件的固有属性,要在组态王中使用该控件,还需设置控件的动画连接属性。
用鼠标选中并双击该控件,弹出“动画连接属性”设置对话框,如图7所示。
图7设置控件动画连接属性
动画连接属性共有3个属性页,下面一一介绍:
“常规”属性页:
如图7所示。
Ø控件名:
定义该控件在组态王中的标识名,如“历史曲线”,该标识名在组态王当前工程中应该唯一。
Ø优先级、安全区:
定义控件的安全性,单击“安全区选择”按钮选择所需安全区。
“属性”属性页:
如图8所示。
图8“属性”属性页
定义控件的属性与组态王的变量的关联。
“事件”属性页:
如图9所示。
图9事件属性页
定义控件的事件函数。
以上控件的各个动画连接属性的定义请参见《组态王6.0使用手册》第十五章“控件”。
这里不在详细描述。
4、控件属性、方法列表
4.1控件属性列表
序号
名称
数据类型
含义
1
CurveUseKVHistData
Long
使用组态王历史数据
2
CruveDSN
Long
使用数据源名称
3
CurveTable
Long
数据库的表名
4
CurveDateTimeField
Long
数据库的时间字段名
5
CurveInvalidColor
Long
数据库的无效值
6
CurveVarName
Long
连接变量名
7
CurveColor
Long
曲线颜色
8
CurveLineType
Long
曲线线形
9
CurveTimeDelay
Long
曲线比较
10
CurveDrawType
Long
曲线绘制方式
11
CurveAlmColor
Long
报警显示颜色
12
CurveHideCurve
Long
是否隐藏曲线
13
CurveMilliSecondField
Long
毫秒字段
14
CurveDataField
Long
数据字段
15
CuryeInvalidValue
Long
无效值字段
16
CurveUser
Long
用户名
17
CurvePwd
Long
密码
18
CurveSavePwd
Long
确认密码
19
CurveList
Bool
是否显示曲线列表
20
CtrlBtn
Bool
是否显示控制按钮
21
BorderColor
OLE_COLOR
边界颜色
22
BakColor
OLE_COLOR
背景颜色
23
DrawXYAxis
Bool
是否绘制坐标轴
24
AxisLineType
Long
坐标轴线型
25
AxisColor
OLE_COLOR
坐标轴颜色
26
ShortDivLine
Bool
分割线是否为短线
27
MajXDivNum
Long
X轴主分割线数
28
MinXDivNum
Long
X轴副分割线数
29
MajYDivNum
Long
Y轴主分割线数
30
MinYDivNum
Long
Y轴副分割线数
31
MajXDivLineType
Long
X轴主分割线线型
32
MinXDivLineType
Long
X轴副分割线线型
33
MajYDivLineType
Long
Y轴主分割线线型
34
MinYDivLineType
Long
Y轴副分割线线型
35
MajXDivColor
OLE_COLOR
X轴主分割线颜色
36
MinXDivColor
OLE_COLOR
X轴副分割线颜色
37
MajXDivColor
OLE_COLOR
Y轴主分割线颜色
38
MinYDivColor
OLE_COLOR
Y轴副分割线颜色
39
YLabelNum
Long
Y轴标记数
40
YMinVal
Float
Y轴标记最小值
41
YMaxVaL
Float
Y轴标记最大值
42
YLableFont
IFontDisp
Y轴标记字体
43
XLabelNum
Long
X轴标记数
44
XWidth
Long
X轴宽度
45
XLableFont
IFontDisp
X轴标记字体
46
XLabelFmtYear
Bool
X轴标记格式—是否显示年
47
XlabelFmtMonth
Bool
X轴标记格式—是否显示月
48
XlabelFmtDay
Bool
X轴标记格式—是否显示日
49
XlabelFmtHour
Bool
X轴标记格式—是否显示时
50
XlabelFmtMinute
Bool
X轴标记格式—是否显示分
51
XlabelFmtSecond
Bool
X轴标记格式—是否显示秒
52
XlabelFmtMilliSecond
Bool
X轴标记格式—是否显示毫秒
53
XWidthUnit
Long
X轴宽度单位:
秒、分、时、日
54
XLableColor
OLE_COLOR
X轴标记颜色
55
YLableColor
OLE_COLOR
Y轴标记颜色
56
CurveNum
Long
返回当前曲线图表中的曲线数目
57
AdjustWidth
Long
时间轴调整宽度
58
AdjustWidthUnit
Long
时间轴调整宽度单位:
秒、分、时、日、毫秒
注:
以上属性中除CurveNum为只读型外,其它属性均为可读写类型。
4.2控件方法列表
1、VoidCurveVarName(long1Index,BSTR1pszNewValue);
Ø功能:
改变历史曲线所连接的变量
Ø参数:
1Index:
曲线索引号
1pszNewValue:
变量名
Ø举例:
定义变量V1,m为历史曲线控件名称,定义按钮弹起时
m.ChangeCurveVarName(1,"\\本站点\v1");
把第一条曲线连接的变量改成V1。
2、VoidChangeCurveVarNameForODBC(LONGlIndex,STRINGszNewName,STRINGszDSN,STRINGszUser,STRINGszPwd,STRINGszTable,STRINGszDateTimeField,STRINGszMilliSecondField,STRINGszDataField,STRINGszInvalidValue);
Ø功能:
改变历史曲线所连接的变量
Ø参数:
lIndex:
曲线索引号
szNewName:
所连接变量
szDSN:
使用的数据源名
szUser:
用户名
szPwd:
密码
szTable:
数据库的表名
szDateTimeField:
表中对应的时间字段
szMilliSecondField:
表中对应的毫秒字段
szDataField:
表中对应的数据字段
szInvalidValue:
表中对应的无效值
Ø举例:
定义变量V2,m为历史曲线控件名称,定义按钮弹起时
m.ChangeCurveVarNameForODBC(2,"\\本站点\v2","ocx","市场","abcd","milli","date","ms","data",);
把第二条曲线连接的变量改成V2。
3、StringHTGetTimeStringAtScooter(shortnScootNum,StringszFormat);
Ø功能:
取得指定指示器处字符串格式的时间
Ø参数:
nScootNum:
指示器索引,1—左、2—右
szFormat:
指定所需要的时间字符串格式,可为下列之一:
“Date”:
以Windows控制面板相同格式显示日期
“Time”:
以Windows控制面板相同格式显示时间
“DateTime”:
以Windows控制面板相同格式显示日期时间
Ø返回值:
字符串型日期时间值
Ø举例:
定义DatTim为字符串型变量,取得当前左指示器的日期时间字符串
DatTim=HTGetTimeStringAtScooter(1,”DateTime”);
2、FloatHTGetPenRealValue(shortnPenNum,StringszContent);
Ø功能:
取得指定曲线Y轴(数值轴)起点或终点的实际值
Ø参数:
nPenNum:
曲线索引,1~16
szContent:
指定所需要类型,可为下列之一:
“Start”:
将下限值的工程白分比转换为实际值
“End”:
将上限值的工程白分比转换为实际值
“Valid”:
判断取得的值是否有效,0—无效,1—有效
Ø返回值:
工程百分比对应的实际值
Ø举例:
定义PenVal实数型变量,取得第一条曲线当前下限值的实际值
PenVal=HTGetPenRealValue(1,”Start”);
3、FloatHTGetValue(shortnPenNum,StringszValType);
Ø功能:
取得指定曲线整个图表上(当前可见部分)的最大/最小/平均值
Ø参数:
nPenNum:
曲线索引,1~16
szValType:
指定所需要类型,可为下列之一:
“AverageValue”:
整个趋势的平均值
“MaxValue”:
整个趋势的最大值
“MinValue”:
整个趋势的最小值
“Valid”:
判断取得的值是否有效,0—无效,1—有效
Ø返回值:
曲线整个图表上(当前可见部分)的最大/最小/平均值
Ø举例:
定义PenVal实数型变量,取得第一条曲线在整个图表上的最大值
PenVal=HTGetValue(1,”MaxValue”);
4、FloatHTGetValueAtScooter(shortnPenNum,shortnScootNum,StringszValType);
Ø功能:
取得指定曲线在指示器位置处所要求的值
Ø参数:
nPenNum:
曲线索引,1~16
nScootNum:
指示器索引,1—左、2—右
szValType:
指定所需要类型,可为下列之一:
“Value”:
取得指示器处的值
“Valid”:
判断取得的值是否有效,0—无效,1—有效
Ø返回值:
指定曲线在指定指示器处的值
Ø举例:
定义PenVal实数型变量,取得第一条曲线在右指示器处的值
PenVal=HTGetValueAtScooter(1,,2,”Value”);
5、FloatHTGetValueAtZone(shortnPenNum,StringszValType);
Ø功能:
取得指定曲线在左右指示器之间的的最大/最小/平均值
Ø参数:
nPenNum:
曲线索引,1~16
szValType:
指定所需要类型,可为下列之一:
“AverageValue”:
平均值
“MaxValue”:
最大值
“MinValue”:
最小值
“Valid”:
判断取得的值是否有效,0—无效,1—有效
Ø返回值:
指定曲线在左右指示器之间的的最大/最小/平均值
Ø举例:
定义PenVal实数型变量,取得第一条曲线的最大值
PenVal=HTGetValueAtZone(1,”MaxValue”);
6、VoidHTScrollLeft();
Ø功能:
将曲线的起始时间左移一个调整跨度
Ø参数:
无
Ø返回值:
无
7、VoidHTScrollRight();
Ø功能:
将曲线的起始时间右移一个调整跨度
Ø参数:
无
Ø返回值:
无
8、VoidHTUpdateToCurrentTime();
Ø功能:
将曲线的终止时间设为当前时间
Ø参数:
无
Ø返回值:
无
9、VoidHTSetLeftScooterTime(LonglTime,shortsMilliSecond);
Ø功能:
设置曲线时间坐标起点
Ø参数:
lTime:
时间的年月日时分秒部分,将该时间用HTConvretTime()函数转换为自1970年1月1日0时到指定时间的秒数
sMilliSecond:
时间的毫秒部分
Ø返回值:
无
Ø举例:
定义ST为起始时间,设置该曲线的起始时间为2001年12月1日0时0分0秒,毫秒部分为0
ST=HTConvretTime(2001,12,1,0,0,0);
HTSetLeftScooterTime(ST,0);
10、VoidHTZoomIn(stringszLookString);
Ø功能:
通过增大时间轴和数值轴长度,是曲线图表缩小
Ø参数:
szLookString:
缩放类型
“StartTime”:
保持起始时间与缩放前相等
“EndTime”:
保持终止时间与缩放前相等
“Center”:
保持中心时间与缩放前相等
Ø返回值:
无
Ø举例:
缩小图表,使中心时间保持不变
HTZoomIn(“Center”);
11、VoidHTZoomOut(stringszLookString);
Ø功能:
通过缩短时间轴和数值轴长度,是曲线图表放大
Ø参数:
szLookString:
缩放类型
“StartTime”:
保持起始时间与缩放前相等
“EndTime”:
保持终止时间与缩放前相等
“Center”:
保持中心时间与缩放前相等
Ø返回值:
无
Ø举例:
放大图表,使起始时间保持不变
HTZoomIn(“StartTime”);
12、VoidSetTimeParam(longlStartTime,shortsStartms,longlXWidth,shortsXWidthUnit)
Ø功能:
设置历史曲线时间坐标起点、时间轴长度
Ø参数:
longlStartTime时间年月日时分秒部分
shortsMilliSecond时间的毫秒部分
longlXWidth时间轴长度
shortsXWithUnit时间轴长度单位:
0-秒1-分2-时3-日4-毫秒