组态王历史趋势曲线控件_第1页
组态王历史趋势曲线控件_第2页
组态王历史趋势曲线控件_第3页
组态王历史趋势曲线控件_第4页
组态王历史趋势曲线控件_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 1 组态王历史趋势曲线控件使用组态王历史趋势曲线控件使用配置参考文档配置参考文档北京亚控科技发展有限公司北京亚控科技发展有限公司技术部技术部例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 2目录目录一、功能概述一、功能概述 .3一、功能概述一、功能概述 .3二、工程实例二、工程实例 .3三、操作步骤:三、操作步骤: .31、历史趋势曲线控件的特点: .32、创建新的工程: .42.1) 定义设备:.42.2) 定义变量:.42.3) 创建趋势曲线:.52.4) 添加曲线变量:.53、切换到运行系统: .74、控件的属性、方法: .

2、82.1) 控件的属性与方法:.82.2) 属性方法的使用举例:.14四、注意事项四、注意事项 .19图表图表图一 定义变量压力 .4图二 定义变量流量 .5图三 记录和安全区属性 .6图四 历史趋势曲线 .6图五 历史趋势曲线 .7图六 运行系统 .8图七 画面属性 .15图八 画面命令语言编辑框 .16图九 控件属性 .16图十 画面命令语言 .17图十一 运行画面 .17图十一 控件方法的使用 .18图十二 运行画面 .19例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 3一、功能概述一、功能概述常规需求:很多工业现场都会要求显示采集量的趋势曲线,包括实时曲线、历史曲线。组态王中

3、的趋势曲线的实现方法:1、 利用组态王的“工具箱”中的“实时曲线” 、 “历史曲线”实现。2、 利用组态王的“插入通用控件”中的“历史趋势曲线”实现。第一种实现方法的优点在于可以进行 WEB 的发布,实现通过 IE 浏览器进行浏览。缺点为支持的曲线笔比较少,许多功能的实现需要通过组态王的函数来实现,使用相对要麻烦。第二种实现方法的优点在于支持同时绘制 16 条曲线,功能比较完善,可以在系统运行时动态增加、删除、隐藏曲线,还可以修改曲线属性,实现无级缩放,曲线打印等等。许多功能都不需要通过编写脚本的方法实现,使用比较方便。缺点在于无法进行 WEB 的发布。二、工程实例二、工程实例以一个简单的例程

4、来说明“历史趋势曲线控件”的使用。三、操作步骤:三、操作步骤:1 1、历史趋势曲线控件的特点:、历史趋势曲线控件的特点:KVHTrend 曲线控件是组态王以 Active X 控件形式提供的绘制历史曲线和 ODBC 数据库曲线的功能性工具。该曲线具有以下特点:1 即可以连接组态王的历史库,也可以通过 ODBC 数据源连接到其它数据库上,如Access、SQLServer 等。2 连接组态王历史库时,可以定义查询数据的时间间隔,如同在组态王中使用报表查询历史数据时使用查询间隔一样。3 完全兼容了组态王原有历史曲线的功能。最多可同时绘制 16 条曲线。4 可以在系统运行时动态增加、删除、隐藏曲线。

5、还可以修改曲线属性。5 曲线图表实现无级缩放。6 可实现某条曲线在某个时间段上的曲线比较。7 数值轴可以使用工程百分比标识,也可用曲线实际范围标识,二者之间自由切换。8 可直接打印图表曲线。9 可以自由选择曲线列表框中的显示内容。例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 410可以选择移动游标时是否显示曲线数值。11可以在曲线中显示报警区域的背景色2 2、创建新的工程:、创建新的工程:2.1)2.1) 定义设备:定义设备:新建一个工程,在设备处新建设备,我们在本例中定义一个仿真 PLC 的设备,设备列表为“PLC亚控仿真 PLC串口” ,设备名称为“PLC1” 。此仿真 PLC

6、可以做为虚拟设备与组态王进行通讯。仿真 PLC 主要有如下的寄存器:自动加 1 寄存器 INCREA,自动减 1寄存器 DECREA,随机寄存器 RADOM,常量寄存器 STATIC,常量字符串寄存器STRING,CommErr 寄存器。具体的寄存器的使用请参考组态王 IO 驱动帮助。2.2)2.2) 定义变量:定义变量:在数据词典中新建两个 IO 变量,变量名称分别为 压力、流量压力、流量,变量类型为 IO 实数,连接的设备为前面定义的仿真 PLC 设备“PLC1” ,寄存器分别为INCREA100,DECREA100,数据类型为 short,读写属性为“只读” 。这样压力变量就会从 0开始

