葉均隆 葉均明
摘要:為了減少電池企業信息化建設的成本和對商用數據庫的依賴,設計出兩種有效的TXT文檔結構儲存電池檢測數據。由于電池檢測數據量大,為了提高數據讀取速度,這兩種儲存都是采用約定文件大小和分類保存的方式進行。由于直接保存采集進來的檢測數據,會出現大量的數據冗余,因此第二種則在第一種儲存方法中進一步優化。通過類似數據庫的主外鍵關聯的方式進行儲存,有效減少數據冗余。
關鍵詞:數據儲存;文本數據保存;文本數據關聯;大量數據儲存
1 ?引言
現在企業生產中一般使用主流的數據庫軟件進行各種數據保存和處理,如:sql server、mysql、Oracle等的使用。由于一次電池的檢測數據,它們的數據量大,各類數據之間的關系不算復雜,使用這些主流的數據庫進行存取,成本較高及容易受到技術制約。如果使用TXT文本保存數據,所有的技術人員都能對它進行處理和利用,而且不需要額外的費用。使用TXT文本保存一次電池的質量檢測數據主要解決以下三個問題:
(1)電池的檢測數據、電池檢測標準、生產線號、日期、電池型號、觸頭位置號等信息的保存。
(2)電池生產速度快,生成的數據量大,數據儲存要考慮管理方便和讀取速度。
(3)對數據查詢時,電池的檢測數據、電池檢測標準、生產線號等的關聯關系的處理。
2存儲結構設計
2.1 數據沒有精簡的存儲設計
例如數據在D:\DataTra\2021\A55A\0321.txt文件保存,每年生產的電池數據放在一個按年份命名的文件夾里。一般電池廠都會擁有多條生產線,那么在年份文件夾下接著建立以生產線號命名的文件夾。“0321.txt”代表3月21日的檢測數據。因為歷史記錄翻查的幾率偏小,所以年份文件夾下建立各生產線號的文件夾更有利于系統的查詢的效率。在生產線號命名的文件夾下,每天會創建一個電池檢測數據TXT文檔,文檔使用當前電池檢測數據的生產時間并去掉年份命名,這樣在文件進行查找時不需再次進行年份比較。在電池工廠里一年一般上班的天數不會超過270天。那么每年生成的文件最多為:270×生產線總數,擁有6條生產線的廠家約為1620個文件。計算機的硬盤使用時間越長,對硬盤里的文件進行編輯或刪除次數多了,都會造成文件碎片增加,這樣會嚴重影響以后的讀寫速度。根據近年來一次電池生產線的生產的特點,較好的生產設備一般能達到600只/min,理論上一天最多能生產864000只電池[1]。每行保存一條記錄,即是一只電池的數據,例如:“2021-03-22,21:23:12.448,0022,A55A,R03C,1.685,1.675,1.440,3.600,0025,0050,1.682,P,1.466,P,03.66,P,0205400006”。它們分別是日期、時間、觸頭的位置號、生產線號、電池型號、開路電壓上限、開路電壓下限、負荷電壓下限、短路電流下限、負荷電阻放電時間、短路放電時間、開路電壓實測值、負荷電壓實測值、短路電流實測值、流水號,另外此記錄中的“P”是符合檢驗水平代表合格,如果是顯著性差異的水平則此位置用F表示。一條記錄有107個字符,換行符號占2個字符(windows操作系統每行結尾是“\r \n”),則每天生成的TXT文檔空間最大為( 107 +2) ×Rmax /( 1 024×1 024) ≈89. 8 Mb[2]。在當天開始生產時,即有電池檢測數據,就開始生成約為89.8 Mb大小的文件,文件里面的信息為空。通常在工廠的一天不會滿負荷運轉的,機器一般是8~12小時的運行,那么大部分的txt文檔實際使用的磁盤空間為29.9 Mb ~44.9 Mb。那么需要第二天打開電池檢測數據程序時,對上一次生產過程中生成的TXT文檔進行空閑容量的檢測與釋放。文檔按時間的順序排序,使用折半查找算法則有非常高的運行效率。
2.2 數據精簡的存儲設計
如果想減少對磁盤空間的浪費,檢測數據中的日期和生產線號可在文件夾和文件名字那里體現出,可刪除它們。驗電機械采用多觸頭隨行的結構方式,通常有30或32個觸頭[2],所以位置號使用兩位數表達即可。電池型號一般有21種,這里也可以用兩位數字字符表達即可。檢測標準因為一般很長時間才更改一次,所以檢測數據文檔的檢測標準數據重復出現的概率很高,為了減少冗余數據,可建立的30MB的檢測標準TXT文檔(st.txt)進行記錄,根據生產特點,文檔記錄的流水號使用6位字符表達,足夠保證一年內不會重復。檢測標準文檔也是放在同一年份及同一生產線下,同一生產線一年只建立一個。然后檢測標準文檔的流水號賦給電池檢測數據TXT文檔即可。代號P或F可以根據檢測標準可以得到,這項也可以刪除。一天最多864000只電池,那么使用6位流水號即可足夠表達,經過這樣分析,例如:“0322.txt”文檔保存3月22日的一只電池的檢測數據為:“21:23:11.936,21,03,000001,1.676,1.448,03.74,000001”。而st.txt保存它對應的檢測標準為:“2021-03-22,21:23:11.936,1.685,1.675,1.440,3.600,0025,0050,000001”。雖然這樣精簡設計可減少到原來一半的磁盤空間,但在設計查詢算法設計時需要關聯st.txt文檔才能獲得檢測標準。按上文給的檢測數據例子,文本中的“03”旁的“000001”與st.txt文本中的一條檢測標準的“000001”關聯上。
3 結束語
通過本文2.1所述的儲存結構,在數據寫入和查找時較為簡單,但通過本文2.2所述的方式,開發難度逐步增加。使用TXT文檔保存數據雖然有效減少信息化建設的成本,但同時增加數據寫入和查找時軟件開發的難度。因此在借鑒文章的方法時可能根據不同的需求是否采用TXT文本儲存數據。
參考文獻:
[1]李勝,楊林.堿性鋅錳電池生產設備的進展和發展方向[J].電池,2015,45(04):225-227.
[2]葉均隆,葉錦雄,謝壁龍.電池高速測量數據的實時采集與保存[J].電池,2020,50(05):480-482.
基金項目:2020年度江門市基礎與理論科學研究類科技計劃項目(2020JC03050)
作者簡介:葉均隆(1983-),男,廣東人,廣東南方職業學院信息學院講師,碩士,研究方向:計算機應用、智能控制及算法等;
葉均明(1980-),男,廣東省江門市人,江門市中心醫院網絡中心工程師,本科,主要研究方向網絡工程、醫院信息化。