第24章 组态王历史库.docx

上传人:b****5 文档编号:4169405 上传时间:2022-11-28 格式:DOCX 页数:8 大小:303.32KB
下载 相关 举报
第24章 组态王历史库.docx_第1页
第1页 / 共8页
第24章 组态王历史库.docx_第2页
第2页 / 共8页
第24章 组态王历史库.docx_第3页
第3页 / 共8页
第24章 组态王历史库.docx_第4页
第4页 / 共8页
第24章 组态王历史库.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

第24章 组态王历史库.docx

《第24章 组态王历史库.docx》由会员分享,可在线阅读,更多相关《第24章 组态王历史库.docx(8页珍藏版)》请在冰豆网上搜索。

第24章 组态王历史库.docx

第24章组态王历史库

第24章组态王历史库

 

数据存储功能对于任何一个工业系统来说都是至关重要的,随着工业自动化程度的普及和提高,工业现场对重要数据的存储和访问的要求也越来越高。

一般组态软件都存在对大批量数据的存储速度慢、数据容易丢失、存储时间短、存储占用空间大、访问速度慢等不足之处,对于大规模的、高要求的系统来说,解决历史数据的存储和访问是一个刻不容缓的问题。

组态王6.5顺应这种发展趋势,提供高速历史数据库,支持毫秒级高速历史数据的存储和查询。

采用最新数据压缩和搜索技术,数据库压缩比低于20%,大大节省了磁盘空间。

查询速度大大提高,一个月内数据按照每小时间隔查询,可以在百毫秒内迅速完成。

完整实现历史库数据的后期插入、合并。

可以将特殊设备中存储的历史数据片段通过组态王驱动程序完整的插入到历史库中;也可以将远程站点上的组态王历史数据片段合并到历史数据记录服务器上,真正的解决了数据丢失的问题。

注意:

由于组态王6.5采用了新的历史数据记录模式,组态王软件6.5以前版本所存储的历史库将与新的历史库不兼容,您所遇到的问题是查询不到以前的历史数据,请在采用新版本或升级时慎重考虑!

 

24.1组态王变量的历史记录属性

在组态王中,离散型、整型和实型变量支持历史记录,字符串型变量不支持历史记录。

组态王的历史记录形式可以分为数据变化记录、定时记录(最小单位为1分钟)和备份记录。

记录形式的定义通过变量属性对话框中提供的选项完成。

在工程浏览器的数据词典中找到需要定义记录的变量,双击该变量进入“定义变量”对话框,选择“记录和安全区”属性页,如图24.1所示。

图24.1记录属性设置

记录属性的定义:

◆不记录:

此选项有效时,则该变量值不进行历史记录。

◆数据变化记录:

系统运行时,变量的值发生变化,而且当前变量值与上次的值之间的差值大于设置的变化灵敏度时,该变量的值才会被记录到历史记录中。

这种记录方式适合于数据变化较快的场合。

变化灵敏度:

定义变量变化记录时的阈值。

当“数据变化记录”选项有效时,“变化灵敏度”选项才有效。

例如:

数据库中有一个实型变量,如果需要对该变量的值进行记录,而且规定其变化灵敏度为1,则其记录过程如下:

如果第一次记录值是10,当第二次的变量值为10.9时,由于10.9-10=0.9<1,也就是第二次变量值相对第一次记录值的变化小于设定的“变化灵敏度”,所以第二次变量值不进行记录,当第三次变量值为12时,由于12-10.9=1.1>1,即变化幅度大于设定的“变化灵敏度”,所以此次变量值才被记录到历史记录中。

◆定时记录:

无论变量变化与否,系统运行时按定义的时间间隔将变量的值记录到历史库中,每隔设定的时间对变量的值进行一次记录。

最小定义时间间隔单位为1分钟,这种方式适用于数据变化缓慢的场合。

◆备份记录:

选择该项,系统在平常运行时,不再直接向历史库中记录该变量的数值,而是通过其它程序调用组态王历史数据库接口,向组态王的历史记录文件中插入数据。