7、自动加 1,其变化范围是 0 到 100,流量变量从 100 开始自动减 1,其变化范围是 0 到100。变量基本属性定义画面如下图一、图二所示:图一 定义变量压力例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 5图二 定义变量流量在记录和安全区属性选项卡中我们定义压力和流量变量的数据记录属性,如图三所示,选择“数据变化”记录,变化灵敏度设置为 0。2.3)2.3) 创建趋势曲线:创建趋势曲线:在组态王开发系统中新建“趋势曲线”画面,在工具箱中单击“插入通用控件”或选择菜单“编辑”下的“插入通用控件”命令,弹出“插入控件”对话框,在列表中选择“历史趋势曲线” ,单击“确定”按钮,对话框

8、自动消失,鼠标箭头变为小“十”字型,在画面上选择控件的左上角,按下鼠标左键并拖动,画面上显示出一个虚线的矩形框,该矩形框为创建后的曲线的外框。当达到所需大小时,松开鼠标左键,则历史曲线控件创建成功,画面上显示出该曲线,如图四所示。双击趋势曲线,弹出“动画连接属性” ,控件名命名为“HTHT” 。点击确定完成对历史趋势曲线的命名。2.4)2.4) 添加曲线变量:添加曲线变量: 选中曲线控件点击右键,弹出菜单,选择“控件属性” ,弹出历史趋势曲线控件的属性对话框,在“曲线”选项卡,点击“增加”按钮,选择变量“压力” ,选择“线类型” 、 “线颜色”,点击“确定”完成压力曲线的添加。再点击“增加”按

9、钮,选择变量“流量” ,选择“线类型” 、例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 6 图三 记录和安全区属性 图四 历史趋势曲线例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 7“线颜色” ,点击“确定”完成流量曲线的添加。在趋势曲线控件属性的“坐标系”选项卡中对坐标系进行设置,我们设置 Y 轴的起始值为 0,最大值为 100,不按照百分比绘制,而是按照实际值显示。设置时间轴的显示格式为显示年、月、日、时、分、秒。添加完成后开发画面如图五所示: 图五 历史趋势曲线3 3、切换到运行系统:、切换到运行系统:保存画面后,在工程浏览器的“系统配置”“设置运行系统”中进行“主画

10、面配置” ,将“历史曲线”画面设置为主画面。然后切换到运行系统。运行如下图六所示:趋势曲线控件自带的工具栏中提供了很多方便实用的控制按钮功能供用户来使用,主要包括:调整跨度设置按钮,设置 Y 轴标记,曲线图表无级缩放,打印曲线,定义新曲线,更新曲线图表终止时间为当前时间,设置图表数值轴和时间轴参数,隐藏/显示变量列表。这些工具栏基本可以满足客户的使用了,如果还需要进一步的功能可以通过控件的属性、方法来实现。下面我们简单的举例说明控件的属性、方法的使用。例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 8 图六 运行系统4 4、控件的属性、方法:、控件的属性、方法:2.1)2.1) 控件的

11、属性与方法:控件的属性与方法:属性及含义列表:属性及含义列表:序号名 称数据类型含 义1CurveUseKVHistDataBool使用组态王历史数据2CruveDSNString使用数据源名称3CurveTableString数据库的表名4CurveDateTimeFieldString数据库的时间字段名5CurveInvalidColorOLE_COLOR数据库的无效值6CurveVarNameString连接变量名7CurveColorOLE_COLOR曲线颜色8CurveLineTypeShort曲线线形9CurveTimeDelayString曲线比较时间差10CurveDrawTy

12、peShort曲线绘制方式11CurveAlmColorOLE_COLOR报警显示颜色12CurveHideCurveBool是否隐藏曲线13CurveMilliSecondFieldString毫秒字段名称14CurveDataFieldString数据字段名称15CuryeInvalidValueString无效值字段名称16CurveUserStringODBC 数据源用户名17CurvePwdStringODBC 数据源密码18CurveSavePwdBoolODBC 是否保存密码19CurveListBool是否显示曲线列表20CtrlBtnBool是否显示控制按钮21BorderC

