随着组态软件在各行业的应用越来越广泛,了解和使用组态软件的人越来越多,同时对组态软件各方面的功能要求也越来越高。 WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
一般,组态软件在实际应用中都会用到几个基本功能,比如数据采集、实时数据展示、报警、报表等,而历史数据存储更是必不可少。通过自动记录下系统运行时的数据变化,可以对以后的事故分析,趋势统计提供必要的数据来源,大大提高系统运行的稳定性,减少出现生产事故的机会。WWW_P※LCJS_COM-PLC-)技.术_网
P.L.C.技.术.网——可编程控制器技术门户
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
目前市面上组态软件种类繁多,采用的存储策略不尽相同,有采用外部数据库作为历史库,这种方式具有功能强大、运行稳定的优点,但缺点也非常很明显,运行速度慢、占用空间大、软件集成性不好等。因此很多公司都自己开发历史数据存储功能,开发的历史库不仅具有速度快、占用空间小的优点,而且保密性较好,不像通用数据库可以随便打开。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
plcjs.技.术_网
世纪星组态软件也是使用独立开发的历史库。为保证历史数据存储速度快、占用空间小,世纪星组态软件主要采用以下三种方案。WWW_P※LCJS_CO※M-PLC-技-.术_网
WWW_P※LCJS_CO※M-PLC-技-.术_网
WWW_PLCJS@_COM%-PLC-技.术_网
第一种是尽量减少数据存储量,从根本上降低对历史数据库的要求。WW.W_PLCJS_COM-PLC-技.术_网
WWW_P※LCJS_CO※M-PLC-技-.术_网
WWW.PLCJS.COM——可编程控制器技术门户
组态软件记录的数据都是现场采集上来的各种参量,比如温度、压力等,需要保存的信息包括变量标识、值和精确到毫秒的时间。为达到减小存储量的目的,世纪星采用两个方法:WWcW_PLCJS_COM-PLC-技.术_网
WWW_PLCJS_COM-PLC-技.术_网
WWW_PL※CJS_COM-PLC-技.术_网
一是以存储变量ID代替存储变量名,这是显而易见的道理,变量ID以4个字节表示,而变量名通常都会超过4个字节。在尽量减小存储空间的前提下,当然要选择以变量ID代替变量名进行保存。WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
WWcW_PLCJS_COM-PLC-技.术_网
W1WW_P4LCJS_COM-PLC-技.术_网
二就是记录时间的方法,每一个变量都需要记录一个精确到毫秒的时间。时间的存储也可以有多种方式,以字符串方式保存、以一个长整数来保存等等。有些人可能不清楚如何以一个长整数来保存时间,只需要一个特定的换算方法换算一下即可。当然,以长整数来保存时间会减小存储量,这里还有一个问题,一个长整数是无法保存包括年、月、日、小时、分钟、秒、毫秒所有这些值,在世纪星中采用的办法是以日期作为历史数据文件的名称,这样在文件中的时间只要表示小时、分钟、秒、毫秒就没问题了。P.L.C.技.术.网——可编程控制器技术门户
WWW_P※LCJS_CO※M-PLC-技-.术_网
WWW_PLCJS_COM-PLC-技.术_网
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
P.L.C.技.术.网——可编程控制器技术门户
第二种就是建立索引。这个方法在通用数据库中也被广泛的使用,但由于工控行业有其自己的特殊性,比如数据都是定时存储,数据在文件中的位置顺序有规律,因此这种建立索引的方法更能发挥巨大的作用。WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
WWW_PLC※JS_COM-PmLC-技.术_网
世纪星组态软件的工程中保存两种类型的历史文件,一种以IDX结尾的索引文件,一种以LGH结尾的数据文件。在IDX文件中以分钟为最小单元,记录历史数据在LGH文件中的确定位置。查询数据时,根据使用者提供的查询时间,能够很快的在IDX文件中确定数据的确切位置,无视LGH数据文件的大小,达到快速查询的目的。WWW_P※LCJS_CO※M-PLC-技-.术_网
WW.W_PLCJS_COM-PLC-技.术_网
下图是数据查询时的示意图:WWW_PLC※JS_COM-PmLC-技.术_网
WW.W_PLC※JS_C,OM-PL,C-技.术_网
W1WW_P4LCJS_COM-PLC-技.术_网
WWW_P※LCJS_COM-PLC-)技.术_网
最后一个策略就是数据压缩。工控行业有时候需要保存的数据量很大,有时变化速率在100毫秒以内,而且需要保存的时间很长,为保存这些数据,同时确保占用空间小,就必须采用数据压缩。世纪星采用zlib库提供的压缩算法,zlib是一种可以免费使用的压缩库,压缩效果好,解压速度快。是目前比较成熟的数据压缩方法。WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WW.W_PLC※JS_C,OM-PL,C-技.术_网
采用这三种方法之后,效果显而易见。经过测试,包含1w个变量的工程,其中4k个变量每200毫秒记录一次,在查询10分钟的数据时所用时间不超过200毫秒;查询4个小时的数据,查询时间不超过2秒。WW.W_PLC※JS_C,OM-PL,C-技.术_网
W1WW_P4LCJS_COM-PLC-技.术_网
在实际应用中也会发现一些不足,比如工程中变量很多,要求存储的数据量很大,这时历史文件会很大,即使有索引文件,在查询时的速度也会降低。改进的方法是可以把一个文件分成多个,比如变量ID小于5000的数据保存成一个文件,变量ID在5000到10000之间的保存成一个文件,以此类推,这样就可以减小文件的规模,从而提高查询速度。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW_PLCJS@_COM%-PLC-技.术_网