在进行历史记录查询等时,可以查询到这些插入的数据。

这种方式一般用于环境复杂的、无人职守数据采集点等场合。

在这些场合使用的有些设备带有一定数量的数据存储器,可以存储一段时间的设备采集到的数据。

但这些设备往往只是简单的记录数据,而不能进行历史数据的查询、浏览等操作,而且必须通过上位机的处理才可以看到。

在组态王6.5的历史库中直接提供了这些处理的功能。

例如:

如图24.2所示。

远程有若干具有历史记录功能是数据采集设备,中心控制室通过拨号网络与这些站点循环连接。

因为是与每个站点间断连接的,所以如果在中心站上直接记录数据的话,会造成历史记录为间断的现象。

而设备中存储的记录如果此时直接插入到历史库中,也会造成历史库混乱。

在组态王6.5中完整的解决了这个问题。

首先对应的变量的历史记录定义为“备份记录”,则无论系统是否与数据采集设备相连接,变量都不会向历史库中记录数据。

当系统与某个设备连通后,系统通过驱动程序将设备中存储的历史记录读取上来,并按照约定的时间格式和变量类型等插入到组态王的历史库中。

这样就保证了历史库的完整性。

图24.2采集远程设备中的历史记录

24.2历史记录存储及文件的格式

在组态王工程浏览器中,打开“历史记录配置”属性对话框。

如图24.3所示。

图24.3历史记录配置

◆历史记录的启动选择:

如果选择“运行时自动启动”选项,则运行系统启动时,直接启动历史记录。

否则,运行时用户也可以通过系统变量“$启动历史记录”来随时启动历史记录。

或通过选择运行系统中“特殊”菜单下的“启动历史记录”命令来启动历史记录。

◆历史库文件保存时间长度设置:

在“文件保存天数”编辑框中选择历史库保存的时间长度。

最长为9999天,最短为1天。

当到达规定的时间时,系统自动删除最早的历史记录文件。

◆历史库存储路径的选择:

历史库的存储路径可以选择当前工程路径,也可以指定一个路径。

如果工程为单机模式运行,则系统在指定目录下建立一个“本站点”目录,存储历史记录文件。

如果是网络模式,本机为“历史记录服务器”,则系统在该目录下为每个与本机连接的IO服务器建立一个目录,分别保存来自各站点的历史数据。

◆历史记录文件格式:

为了保证数据记录的快速和稳定,保证系统的运行效率,当被记录的变量的值发生变化或者定时记录中所设定的时间间隔到达后,组态王的历史记录首先被记录到一个临时文件中,该文件的文件名格式类似为project200308200700.tmp(project年月日时.tmp),每一小时生成一个,该文件不是压缩文件,而每到整点时间如8点时,运行系统读出.temp文件中的数据进行压缩处理并生成真正的历史库记录文件——.std文件,如project200308200700.std。

数据压缩处理完成后,生成一个新的时刻的.tmp文件,上一个小时的.tmp文件则被消除。

组态王每一天的历史数据保存为一个.std文件。

所以配置对话框中的“数据文件记录时数”将不在起作用,保留它只是为了保证版本的兼容性。

24.3历史数据的查询

在组态王运行系统中主要有两种方式可以查询得到历史数据:

报表和历史趋势曲线以及历史趋势曲线控件,报表函数查询主要使用两个函数ReportsetHistdata()和ReportsetHistData2(),有关这两个函数的使用方法参见《命令语言函数速查手册》。

趋势曲线的使用请参见“第8章趋势曲线和其他曲线”。

24.4网络历史库的备份合并

在使用组态王网络功能时,有些系统中历史记录服务器与IO服务器不是经常连接的,而是间断连接的,如拨号网络连接的网络系统。

在这种情况下,IO服务器上变量的历史记录数据如果在网络不通的时候很容易丢失。

为了解决这个问题,组态王中专门提供了网络历史库存储“备份合并”的功能。

在一般的网络里,IO服务器是不进行历史库记录的,而是将所有的数据都发送到历史记录服务器上记录。

