组态王历史趋势曲线控件讲解

  • 格式:docx
  • 大小:562.64 KB
  • 文档页数:21

组态王历史趋势曲线控件使用配置参考文档北京亚控科技发展有限公司技术部目录一、功能概述 (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、历史趋势曲线控件的特点:KVHTrend曲线控件是组态王以Active X 控件形式提供的绘制历史曲线和ODBC数据库曲线的功能性工具。

该曲线具有以下特点:1.即可以连接组态王的历史库,也可以通过ODBC数据源连接到其它数据库上,如Access 、SQLServer 等。

2.连接组态王历史库时,可以定义查询数据的时间间隔,如同在组态王中使用报表查询历史数据时使用查询间隔一样。

3.完全兼容了组态王原有历史曲线的功能。

最多可同时绘制16 条曲线。

4.可以在系统运行时动态增加、删除、隐藏曲线。

还可以修改曲线属性。

5.曲线图表实现无级缩放。

6.可实现某条曲线在某个时间段上的曲线比较。

7.数值轴可以使用工程百分比标识,也可用曲线实际范围标识,二者之间自由切换。

8.可直接打印图表曲线。

9.可以自由选择曲线列表框中的显示内容。

10.可以选择移动游标时是否显示曲线数值。

11.可以在曲线中显示报警区域的背景色2、创建新的工程:2.1)定义设备:新建一个工程,在设备处新建设备,我们在本例中定义一个仿真PLC 的设备,设备列表为“ PLC-亚控-仿真PLC-串口” ,设备名称为“ PLC1”。

此仿真PLC 可以做为虚拟设备与组态王进行通讯。

仿真PLC 主要有如下的寄存器:自动加1 寄存器INCREA ,自动减1 寄存器DECREA ,随机寄存器RADOM ,常量寄存器STATIC ,常量字符串寄存器STRING ,CommErr 寄存器。

具体的寄存器的使用请参考组态王IO 驱动帮助。

2.2)定义变量:在数据词典中新建两个IO 变量,变量名称分别为压力、流量,变量类型为IO 实数,连接的设备为前面定义的仿真PLC 设备“ PLC1 ”,寄存器分别为INCREA100 ,DECREA100 ,数据类型为short,读写属性为“只读” 。

这样压力变量就会从0 开始自动加1,其变化范围是0到100,流量变量从100开始自动减1,其变化范围是0到100。

变量基本属性定义画面如下图一、图二所示:图一定义变量压力图二定义变量流量在记录和安全区属性选项卡中我们定义压力和流量变量的数据记录属性,如图三所示,选择“数据变化”记录,变化灵敏度设置为0。

2.3)创建趋势曲线:在组态王开发系统中新建“趋势曲线”画面,在工具箱中单击“插入通用控件”或选择菜单“编辑”下的“插入通用控件”命令,弹出“插入控件”对话框,在列表中选择“历史趋势曲线”,单击“确定”按钮,对话框自动消失,鼠标箭头变为小“十”字型,在画面上选择控件的左上角,按下鼠标左键并拖动,画面上显示出一个虚线的矩形框,该矩形框为创建后的曲线的外框。

当达到所需大小时,松开鼠标左键,则历史曲线控件创建成功,画面上显示出该曲线,如图四所示。

双击趋势曲线,弹出“动画连接属性” ,控件名命名为“ HT”。

点击确定完成对历史趋势曲线的命名。

2.4)添加曲线变量:选中曲线控件点击右键,弹出菜单,选择“控件属性” ,弹出历史趋势曲线控件的属性对话框,在“曲线”选项卡,点击“增加”按钮,选择变量“压力” ,选择“线类型” 、“线颜色”,点击“确定” 完成压力曲线的添加。

再点击“增加” 按钮,选择变量“流量” ,选择“线类型” 、图三记录和安全区属性图四历史趋势曲线“线颜色”,点击“确定”完成流量曲线的添加。

在趋势曲线控件属性的“坐标系”选项卡中对坐标系进行设置,我们设置Y 轴的起始值为0,最大值为100,不按照百分比绘制,而是按照实际值显示。

设置时间轴的显示格式为显示年、月、日、时、分、秒。

添加完成后开发画面如图五所示:图五历史趋势曲线3、切换到运行系统:保存画面后,在工程浏览器的“系统配置”-“设置运行系统”中进行“主画面配置” ,将“历史曲线”画面设置为主画面。

然后切换到运行系统。

运行如下图六所示:趋势曲线控件自带的工具栏中提供了很多方便实用的控制按钮功能供用户来使用,主要包括:调整跨度设置按钮,设置Y 轴标记,曲线图表无级缩放,打印曲线,定义新曲线,更新曲线图表终止时间为当前时间,设置图表数值轴和时间轴参数,隐藏/显示变量列表。

这些工具栏基本可以满足客户的使用了,如果还需要进一步的功能可以通过控件的属性、方法来实现。

下面我们简单的举例说明控件的属性、方法的使用。

图六运行系统4、控件的属性、方法:2.1) 控件的属性与方法:属性及含义列表:控件方法说明:1. Void ChangeCurveVarName(long 1Index,BSTR 1pszNewValue); 功能:改变历史曲线所连接的变量,该变量数据来自组态王历史库。

参数:1Index :曲线索引号1pszNewValue :变量名2. Void ChangeCurveVarNameForODBC(LONG lIndex,STRING szNewName,STRINGszDSN,STRING szUser,STRING szPwd,STRING szTable,STRINGszDateTimeField,STRING szMilliSecondField,STRING szDataField,STRINGszInvalidValue) ;功能:改变历史曲线所连接的变量,该变量数据来自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:曲线索引,1~16szContent :指定所需要类型,可为下列之一:“Start ”:将Y 轴下限值的工程百分比转换为实际值“End”:将Y 轴上限值的工程百分比转换为实际值“ Valid ”:判断取得的值是否有效,0—无效,1—有效返回值:工程百分比对应的实际值5.Float HTGetValue(short nPenNum,String szValType); 功能:取得指定曲线整个图表上(当前可见部分)的最大/ 最小/ 平均值参数:nPenNum:曲线索引,1~16szValType :指定所需要的计算类型,可为下列之一:“ AverageValue ”:整个趋势的平均值“ MaxValue ”:整个趋势的最大值“ MinValue ”:整个趋势的最小值“ Valid ”:判断取得的值是否有效,0—无效,1—有效返回值:曲线整个图表上(当前可见部分)的最大/最小/ 平均值6.Float HTGetValueAtScooter(short nPenNum,short nScootNum,StringszValType); 功能:取得指定曲线在指示器位置处所要求的值参数:nPenNum:曲线索引,1~16nScootNum :指示器索引,1—左、2 —右szValType :指定所需要类型,可为下列之一:“Value ”:取得指示器处的值“ Valid ”:判断取得的值是否有效,0—无效,1—有效返回值:指定曲线在指定指示器处的值7.Float HTGetValueAtZone(short nPenNum,String szValType); 功能:取得指定曲线在左右指示器之间的的最大/ 最小/ 平均值参数:nPenNum:曲线索引,1~16szValType :指定所需要的计算类型,可为下列之一:“ 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 为转换为秒后的时间长度。