13、olorOLE_COLOR边界颜色22BakColorOLE_COLOR背景颜色23DrawXYAxisBool是否绘制坐标轴24AxisLineTypeShort坐标轴线型25AxisColorOLE_COLOR坐标轴颜色例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 926ShortDivLineBool分割线是否为短线27MajXDivNumShortX 轴主分割线数28MinXDivNumShortX 轴副分割线数29MajYDivNumShortY 轴主分割线数30MinYDivNumShortY 轴副分割线数31MajXDivLineTypeShortX 轴主分割线线型32

14、MinXDivLineTypeShortX 轴副分割线线型33MajYDivLineTypeShortY 轴主分割线线型34MinYDivLineTypeShortY 轴副分割线线型35MajXDivColorOLE_COLORX 轴主分割线颜色36MinXDivColorOLE_COLORX 轴副分割线颜色37MajXDivColorOLE_COLORY 轴主分割线颜色38MinYDivColorOLE_COLORY 轴副分割线颜色39YLabelNumShortY 轴标记数40YminValDoubleY 轴标记最小值41YmaxVaLDoubleY 轴标记最大值42YLableFontI

15、FontDispY 轴标记字体43XLabelNumShortX 轴标记数44XwidthShortX 轴宽度45XLableFontIFontDispX 轴标记字体46XLabelFmtYearBoolX 轴标记格式是否显示年47XlabelFmtMonthBoolX 轴标记格式是否显示月48XlabelFmtDayBoolX 轴标记格式是否显示日49XlabelFmtHourBoolX 轴标记格式是否显示时50XlabelFmtMinuteBoolX 轴标记格式是否显示分51XlabelFmtSecondBoolX 轴标记格式是否显示秒52XlabelFmtMilliSecondBoolX

16、 轴标记格式是否显示毫秒53XWidthUnitShortX 轴宽度单位:秒、分、时、日54XLableColorOLE_COLORX 轴标记颜色55YLableColorOLE_COLORY 轴标记颜色56CurveNumLong返回当前曲线图表中的曲线数目57AdjustWidthLong时间轴调整宽度58AdjustWidthUnitshort时间轴调整宽度单位:秒、分、时、日、毫秒59PercentBool是否按百分比绘制60YMinRealDoubleY 轴最小值61YMaxRealDoubleY 轴最大值62SampleIntervalLong采样间隔 秒63SampleInter

17、valMsLong采样间隔 毫秒64PrintTitleString打印标题65XLVernierShowBool是否显示左游标66XRVernierShowBool是否显示右游标67XLabelFmtMicroSecondBoolX 轴标记格式是否显示微秒68SampleUSBool是否微秒采样69bPrintTitleBool是否打印标题70bPrintListBool是否打印曲线列表71YUNITString纵轴单位72bHiHiAlarmAreaBool是否显示高高限报警区73HiHiAlarmAreaUpDouble高高限报警区上边界位置74HiHiAlarmAreaDownDoub

18、le高高限报警区下边界位置75bHiAlarmAreaBool是否显示高限报警区76HiAlarmAreaUpDouble高限报警区上边界位置77HiAlarmAreaDownDouble高限报警区下边界位置78bLoAlarmAreaBool是否显示低限报警区79LoAlarmAreaUpDouble低限报警区上边界位置80LoAlarmAreaDownDouble低限报警区下边界位置例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 1081bLoLoAlarmAreaBool是否显示低低限报警区82LoLoAlarmAreaUpDouble低低限报警区上边界位置83LoLoAlarm

19、AreaDownDouble低低限报警区下边界位置84LVernierStrString左游标附加信息85RVernierStrString右游标附加信息86LVernierAppendStrBool左游标是否显示附加信息87RVernierAppendStrBool右游标是否显示附加信息88LShowVernierValTypeShort左游标数值显示方式0.不显时数值1.一直显示数值2.移动游标时显示数值89RShowVernierValTypeShort右游标数值显示方式0 不显时数值1 一直显示数值2.移动游标时显示数值90bPrintSubTitleBool是否打印子标题91Prin

