為了節省存儲數據所占用的空間,可對數據編碼長度進行壓縮,數據經過壓縮后再進行存儲,即壓縮存儲。壓縮存儲不但節省了存儲空間,另一方面也節省了數據傳輸的開銷。一般來說,只要清楚數據的壓縮方式,上位計算機就能夠方便地進行解壓縮。
對于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重新編輯 ]