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

下载本文档

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

文档简介

组态王历史趋势曲线控件使用组态王历史趋势曲线控件使用 配置参考文档配置参考文档 北京亚控科技发展有限公司北京亚控科技发展有限公司 技术部技术部 目录目录 一、功能概述一、功能概述 .3 一、功能概述一、功能概述 .3 二、工程实例二、工程实例 .3 三、操作步骤:三、操作步骤: .3 1、历史趋势曲线控件的特点: .3 2、创建新的工程: .4 2.1) 定义设备:.4 2.2) 定义变量:.4 2.3) 创建趋势曲线:.5 2.4) 添加曲线变量:.5 3、切换到运行系统: .7 4、控件的属性、方法: .8 2.1) 控件的属性与方法:.8 2.2) 属性方法的使用举例:.14 四、注意事项四、注意事项 .19 图表图表 图一 定义变量压力 .4 图二 定义变量流量 .5 图三 记录和安全区属性 .6 图四 历史趋势曲线 .6 图五 历史趋势曲线 .7 图六 运行系统 .8 图七 画面属性 .15 图八 画面命令语言编辑框 .16 图九 控件属性 .16 图十 画面命令语言 .17 图十一 运行画面 .17 图十一 控件方法的使用 .18 图十二 运行画面 .19 一、功能概述一、功能概述 常规需求:很多工业现场都会要求显示采集量的趋势曲线,包括实时曲线、历史曲线。 组态王中的趋势曲线的实现方法: 1、 利用组态王的“工具箱”中的“实时曲线” 、 “历史曲线”实现。 2、 利用组态王的“插入通用控件”中的“历史趋势曲线”实现。 第一种实现方法的优点在于可以进行 WEB 的发布,实现通过 IE 浏览器进行浏览。缺点 为支持的曲线笔比较少,许多功能的实现需要通过组态王的函数来实现,使用相对要麻烦。 第二种实现方法的优点在于支持同时绘制 16 条曲线,功能比较完善,可以在系统运行时 动态增加、删除、隐藏曲线,还可以修改曲线属性,实现无级缩放,曲线打印等等。许多功 能都不需要通过编写脚本的方法实现,使用比较方便。缺点在于无法进行 WEB 的发布。 二、工程实例二、工程实例 以一个简单的例程来说明“历史趋势曲线控件”的使用。 三、操作步骤:三、操作步骤: 1 1、历史趋势曲线控件的特点:、历史趋势曲线控件的特点: KVHTrend 曲线控件是组态王以 Active X 控件形式提供的绘制历史曲线和 ODBC 数据 库曲线的功能性工具。该曲线具有以下特点: 1 即可以连接组态王的历史库,也可以通过 ODBC 数据源连接到其它数据库上,如 Access、SQLServer 等。 2 连接组态王历史库时,可以定义查询数据的时间间隔,如同在组态王中使用报表查 询历史数据时使用查询间隔一样。 3 完全兼容了组态王原有历史曲线的功能。最多可同时绘制 16 条曲线。 4 可以在系统运行时动态增加、删除、隐藏曲线。还可以修改曲线属性。 5 曲线图表实现无级缩放。 6 可实现某条曲线在某个时间段上的曲线比较。 7 数值轴可以使用工程百分比标识,也可用曲线实际范围标识,二者之间自由切换。 8 可直接打印图表曲线。 9 可以自由选择曲线列表框中的显示内容。 10可以选择移动游标时是否显示曲线数值。 11可以在曲线中显示报警区域的背景色 2 2、创建新的工程:、创建新的工程: 2.1)2.1) 定义设备:定义设备: 新建一个工程,在设备处新建设备,我们在本例中定义一个仿真 PLC 的设备,设备列表 为“PLC亚控仿真 PLC串口” ,设备名称为“PLC1” 。此仿真 PLC 可以做为虚拟设 备与组态王进行通讯。仿真 PLC 主要有如下的寄存器:自动加 1 寄存器 INCREA,自动减 1 寄存器 DECREA,随机寄存器 RADOM,常量寄存器 STATIC,常量字符串寄存器 STRING,CommErr 寄存器。具体的寄存器的使用请参考组态王 IO 驱动帮助。 2.2)2.2) 定义变量:定义变量: 在数据词典中新建两个 IO 变量,变量名称分别为 压力、流量压力、流量,变量类型为 IO 实数, 连接的设备为前面定义的仿真 PLC 设备“PLC1” ,寄存器分别为 INCREA100,DECREA100,数据类型为 short,读写属性为“只读” 。这样压力变量就会从 0 开始自动加 1,其变化范围是 0 到 100,流量变量从 100 开始自动减 1,其变化范围是 0 到 100。变量基本属性定义画面如下图一、图二所示: 图一 定义变量压力 图二 定义变量流量 在记录和安全区属性选项卡中我们定义压力和流量变量的数据记录属性,如图三所示, 选择“数据变化”记录,变化灵敏度设置为 0。 2.3)2.3) 创建趋势曲线:创建趋势曲线: 在组态王开发系统中新建“趋势曲线”画面,在工具箱中单击“插入通用控件”或选择 菜单“编辑”下的“插入通用控件”命令,弹出“插入控件”对话框,在列表中选择“历史 趋势曲线” ,单击“确定”按钮,对话框自动消失,鼠标箭头变为小“十”字型,在画面上选 择控件的左上角,按下鼠标左键并拖动,画面上显示出一个虚线的矩形框,该矩形框为创建 后的曲线的外框。当达到所需大小时,松开鼠标左键,则历史曲线控件创建成功,画面上显 示出该曲线,如图四所示。双击趋势曲线,弹出“动画连接属性” ,控件名命名为“HTHT” 。点 击确定完成对历史趋势曲线的命名。 2.4)2.4) 添加曲线变量:添加曲线变量: 选中曲线控件点击右键,弹出菜单,选择“控件属性” ,弹出历史趋势曲线控件的属性对 话框,在“曲线”选项卡,点击“增加”按钮,选择变量“压力” ,选择“线类型” 、 “线颜色” ,点击“确定”完成压力曲线的添加。再点击“增加”按钮,选择变量“流量” ,选择“线类 型” 、 图三 记录和安全区属性 图四 历史趋势曲线 “线颜色” ,点击“确定”完成流量曲线的添加。 在趋势曲线控件属性的“坐标系”选项卡中对坐标系进行设置,我们设置 Y 轴的起始 值为 0,最大值为 100,不按照百分比绘制,而是按照实际值显示。设置时间轴的显示格式为 显示年、月、日、时、分、秒。 添加完成后开发画面如图五所示: 图五 历史趋势曲线 3 3、切换到运行系统:、切换到运行系统: 保存画面后,在工程浏览器的“系统配置”“设置运行系统”中进行“主画面配置” , 将“历史曲线”画面设置为主画面。 然后切换到运行系统。运行如下图六所示: 趋势曲线控件自带的工具栏中提供了很多方便实用的控制按钮功能供用户来使用,主要 包括:调整跨度设置按钮,设置 Y 轴标记,曲线图表无级缩放,打印曲线,定义新曲线,更 新曲线图表终止时间为当前时间,设置图表数值轴和时间轴参数,隐藏/显示变量列表。 这些工具栏基本可以满足客户的使用了,如果还需要进一步的功能可以通过控件的属性、 方法来实现。下面我们简单的举例说明控件的属性、方法的使用。 图六 运行系统 4 4、控件的属性、方法:、控件的属性、方法: 2.1)2.1) 控件的属性与方法:控件的属性与方法: 属性及含义列表:属性及含义列表: 序号名 称数据类型含 义 1CurveUseKVHistDataBool 使用组态王历史数据 2CruveDSNString 使用数据源名称 3CurveTableString 数据库的表名 4CurveDateTimeFieldString 数据库的时间字段名 5CurveInvalidColorOLE_COLOR 数据库的无效值 6CurveVarNameString 连接变量名 7CurveColorOLE_COLOR 曲线颜色 8CurveLineTypeShort 曲线线形 9CurveTimeDelayString 曲线比较时间差 10CurveDrawTypeShort 曲线绘制方式 11CurveAlmColorOLE_COLOR 报警显示颜色 12CurveHideCurveBool 是否隐藏曲线 13CurveMilliSecondFieldString 毫秒字段名称 14CurveDataFieldString 数据字段名称 15CuryeInvalidValueString 无效值字段名称 16CurveUserString ODBC 数据源用户名 17CurvePwdString ODBC 数据源密码 18CurveSavePwdBool ODBC 是否保存密码 19CurveListBool 是否显示曲线列表 20CtrlBtnBool 是否显示控制按钮 21BorderColorOLE_COLOR 边界颜色 22BakColorOLE_COLOR 背景颜色 23DrawXYAxisBool 是否绘制坐标轴 24AxisLineTypeShort 坐标轴线型 25AxisColorOLE_COLOR 坐标轴颜色 26ShortDivLineBool 分割线是否为短线 27MajXDivNumShort X 轴主分割线数 28MinXDivNumShort X 轴副分割线数 29MajYDivNumShort Y 轴主分割线数 30MinYDivNumShort Y 轴副分割线数 31MajXDivLineTypeShort X 轴主分割线线型 32MinXDivLineTypeShort X 轴副分割线线型 33MajYDivLineTypeShort Y 轴主分割线线型 34MinYDivLineTypeShort Y 轴副分割线线型 35MajXDivColorOLE_COLOR X 轴主分割线颜色 36MinXDivColorOLE_COLOR X 轴副分割线颜色 37MajXDivColorOLE_COLOR Y 轴主分割线颜色 38MinYDivColorOLE_COLOR Y 轴副分割线颜色 39YLabelNumShort Y 轴标记数 40YminValDouble Y 轴标记最小值 41YmaxVaLDouble Y 轴标记最大值 42YLableFontIFontDisp Y 轴标记字体 43XLabelNumShort X 轴标记数 44XwidthShort X 轴宽度 45XLableFontIFontDisp X 轴标记字体 46XLabelFmtYearBool X 轴标记格式是否显示年 47XlabelFmtMonthBool X 轴标记格式是否显示月 48XlabelFmtDayBool X 轴标记格式是否显示日 49XlabelFmtHourBool X 轴标记格式是否显示时 50XlabelFmtMinuteBool X 轴标记格式是否显示分 51XlabelFmtSecondBool X 轴标记格式是否显示秒 52XlabelFmtMilliSecondBool X 轴标记格式是否显示毫秒 53XWidthUnitShort X 轴宽度单位:秒、分、时、日 54XLableColorOLE_COLOR X 轴标记颜色 55YLableColorOLE_COLOR Y 轴标记颜色 56CurveNumLong 返回当前曲线图表中的曲线数 目 57AdjustWidthLong 时间轴调整宽度 58AdjustWidthUnitshort 时间轴调整宽度单位:秒、分、 时、日、毫秒 59PercentBool 是否按百分比绘制 60YMinRealDouble Y 轴最小值 61YMaxRealDouble Y 轴最大值 62SampleIntervalLong 采样间隔 秒 63SampleIntervalMsLong 采样间隔 毫秒 64PrintTitleString 打印标题 65XLVernierShowBool 是否显示左游标 66XRVernierShowBool 是否显示右游标 67XLabelFmtMicroSecondBool X 轴标记格式是否显示微秒 68SampleUSBool 是否微秒采样 69bPrintTitleBool 是否打印标题 70bPrintListBool 是否打印曲线列表 71YUNITString 纵轴单位 72bHiHiAlarmAreaBool 是否显示高高限报警区 73HiHiAlarmAreaUpDouble 高高限报警区上边界位置 74HiHiAlarmAreaDownDouble 高高限报警区下边界位置 75bHiAlarmAreaBool 是否显示高限报警区 76HiAlarmAreaUpDouble 高限报警区上边界位置 77HiAlarmAreaDownDouble 高限报警区下边界位置 78bLoAlarmAreaBool 是否显示低限报警区 79LoAlarmAreaUpDouble 低限报警区上边界位置 80LoAlarmAreaDownDouble 低限报警区下边界位置 81bLoLoAlarmAreaBool 是否显示低低限报警区 82LoLoAlarmAreaUpDouble 低低限报警区上边界位置 83LoLoAlarmAreaDownDouble 低低限报警区下边界位置 84LVernierStrString 左游标附加信息 85RVernierStrString 右游标附加信息 86LVernierAppendStrBool 左游标是否显示附加信息 87RVernierAppendStrBool 右游标是否显示附加信息 88 LShowVernierValTypeShort 左游标数值显示方式 0.不显时数值 1.一直显示数值 2.移动游标时显示数值 89 RShowVernierValTypeShort 右游标数值显示方式 0 不显时数值 1 一直显示数值 2.移动游标时显示数值 90 bPrintSubTitleBool 是否打印子标题 91PrintSubTitleString 打印子标题 92SubTitlePosShort 子标题位置 控件方法说明:控件方法说明: 1.1.VoidVoid ChangeCurveVarName(longChangeCurveVarName(long 1Index,BSTR1Index,BSTR 1pszNewValue);1pszNewValue); 功能:改变历史曲线所连接的变量,该变量数据来自组态王历史库。 参数:1Index:曲线索引号 1pszNewValue:变量名 2.VoidVoid ChangeCurveVarNameForODBC(LONGChangeCurveVarNameForODBC(LONG 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 szInvalidValue)szInvalidValue); 功能:改变历史曲线所连接的变量,该变量数据来自 ODBC 数据源。 参数:lIndex:曲线索引号 szNewName:所连接变量 szDSN:使用的数据源名 szUser:用户名 szPwd:密码 szTable:数据库的表名 szDateTimeField:表中对应的时间字段 szMilliSecondField:表中对应的毫秒字段 szDataField:表中对应的数据字段 szInvalidValue:表中对应的无效值 3.3.StringString HTGetTimeStringAtScooter(shortHTGetTimeStringAtScooter(short nScootNum,StringnScootNum,String szFormat);szFormat); 功能:取得指定指示器处的时间,该时间为字符串格式 参数:nScootNum:指示器索引,1左、2右 szFormat:指定所需要的时间字符串格式,可为下列之一: “Date”:以 Windows 控制面板相同格式显示日期 “Time”:以 Windows 控制面板相同格式显示时间 “DateTime”:以 Windows 控制面板相同格式显示日期时间 返回值:字符串型日期时间值 4.4.FloatFloat HTGetPenRealValue(shortHTGetPenRealValue(short nPenNum,StringnPenNum,String szContent);szContent); 功能:取得指定曲线 Y 轴(数值轴)起点或终点的实际值 参数:nPenNum:曲线索引,116 szContent:指定所需要类型,可为下列之一: “Start”:将 Y 轴下限值的工程百分比转换为实际值 “End”:将 Y 轴上限值的工程百分比转换为实际值 “Valid”:判断取得的值是否有效,0无效,1有效 返回值:工程百分比对应的实际值 5.5.FloatFloat HTGetValue(shortHTGetValue(short nPenNum,StringnPenNum,String szValType);szValType); 功能:取得指定曲线整个图表上(当前可见部分)的最大/最小/平均值 参数:nPenNum:曲线索引,116 szValType:指定所需要的计算类型,可为下列之一: “AverageValue”:整个趋势的平均值 “MaxValue”:整个趋势的最大值 “MinValue”:整个趋势的最小值 “Valid”:判断取得的值是否有效,0无效,1有效 返回值:曲线整个图表上(当前可见部分)的最大/最小/平均值 6.6.FloatFloat HTGetValueAtScooter(shortHTGetValueAtScooter(short nPenNum,shortnPenNum,short nScootNum,StringnScootNum,String szValType);szValType); 功能:取得指定曲线在指示器位置处所要求的值 参数:nPenNum:曲线索引,116 nScootNum:指示器索引,1左、2右 szValType:指定所需要类型,可为下列之一: “Value”:取得指示器处的值 “Valid”:判断取得的值是否有效,0无效,1有效 返回值:指定曲线在指定指示器处的值 7.7.FloatFloat HTGetValueAtZone(shortHTGetValueAtZone(short nPenNum,StringnPenNum,String szValType);szValType); 功能:取得指定曲线在左右指示器之间的的最大/最小/平均值 参数:nPenNum:曲线索引,116 szValType:指定所需要的计算类型,可为下列之一: “AverageValue”:平均值 “MaxValue”:最大值 “MinValue”:最小值 “Valid”:判断取得的值是否有效,0无效,1有效 返回值:指定曲线在左右指示器之间的的最大/最小/平均值 8.8.VoidVoid HTScrollLeft();HTScrollLeft(); 功能:将曲线的起始时间左移一个调整跨度 参数:无 返回值:无 9.9.VoidVoid HTScrollRight();HTScrollRight(); 功能:将曲线的起始时间右移一个调整跨度 参数:无 返回值:无 10.10. VoidVoid HTUpdateToCurrentTime();HTUpdateToCurrentTime(); 功能:将曲线的终止时间设为当前时间 参数:无 返回值:无 11.11. VoidVoid HTSetLeftScooterTime(LongHTSetLeftScooterTime(Long lTimelTime,shortshort sMilliSecond);sMilliSecond); 功能:设置曲线时间坐标起点 参数:lTime:时间的年月日时分秒部分,将该时间用 HTConvertTime()函数转换 为自 1970 年 1 月 1 日 0 时到指定时间的秒数 sMilliSecond:时间的毫秒部分 返回值:无 12.12. VoidVoid HTZoomIn(stringHTZoomIn(string szLookString);szLookString); 功能:通过增大时间轴和数值轴长度,使曲线图表缩小 参数:szLookString:缩放类型,可为下列之一: “StartTime”:保持起始时间与缩放前相等 “EndTime”:保持终止时间与缩放前相等 “Center”:保持中心时间与缩放前相等 返回值:无 13.13. VoidVoid HTZoomOut(stringHTZoomOut(string szLookString);szLookString); 功能:通过缩短时间轴和数值轴长度,使曲线图表放大 参数:szLookString:缩放类型,可为下列之一: “StartTime”:保持起始时间与缩放前相等 “EndTime”:保持终止时间与缩放前相等 “Center”:保持中心时间与缩放前相等 返回值:无 14.14. VoidVoid SetTimeParam(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 为转换为秒后的时 间长度。 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 lXWidth,lXWidth, longlong sXWidthUnit)sXWidthUnit) 功能:设置历史曲线时间坐标起点、时间轴长度,可以直接输入时间参数, 与 SetTimeParam 实现的功能相同. 参数:sStartYear 时间的年 sStartMonth 时间的月 sStartDay 时间的日 sStartHour 时间的时 sStartMinute 时间的分 sStartSecond 时间的秒 sStartms 时间的毫秒 lXWidth 时间轴长度 sXWidthUnit 时间轴长度单位:0-秒 返回值:无 16.16. voidvoid 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 分 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 曲线索引,116 bShow 取 1 显示曲线,取 0 隐藏曲线 18.18. void PrintCurve() 功能:打印,与控件打印按钮实现相同功能 参数:无 返回值:无 2.2)2.2) 属性方法的使用举例:属性方法的使用举例: 属性举例:属性举例:我们举一个简单的例程来说明控件属性的使用:CtrlBtn,是否显示控制按 钮。Bool 类型,1:显示控制按钮,0:隐藏控制按钮。CurveList:是否显示曲线列表。 Bool 类型,1:显示曲线列表,0:隐藏曲线列表。假设我们不想让客户利用趋势曲线控件自 带的工具栏来实现相应的操作,并且也不显示曲线列表。则可以隐含此工具栏并隐藏曲线列 表,利用 CtrlBtn 属性、CurveList 属性来实现。 在“历史曲线”画面空白处点击右键,弹出菜单,选择“画面属性” ,弹出七所示

温馨提示

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

评论

0/150

提交评论