为了节省存储数据所占用的空间,可对数据编码长度进行压缩,数据经过压缩后再进行存储,即压缩存储。压缩存储不但节省了存储空间,另一方面也节省了数据传输的开销。一般来说,只要清楚数据的压缩方式,上位计算机就能够方便地进行解压缩。
对于PLC而言,最基本的数据压缩技术有以下三类。
(1)用十六进制码代替BCD码:BCD码是采用4位二进制数来表示一位十进制数0-9的编码方式,而实际上4位二进制数可以表示16个不同数码,所以采用BCD码存取数存在资源浪费。如16位二进制数(一个字),用以表示BCD码数,最大只能到9999;而表示普通二进制数,转为十进制数最大可达65535。
(2)合并数据代替单独数据:存储普通日期数据,一般需要4个字节,如2009年10月1日,则2009需要2个字节,10需要1个字节,1需要1个字节,如不考虑千年,需用3个字节存储,如果把这些数据合并后再进行存储,就无需3个或4个字节了。
数据合并时,可将各合并数先加权再相加,如年可乘400(为计算方便,一年最多366天),月可乘40(一个月最多31天),2009、10、l合并可得9×400+10×40+1=4001,2个字节就足够存储了。数据还原时,可用合并数分别被400整除得年份,被40整除得月份(不够需借位),余数为日期。
(3)以位(bit)计算存储单位:每个记录以二进制位(bit)为单位进行存储,而不是以字节或字,这样可充分利用存储空间,提高存储效率,但算法较复杂。
当然,是否对数据采用压缩存储需要具体问题具体分析,输人数据压缩可以节省存储空间,但另一方面被压缩的数据可能会丧失原来良好的数据标准形式,导致其通用性、可移植性及可靠性的降低。
展开