20、tSubTitleString打印子标题92SubTitlePosShort子标题位置控件方法说明:控件方法说明:1.1.VoidVoid ChangeCurveVarName(longChangeCurveVarName(long 1Index,BSTR1Index,BSTR 1pszNewValue);1pszNewValue);功能:改变历史曲线所连接的变量,该变量数据来自组态王历史库。参数:1Index:曲线索引号1pszNewValue:变量名2.VoidVoid ChangeCurveVarNameForODBC(LONGChangeCurveVarNameForODBC(LONG

21、 lIndex,STRINGlIndex,STRING szNewName,STRINGszNewName,STRING szDSN,STRINGszDSN,STRING szUser,STRINGszUser,STRING szPwd,STRINGszPwd,STRING szTable,STRINGszTable,STRING szDateTimeField,STRINGszDateTimeField,STRING szMilliSecondField,STRINGszMilliSecondField,STRING szDataField,STRINGszDataField,STRING

22、szInvalidValue)szInvalidValue);功能:改变历史曲线所连接的变量,该变量数据来自 ODBC 数据源。参数:lIndex:曲线索引号 szNewName:所连接变量 szDSN:使用的数据源名 szUser:用户名 szPwd:密码 szTable:数据库的表名 szDateTimeField:表中对应的时间字段 szMilliSecondField:表中对应的毫秒字段 szDataField:表中对应的数据字段szInvalidValue:表中对应的无效值例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 113.3.StringString HTGetTime

23、StringAtScooter(shortHTGetTimeStringAtScooter(short nScootNum,StringnScootNum,String szFormat);szFormat);功能:取得指定指示器处的时间,该时间为字符串格式参数:nScootNum:指示器索引,1左、2右 szFormat:指定所需要的时间字符串格式,可为下列之一:“Date”:以 Windows 控制面板相同格式显示日期“Time”:以 Windows 控制面板相同格式显示时间“DateTime”:以 Windows 控制面板相同格式显示日期时间返回值:字符串型日期时间值4.4.FloatF

24、loat HTGetPenRealValue(shortHTGetPenRealValue(short nPenNum,StringnPenNum,String szContent);szContent);功能:取得指定曲线 Y 轴(数值轴)起点或终点的实际值参数:nPenNum:曲线索引,116 szContent:指定所需要类型,可为下列之一:“Start”:将 Y 轴下限值的工程百分比转换为实际值“End”:将 Y 轴上限值的工程百分比转换为实际值“Valid”:判断取得的值是否有效,0无效,1有效返回值:工程百分比对应的实际值5.5.FloatFloat HTGetValue(shor

25、tHTGetValue(short nPenNum,StringnPenNum,String szValType);szValType);功能:取得指定曲线整个图表上(当前可见部分)的最大/最小/平均值参数:nPenNum:曲线索引,116 szValType:指定所需要的计算类型,可为下列之一:“AverageValue”:整个趋势的平均值“MaxValue”:整个趋势的最大值“MinValue”:整个趋势的最小值“Valid”:判断取得的值是否有效,0无效,1有效返回值:曲线整个图表上(当前可见部分)的最大/最小/平均值6.6.FloatFloat HTGetValueAtScooter(

26、shortHTGetValueAtScooter(short nPenNum,shortnPenNum,short nScootNum,StringnScootNum,String szValType);szValType);功能:取得指定曲线在指示器位置处所要求的值参数:nPenNum:曲线索引,116 nScootNum:指示器索引,1左、2右 szValType:指定所需要类型,可为下列之一:例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 12“Value”:取得指示器处的值“Valid”:判断取得的值是否有效,0无效,1有效返回值:指定曲线在指定指示器处的值7.7.FloatF

27、loat HTGetValueAtZone(shortHTGetValueAtZone(short nPenNum,StringnPenNum,String szValType);szValType);功能:取得指定曲线在左右指示器之间的的最大/最小/平均值参数:nPenNum:曲线索引,116 szValType:指定所需要的计算类型,可为下列之一:“AverageValue”:平均值“MaxValue”:最大值“MinValue”:最小值“Valid”:判断取得的值是否有效,0无效,1有效返回值:指定曲线在左右指示器之间的的最大/最小/平均值8.8.VoidVoid HTScrollLef

28、t();HTScrollLeft();功能:将曲线的起始时间左移一个调整跨度参数:无返回值:无9.9.VoidVoid HTScrollRight();HTScrollRight();功能:将曲线的起始时间右移一个调整跨度参数:无返回值:无10.10. VoidVoid HTUpdateToCurrentTime();HTUpdateToCurrentTime();功能:将曲线的终止时间设为当前时间参数:无返回值:无11.11. VoidVoid HTSetLeftScooterTime(LongHTSetLeftScooterTime(Long lTimelTime,shortshort s

29、MilliSecond);sMilliSecond);功能:设置曲线时间坐标起点参数:lTime:时间的年月日时分秒部分,将该时间用 HTConvertTime()函数转换为自 1970 年 1 月 1 日 0 时到指定时间的秒数 sMilliSecond:时间的毫秒部分返回值:无例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 1312.12. VoidVoid HTZoomIn(stringHTZoomIn(string szLookString);szLookString);功能:通过增大时间轴和数值轴长度,使曲线图表缩小参数:szLookString:缩放类型,可为下列之一:“S