在组态王的“网络配置”中提供了一个选项“进行历史数据备份”。

如图24.4所示。

网络配置的其它选项及功能请参见“第21章网络功能”。

图24.4IO服务器上选择历史库备份

在IO服务器上选择该项,则系统运行时,IO服务器自动记录本机产生的历史记录。

在历史记录服务器上建立远程站点时,可以看到IO服务器记录历史记录的选项,如图24.5所示。

图24.5在历史记录服务器上建立远程站点

 

注意:

进行历史数据备份的站点,必须在“网络配置”中选择“本机是历史记录服务器”,否则无法进行历史记录。

 

然后定义历史记录服务器的节点类型,如图24.6所示。

图24.6定义历史记录服务器的节点类型

这样当系统运行时,无论网络连通与否,历史记录服务器都不会记录来自IO服务器上的变量的实时库中的值。

在网络连通时,需要用户通过命令语言调用组态王提供的历史库备份函数——BackUpHistData()来将IO服务器上的历史库传送到历史记录服务器上。

BackUpHistData()函数的使用方法:

◆函数名称:

BackupStationData(Str*chMchinename,LongftEndtime)

◆功能:

通过网络与远程站点建立连接,将远程站点的数据从上一次备份的时间到ftEndtime的时间段之间的数据备份到服务器中。

◆返回值:

BOOL型当函数调用成功函数返回TRUE,否则返回FALSE,当函数返回FALSE。

◆参数1:

chMchinename字符串型,远程站点IO服务器名称,服务程序通过该名称与远程站点建立连接。

◆参数2:

ftEndtime代表时间的长整型秒数,指定备份的结束时间。

可以使用HTConvertTime()函数来获得结束时间的整型。

例如:

在历史记录服务器上备份“IO采集站”的历史记录到当前时间。

在命令语言中按照以下方法实现。

longendTime;

endTime=HTConvertTime($年,$月,$日,$时,$分,0);

BackUpHistData("IO采集站",endTime);

历史库每次备份完成后,都会自动记录本次备份的结束时间,下次备份时,其始时间为上次备份结束的时间,所以在使用备份函数时,只需要定义结束时间即可。

另外,为了让用户更清楚的了解到备份的过程进度和结果,以及获得出现的错误信息等,组态王提供了一下函数供用户使用。

1.获取备份进度函数

intGetBackupProgress(StrszStationName);

参数:

远程站点名称。

返回值:

0~100间的整型数值。

功能:

得到正在备份的站点的进度百分比。

2.获取备份状态函数

BOOLGetStationStatus(StrszStationName);

参数:

远程站点名称。

功能:

得到站点的状态值,返回值>0正在备份数据返回值=0空闲。

3.停止备份函数

BOOLStopBackupStation(StrszStationName);

参数:

远程站点名称。

功能:

强制停止正在备份的远程站点。

例如:

当用户使用BackUpHistData()函数后,可以在组态王的应用程序命令语言——运行时,或画面命令语言——存在时等里面周期性调用GetBackupProgress()函数和GetStationStatus()函数,获得备份进行的进度和备份的完成状态。

如果用户想停止备份,可以在按钮中使用StopBackupStation()函数,立即停止历史记录的备份。

24.5组态王历史库服务程序

为了方便多用户访问组态王历史库,历史库程序采用了服务的方式,在组态王6.5安装完成后,请重新启动计算机,以使历史库服务启动。

在系统控制面板中打开“服务”窗口,可以在服务列表中找到“HistorySvr”,请保证其状态为“已启动”。

如果运行系统出现异常,可以在此处重新启动历史库服务。

如果在运行系统启动时,历史库服务没有启动,则系统会自动提示“历史库:

历史库服务没有启动”。

如果不启动历史库服务,则系统无法存储和查询历史数据。

 

图24.7历史库服务

除本章所描述的内容之外,组态王6.5为了方便用户对历史库的访问,提供了可供用户使用VBA编程访问的接口,具体请参见本手册附录B。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1