为了节省存储数据所占用的空间,可对数据编码长度进行压缩,数据经过压缩后再进行存储,即压缩存储。压缩存储不但节省了存储空间,另一方面也节省了数据传输的开销。一般来说,只要清楚数据的压缩方式,上位计算机就能够方便地进行解压缩。
对于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整除得月份(不够需借位),余数为日期。
问题是:4001被400整除应该是10啊,怎么还原到9?同样月份怎么还原到10?
请高手帮忙。谢谢
[ 此帖被246h在2013-10-05 13:53重新编辑 ]