世纪星组态软件的数据存储策略.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
世纪星组态软件的数据存储策略 导语:?随着组态软件在各行业的应用越来越广泛,了解和使用组态软件的人越来越多,同时对组态软件各方面的功能要求也越来越高。   随着组态软件在各行业的应用越来越广泛,了解和使用组态软件的人越来越多,同时对组态软件各方面的功能要求也越来越高。   一般,组态软件在实际应用中都会用到几个基本功能,比如数据采集、实时数据展示、报警、报表等,而历史数据存储更是必不可少。通过自动记录下系统运行时的数据变化,可以对以后的事故分析,趋势统计提供必要的数据来源,大大提高系统运行的稳定性,减少出现生产事故的机会。   目前市面上组态软件种类繁多,采用的存储策略不尽相同,有采用外部数据库作为历史库,这种方式具有功能强大、运行稳定的优点,但缺点也非常很明显,运行速度慢、占用空间大、软件集成性不好等。因此很多公司都自己开发历史数据存储功能,开发的历史库不仅具有速度快、占用空间小的优点,而且保密性较好,不像通用数据库可以随便打开。   世纪星组态软件也是使用独立开发的历史库。为保证历史数据存储速度快、占用空间小,世纪星组态软件主要采用以下三种方案。   第一种是尽量减少数据存储量,从根本上降低对历史数据库的要求。   组态软件记录的数据都是现场采集上来的各种参量,比如温度、压力等,需要保存的信息包括变量标识、值和精确到毫秒的时间。为达到减小存储量的目的,世纪星采用两个方法:   一是以存储变量ID代替存储变量名,这是显而易见的道理,变量ID以4个字节表示,而变量名通常都会超过4个字节。在尽量减小存储空间的前提下,当然要选择以变量ID代替变量名进行保存。   二就是记录时间的方法,每一个变量都需要记录一个精确到毫秒的时间。时间的存储也可以有多种方式,以字符串方式保存、以一个长整数来保存等等。有些人可能不清楚如何以一个长整数来保存时间,只需要一个特定的换算方法换算一下即可。当然,以长整数来保存时间会减小存储量,这里还有一个问题,一个长整数是无法保存包括年、月、日、小时、分钟、秒、毫秒所有这些值,在世纪星中采用的办法是以日期作为历史数据文件的名称,这样在文件中的时间只要表示小时、分钟、秒、毫秒就没问题了。   第二种就是建立索引。这个方法在通用数据库中也被广泛的使用,但由于工控行业有其自己的特殊性,比如数据都是定时存储,数据在文件中的位置顺序有规律,因此这种建立索引的方法更能发挥巨大的作用。   世纪星组态软件的工程中保存两种类型的历史文件,一种以IDX结尾的索引文件,一种以LGH结尾的数据文件。在IDX文件中以分钟为最小单元,记录历史数据在LGH文件中的确定位置。查询数据时,根据使用者提供的查询时间,能够很快的在IDX文件中确定数据的确切位置,无视LGH数据文件的大小,达到快速查询的目的。   下图是数据查询时的示意图:   最后一个策略就是数据压缩。工控行业有时候需要保存的数据量很大,有时变化速率在100毫秒以内,而且需要保存的时间很长,为保存这些数据,同时确保占用空间小,就必须采用数据压缩。世纪星采用zlib库提供的压缩算法,zlib是一种可以免费使用的压缩库,压缩效果好,解压速度快。是目前比较成熟的数据压缩方法。   采用这三种方法之后,效果显而易见。经过测试,包含1w个变量的工程,其中4k个变量每200毫秒记录一次,在查询10分钟的数据时所用时间不超过200毫秒;查询4个小时的数据,查询时间不超过2秒。   在实际应用中也会发现一些不足,比如工程中变量很多,要求存储的数据量很大,这时历史文件会很大,即使有索引文件,在查询时的速度也会降低。改进的方法是可以把一个文件分成多个,比如变量ID小于5000的数据保存成一个文件,变量ID在5000到10000之间的保存成一个文件,以此类推,这样就可以减小文件的规模,从而提高查询速度。

文档评论(0)

xina171127 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档