30、tartTime”:保持起始时间与缩放前相等 “EndTime”:保持终止时间与缩放前相等 “Center”:保持中心时间与缩放前相等返回值:无13.13. VoidVoid HTZoomOut(stringHTZoomOut(string szLookString);szLookString);功能:通过缩短时间轴和数值轴长度,使曲线图表放大参数:szLookString:缩放类型,可为下列之一:“StartTime”:保持起始时间与缩放前相等“EndTime”:保持终止时间与缩放前相等“Center”:保持中心时间与缩放前相等返回值:无14.14. VoidVoid SetTimePara

31、m(longSetTimeParam(long lStartTime,lStartTime, shortshort sStartms,sStartms, longlong lXWidth,lXWidth, shortshort sXWidthUnit)sXWidthUnit)功能:设置历史曲线时间坐标起点、时间轴长度参数:lStartTime时间年月日时分秒部分sStartms时间的毫秒部分lXWidth时间轴长度sXWithUnit时间轴长度单位:0-秒 1-分 2-时 3-日 4-毫秒返回值:无注:组态王 6.5 第二版,sXWithUnit 必须为 0,即秒,lXWidth 为转换为秒后

32、的时间长度。15.15. voidvoid SetTimeParamDivided(longSetTimeParamDivided(long sStartYear,sStartYear, longlong sStartMonth,sStartMonth, longlong sStartDay,sStartDay, longlong sStartHour,sStartHour, longlong sStartMinute,sStartMinute, longlong sStartSecond,sStartSecond, longlong sStartms,sStartms, longlong l

33、XWidth,lXWidth, longlong sXWidthUnit)sXWidthUnit)功能:设置历史曲线时间坐标起点、时间轴长度,可以直接输入时间参数, 与SetTimeParam 实现的功能相同.参数:sStartYear 时间的年例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 14sStartMonth 时间的月sStartDay 时间的日sStartHour 时间的时sStartMinute 时间的分sStartSecond 时间的秒sStartms 时间的毫秒lXWidth 时间轴长度sXWidthUnit 时间轴长度单位:0-秒 返回值:无16.16. voidv

34、oid SetTimeParamString(STRINGSetTimeParamString(STRING strStartTime,strStartTime, STRINGSTRING strEndTime)strEndTime)功能:设置历史曲线时间坐标起点、终点,可以直接输入以字符串形式表示的时间参数参数:strStartTime 开始时间字符串strEndTime 结束时间字符串 例例: m 为历史曲线控件名称,定义按钮弹起时:m. SetTimeParamString(2004 年 9 月 20 日 13 时 0 分 0 秒 1 毫秒,2004 年 9 月 20 日 15 时 20

35、 分 2 秒 999 毫秒) 设置时间轴范围为:2004-9-20 13:00:00:0012004-9-20 15:20:02:999;17.17. ShowCurve(LONGShowCurve(LONG lIndex,BOOLlIndex,BOOL bShow)bShow)功能:显示或隐藏指定的曲线参数:lIndex 曲线索引,116bShow 取 1 显示曲线,取 0 隐藏曲线18.18. void PrintCurve()功能:打印,与控件打印按钮实现相同功能参数:无返回值:无2.2)2.2) 属性方法的使用举例:属性方法的使用举例:属性举例:属性举例:我们举一个简单的例程来说明控件

36、属性的使用:CtrlBtn,是否显示控制按钮。Bool 类型,1:显示控制按钮,0:隐藏控制按钮。CurveList:是否显示曲线列表。Bool 类型,1:显示曲线列表,0:隐藏曲线列表。假设我们不想让客户利用趋势曲线控件自例程:历史趋势曲线控件的使用 北京亚控科技发展有限公司 15带的工具栏来实现相应的操作,并且也不显示曲线列表。则可以隐含此工具栏并隐藏曲线列表,利用 CtrlBtn 属性、CurveList 属性来实现。在“历史曲线”画面空白处点击右键,弹出菜单,选择“画面属性” ,弹出七所示:图七 画面属性点击“命令语言”按钮,进入画面属性命令语言编辑画面,我们在画面“显示时”编写脚本程序,点击“控件”按钮,如下图八所示,弹出控件选择

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论