




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
历史趋势曲线 1,功能概述常规需求:很多工业现场都会要求显示采集量的趋势曲线,包括实时曲线、历史曲线。组态王中的趋势曲线的实现方法:1)利用组态王的“工具箱”中的“实时曲线”、“历史曲线”实现。2)利用组态王的“插入通用控件”中的“历史趋势曲线”实现。第一种实现方法的优点在于可以进行WEB的发布,实现通过IE浏览器进行浏览。缺点为支持的曲线笔比较少,许多功能的实现需要通过组态王的函数来实现,使用相对要麻烦。第二种实现方法的优点在于支持同时绘制16条曲线,功能比较完善,可以在系统运行时动态增加、删除、隐藏曲线,还可以修改曲线属性,实现无级缩放,曲线打印等等。许多功能都不需要通过编写脚本的方法实现,使用比较方便。缺点在于无法进WEB的发布。工程实例以一个简单的例程来说明“历史趋势曲线控件”的使用。操作步骤1.1 创建新工程打开组态王工程管理器,创建一个新工程。1.2 定义设备进入工程浏览器,在设备处新建设备,我们在本例中定义一个仿真PLC的设备,设备列表为“PLC亚控仿真PLC串口” ,设备名称为“PLC1”。此仿真PLC可以做为虚拟设备与组态王进行通讯。仿真PLC主要有如下的寄存器:自动加1寄存器INCREA,自动减1寄存器DECREA,随机寄存器RADOM,常量寄存器 STATIC,常量字符串寄存器STRING,CommErr寄存器。具体的寄存器的使用请参考组态王IO驱动帮助。1.3 定义变量在数据词典中新建两个IO变量,变量名称分别为“压力”、“流量”,变量类型为IO实数,连接的设备为前面定义的仿真PLC设备“PLC1”,寄存器分别为INCREA100,DECREA100,数据类型为short,读写属性为“只读”。这样压力变量就会从0开始自动加1,其变化范围是0到100,流量变量从100开始自动减1,其变化范围是0到100。变量基本属性定义画面如下图一、图二所示:图一 定义变量压力图二 定义变量流量在记录和安全区属性选项卡中我们定义压力和流量变量的数据记录属性,如图三所示,选择“数据变化”记录,变化灵敏度设置为0。图三 记录和安全区属性1.4 创建趋势曲线在组态王开发系统中新建“趋势曲线”画面,在工具箱中单击“插入通用控件”或选择菜单“编辑”下的“插入通用控件”命令,弹出“插入控件”对话框,在列表中选择“历史趋势曲线”,单击“确定”按钮,对话框自动消失,鼠标箭头变为小“十”字型,在画面上选择控件的左上角,按下鼠标左键并拖动,画面上显示出一个虚线的矩形框,该矩形框为创建后的曲线的外框。当达到所需大小时,松开鼠标左键,则历史曲线控件创建成功,画面上显示出该曲线,如图四所示。双击趋势曲线,弹出“动画连接属性”,控件名命名为“HT”。点击确定完成对历史趋势曲线的命名。图四 历史趋势曲线1.5 添加曲线变量选中曲线控件点击右键,弹出菜单,选择“控件属性”,弹出历史趋势曲线控件的属性对话框,在“曲线”选项卡,点击“增加”按钮,选择变量“压力”,选择“线类型”、“线颜色”,点击“确定”完成压力曲线的添加。再点击“增加”按钮,选择变量“流量”,选择“线类型”、“线颜色”,点击“确定”完成流量曲线的添加。在趋势曲线控件属性的“坐标系”选项卡中对坐标系进行设置,我们设置Y轴的起始值为0,最大值为100,不按照百分比绘制,而是按照实际值显示。设置时间轴的显示格式为显示年、月、日、时、分、秒。添加完成后开发画面如图五所示:图五 历史趋势曲线1.6 切换到运行系统保存画面后,在工程浏览器的“系统配置”“设置运行系统”中进行“主画面配置”,将“历史曲线”画面设置为主画面。然后切换到运行系统。运行如下图六所示:趋势曲线控件自带的工具栏中提供了很多方便实用的控制按钮功能供用户来使用,主要包括:调整跨度设置按钮,设置Y轴标记,曲线图表无级缩放,打印曲线,定义新曲线,更新曲线图表终止时间为当前时间,设置图表数值轴和时间轴参数,隐藏/显示变量列表。这些工具栏基本可以满足客户的使用了,如果还需要进一步的功能可以通过控件的属性、方法来实现。下面我们简单的举例说明控件的属性、方法的使用。图六 运行系统2. 历史趋势曲线控件的特点KVHTrend曲线控件是组态王以Active X控件形式提供的绘制历史曲线和ODBC数据库曲线的功能性工具。该曲线具有以下特点:1)即可以连接组态王的历史库,也可以通过ODBC数据源连接到其它数据库上,如Access、SQLServer等。2)连接组态王历史库时,可以定义查询数据的时间间隔,如同在组态王中使用报表查询历史数据时使用查询间隔一样。3)完全兼容了组态王原有历史曲线的功能。最多可同时绘制16条曲线。4)可以在系统运行时动态增加、删除、隐藏曲线。还可以修改曲线属性。5)曲线图表实现无级缩放。6)可实现某条曲线在某个时间段上的曲线比较。7)数值轴可以使用工程百分比标识,也可用曲线实际范围标识,二者之间自由切换。8)可直接打印图表曲线。9)可以自由选择曲线列表框中的显示内容。10)可以选择移动游标时是否显示曲线数值。11)可以在曲线中显示报警区域的背景色3. 控件的属性、方法3.1 控件的属性与方法(1) 属性及含义列表:序号名 称数据类型含 义1CurveUseKVHistDataBool使用组态王历史数据2CruveDSNString使用数据源名称3CurveTableString数据库的表名4CurveDateTimeFieldString数据库的时间字段名5CurveInvalidColorOLE_COLOR数据库的无效值6CurveVarNameString连接变量名7CurveColorOLE_COLOR曲线颜色8CurveLineTypeShort曲线线形9CurveTimeDelayString曲线比较时间差10CurveDrawTypeShort曲线绘制方式11CurveAlmColorOLE_COLOR报警显示颜色12CurveHideCurveBool是否隐藏曲线13CurveMilliSecondFieldString毫秒字段名称14CurveDataFieldString数据字段名称15CuryeInvalidValueString无效值字段名称16CurveUserStringODBC数据源用户名17CurvePwdStringODBC数据源密码18CurveSavePwdBoolODBC是否保存密码19CurveListBool是否显示曲线列表20CtrlBtnBool是否显示控制按钮21BorderColorOLE_COLOR边界颜色22BakColorOLE_COLOR背景颜色23DrawXYAxisBool是否绘制坐标轴24AxisLineTypeShort坐标轴线型25AxisColorOLE_COLOR坐标轴颜色26ShortDivLineBool分割线是否为短线27MajXDivNumShortX轴主分割线数28MinXDivNumShortX轴副分割线数29MajYDivNumShortY轴主分割线数30MinYDivNumShortY轴副分割线数31MajXDivLineTypeShortX轴主分割线线型32MinXDivLineTypeShortX轴副分割线线型33MajYDivLineTypeShortY轴主分割线线型34MinYDivLineTypeShortY轴副分割线线型35MajXDivColorOLE_COLORX轴主分割线颜色36MinXDivColorOLE_COLORX轴副分割线颜色37MajXDivColorOLE_COLORY轴主分割线颜色38MinYDivColorOLE_COLORY轴副分割线颜色39YLabelNumShortY轴标记数40YminValDoubleY轴标记最小值41YmaxVaLDoubleY轴标记最大值42YLableFontIFontDispY轴标记字体43XLabelNumShortX轴标记数44XwidthShortX轴宽度45XLableFontIFontDispX轴标记字体46XLabelFmtYearBoolX轴标记格式是否显示年47XlabelFmtMonthBoolX轴标记格式是否显示月48XlabelFmtDayBoolX轴标记格式是否显示日49XlabelFmtHourBoolX轴标记格式是否显示时50XlabelFmtMinuteBoolX轴标记格式是否显示分51XlabelFmtSecondBoolX轴标记格式是否显示秒52XlabelFmtMilliSecondBoolX轴标记格式是否显示毫秒53XWidthUnitShortX轴宽度单位:秒、分、时、日54XLableColorOLE_COLORX轴标记颜色55YLableColorOLE_COLORY轴标记颜色56CurveNumLong返回当前曲线图表中的曲线数目57AdjustWidthLong时间轴调整宽度58AdjustWidthUnitshort时间轴调整宽度单位:秒、分、时、日、毫秒59PercentBool是否按百分比绘制60YMinRealDoubleY轴最小值61YMaxRealDoubleY轴最大值62SampleIntervalLong采样间隔 秒63SampleIntervalMsLong采样间隔 毫秒64PrintTitleString打印标题65XLVernierShowBool是否显示左游标66XRVernierShowBool是否显示右游标67XLabelFmtMicroSecondBoolX轴标记格式是否显示微秒68SampleUSBool是否微秒采样69bPrintTitleBool是否打印标题70bPrintListBool是否打印曲线列表71YUNITString纵轴单位72bHiHiAlarmAreaBool是否显示高高限报警区73HiHiAlarmAreaUpDouble高高限报警区上边界位置74HiHiAlarmAreaDownDouble高高限报警区下边界位置75bHiAlarmAreaBool是否显示高限报警区76HiAlarmAreaUpDouble高限报警区上边界位置77HiAlarmAreaDownDouble高限报警区下边界位置78bLoAlarmAreaBool是否显示低限报警区79LoAlarmAreaUpDouble低限报警区上边界位置80LoAlarmAreaDownDouble低限报警区下边界位置81bLoLoAlarmAreaBool是否显示低低限报警区82LoLoAlarmAreaUpDouble低低限报警区上边界位置83LoLoAlarmAreaDownDouble低低限报警区下边界位置84LVernierStrString左游标附加信息85RVernierStrString右游标附加信息86LVernierAppendStrBool左游标是否显示附加信息87RVernierAppendStrBool右游标是否显示附加信息88LShowVernierValTypeShort左游标数值显示方式0.不显时数值1.一直显示数值2.移动游标时显示数值89RShowVernierValTypeShort右游标数值显示方式0.不显时数值1.一直显示数值2.移动游标时显示数值90bPrintSubTitleBool是否打印子标题91PrintSubTitleString打印子标题92SubTitlePosShort子标题位置(2) 控件方法说明:1)Void ChangeCurveVarName(long 1Index,BSTR 1pszNewValue);功能:改变历史曲线所连接的变量,该变量数据来自组态王历史库。参数:1Index:曲线索引号。1pszNewValue:变量名。2)Void ChangeCurveVarNameForODBC(LONG lIndex,STRING szNewName,STRING szDSN,STRING szUser,STRING szPwd,STRING szTable,STRING szDateTimeField,STRING szMilliSecondField,STRING szDataField,STRING szInvalidValue);功能:改变历史曲线所连接的变量,该变量数据来自ODBC数据源。参数:lIndex:曲线索引号。 szNewName:所连接变量。 szDSN:使用的数据源名。 szUser:用户名。 szPwd:密码。 szTable:数据库的表名。 szDateTimeField:表中对应的时间字段。 szMilliSecondField:表中对应的毫秒字段。 szDataField:表中对应的数据字段。szInvalidValue:表中对应的无效值。3)String HTGetTimeStringAtScooter(short nScootNum,String szFormat);功能:取得指定指示器处的时间,该时间为字符串格式。参数:nScootNum:指示器索引,1左、2右。 szFormat:指定所需要的时间字符串格式,可为下列之一:“Date”:以Windows控制面板相同格式显示日期。“Time”:以Windows控制面板相同格式显示时间。“DateTime”:以Windows控制面板相同格式显示日期时间。返回值:字符串型日期时间值。4)Float HTGetPenRealValue(short nPenNum,String szContent);功能:取得指定曲线Y轴(数值轴)起点或终点的实际值。参数:nPenNum:曲线索引,116。 szContent:指定所需要类型,可为下列之一:“Start”:将Y轴下限值的工程百分比转换为实际值。“End”:将Y轴上限值的工程百分比转换为实际值。“Valid”:判断取得的值是否有效,0无效,1有效。返回值:工程百分比对应的实际值。5)Float HTGetValue(short nPenNum,String szValType);功能:取得指定曲线整个图表上(当前可见部分)的最大/最小/平均值。参数:nPenNum:曲线索引,116。 szValType:指定所需要的计算类型,可为下列之一:“AverageValue”:整个趋势的平均值。“MaxValue”:整个趋势的最大值。“MinValue”:整个趋势的最小值。“Valid”:判断取得的值是否有效,0无效,1有效。返回值:曲线整个图表上(当前可见部分)的最大/最小/平均值。6)Float HTGetValueAtScooter(short nPenNum,short nScootNum,String szValType);功能:取得指定曲线在指示器位置处所要求的值。参数:nPenNum:曲线索引,116。 nScootNum:指示器索引,1左、2右。 szValType:指定所需要类型,可为下列之一:“Value”:取得指示器处的值。“Valid”:判断取得的值是否有效,0无效,1有效。返回值:指定曲线在指定指示器处的值。7)Float HTGetValueAtZone(short nPenNum,String szValType);功能:取得指定曲线在左右指示器之间的的最大/最小/平均值。参数:nPenNum:曲线索引,116。 szValType:指定所需要的计算类型,可为下列之一:“AverageValue”:平均值。“MaxValue”:最大值。“MinValue”:最小值。“Valid”:判断取得的值是否有效,0无效,1有效。返回值:指定曲线在左右指示器之间的的最大/最小/平均值。8)Void HTScrollLeft();功能:将曲线的起始时间左移一个调整跨度。参数:无。返回值:无。9)Void HTScrollRight();功能:将曲线的起始时间右移一个调整跨度。参数:无。返回值:无。10)Void HTUpdateToCurrentTime();功能:将曲线的终止时间设为当前时间。参数:无。返回值:无。11)Void HTSetLeftScooterTime(Long lTime,short sMilliSecond);功能:设置曲线时间坐标起点。参数:lTime:时间的年月日时分秒部分,将该时间用HTConvertTime()函数转换为自1970年1月1日0时到指定时间的秒数。 sMilliSecond:时间的毫秒部分。返回值:无。12)Void HTZoomIn(string szLookString);功能:通过增大时间轴和数值轴长度,使曲线图表缩小。参数:szLookString:缩放类型,可为下列之一:“StartTime”:保持起始时间与缩放前相等。 “EndTime”:保持终止时间与缩放前相等。 “Center”:保持中心时间与缩放前相等。返回值:无。13)Void HTZoomOut(string szLookString);功能:通过缩短时间轴和数值轴长度,使曲线图表放大。参数:szLookString:缩放类型,可为下列之一:“StartTime”:保持起始时间与缩放前相等。“EndTime”:保持终止时间与缩放前相等。“Center”:保持中心时间与缩放前相等。返回值:无。14)Void SetTimeParam(long lStartTime, short sStartms, long lXWidth, short sXWidthUnit);功能:设置历史曲线时间坐标起点、时间轴长度。参数:lStartTime时间年月日时分秒部分。sStartms时间的毫秒部分。lXWidth时间轴长度。sXWithUnit时间轴长度单位:0-秒 1-分 2-时 3-日 4-毫秒。返回值:无。注:组态王6.5第二版,sXWithUnit必须为0,即秒,lXWidth为转换为秒后的时间长度。15)void SetTimeParamDivided(long sStartYear, long sStartMonth, long sStartDay, long sStartHour, long sStartMinute, long sStartSecond, long sStartms, long lXWidth, long sXWidthUnit);功能:设置历史曲线时间坐标起点、时间轴长度,可以直接输入时间参数, 与SetTimeParam实现的功能相同。参数:sStartYear 时间的年。sStartMonth 时间的月。sStartDay 时间的日。sStartHour 时间的时。sStartMinute 时间的分。sStartSecond 时间的秒。sStartms 时间的毫秒。lXWidth 时间轴长度。sXWidthUnit 时间轴长度单位:0-秒。返回值:无。16)void SetTimeParamString(STRING strStartTime, STRING 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)ShowCurve(LONG lIndex,BOOL bShow);功能:显示或隐藏指定的曲线。参数:lIndex 曲线索引,116。bShow 取1显示曲线,取0隐藏曲线。18)void PrintCurve();功能:打印,与控件打印按钮实现相同功能。参数:无。返回值:无。3.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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 造价咨询成本控制措施
- 中国人口老龄化行业市场前景预测及投资战略研究报告
- 2025年度高端车型4S店预订服务协议
- 二零二五年度离婚协议:子女监护与财产划分
- 2025年度建设工程合同融资担保服务协议
- 2025年中国墨鱼市场深度分析及投资战略咨询报告
- 企业廉防控风险点及措施他
- 二零二五年度环保涂料购销合同范本
- 2025年度绿色建筑物业管理招标合同规范
- 二零二五年度三子女财产债务清算与离婚协议书参考
- AAMIST79-2017卫生保健设施蒸汽灭菌和无菌保证综合指南
- 高一下学期期末考试物理试题
- 施工现场重大危险源辨识及监控措施
- DB21T 2414.2-2015 公共场所双语标识英文译法 第2部分:道路交通
- 新产品开发流程
- 2023年高考真题-历史(辽宁卷) 含解析
- 化工厂消防演练方案
- 2024届高考语文二轮复习 非连续性文本阅读 训练(含答案)
- 介绍正畸课件教学课件
- 职业卫生技术服务机构检测人员考试真题题库
- 2024年共青团团课考试测试题库及答案
评论
0/150
提交评论