一種基于EVC的數據存儲管理算法實(shí)現
擴孔鉆機是在旋挖鉆機的基礎上加裝擴孔功能,即當樁孔達到一定深度后,利用擴孔鉆頭,通過(guò)油缸來(lái)擴大樁孔底部空間進(jìn)而增加整樁承載力的一種工法。國內使用的工程實(shí)例表明,采用擴底樁一般能節約工程總投資的15%~35%不等。在擴孔鉆機研發(fā)過(guò)程中,需要通過(guò)顯示器對施工過(guò)程中樁孔的相關(guān)規格參數進(jìn)行實(shí)時(shí)監測控制,同時(shí),相關(guān)尺寸的變化還要在人機界面圖形上動(dòng)態(tài)顯示出來(lái)。另外,當施工一段時(shí)間后,客戶(hù)可利用U盤(pán)或SD卡將顯示器內存儲的施工數據拷貝出來(lái),以便在上位機軟件上顯示還原或打印出來(lái)。
本文引用地址:http://dyxdggzs.com/article/201609/304030.htm在樁基礎施工行業(yè),對施工的規格參數和施工標準有著(zhù)較高的要求,它直接影響到整個(gè)工程的安全性和可靠性。在整個(gè)施工管理過(guò)程當中,對參數的有效管理和存儲記錄就顯得尤為重要。本文設計了一套在EVC軟件平臺上針對該工法特點(diǎn)的施工數據存儲管理算法,有效管理了施工過(guò)程中的參數和施工數據。
1 平臺構架
SYLD顯示器是一款基于A(yíng)RM9平臺和EVC開(kāi)發(fā)環(huán)境的顯示器,SYLD顯示與PLC控制器的數據采集存儲管理實(shí)現的硬件構架如圖1所示。顯示器通過(guò)CAN總線(xiàn)與PLC控制器相連,用于在接收傳感器數據的同時(shí)發(fā)送相關(guān)控制命令;利用工業(yè)USB插座將顯示器的USB信號電源線(xiàn)進(jìn)行引出,即D+、D-、5V+和GND。

2 算法實(shí)現
在嵌入式系統中,我們更加迫切的需要通過(guò)文件來(lái)存儲應用程序配置信息或存儲應用程序所需資源數據,因此在本系統中對文件的操作也是主要內容。在對整個(gè)施工過(guò)程中參數及施工數據的管理總流程如圖2所示,首先在程序中的最先運行的程序段內創(chuàng )建一個(gè)參數配置文件。參數配置文件中的數據為擴孔工法中樁孔的典型規格參數。然后當系統上電時(shí)首先讀取參數配置文件,然后根據讀取的參數繪制樁孔及鉆頭規格圖形并顯示相關(guān)信息。當施工時(shí),設定當前預擴孔的擴孔數據并保存到施工數據文件夾中。當施工完畢后,將施工實(shí)際參數保存到對于的樁孔數據文件中。需要拷貝時(shí),將U盤(pán)插入顯示器的USB擴展接口中便可將施工數據文件夾拷貝到U盤(pán)當中。通過(guò)設計上位機解析軟件,可將U盤(pán)中的施工數據還原出來(lái),并進(jìn)行管理打印等操作。

在軟件的實(shí)現過(guò)程當中,對文件的操作和數據存儲算法等是核心。文件通常分為二進(jìn)制文件和文本文件。二進(jìn)制文件是包含在A(yíng)SCII及擴展ASCII字符中編寫(xiě)的數據或程序指令文件。一般是可執行的程序、圖形、聲音等文件。文本文件(也稱(chēng)為ASCII文件):它的每一個(gè)字節存放的是可表示為一個(gè)字符的ASCII代碼的文件??捎萌魏挝淖痔幚沓绦蜷喿x
的簡(jiǎn)單文本文件。對文件的操作主要有文件的創(chuàng )建、文件的寫(xiě)入讀取和拷貝,主要程序實(shí)現代碼如下:
workdata_file=CreateFile(_T(“\StorageCard\workdata.txt”),GENERIC_READ |GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);
/*注釋*在顯示器的儲存器“StorageCard”中創(chuàng )建txt數據文件,若該文件已經(jīng)存儲則更新。*注釋*/
假設施工過(guò)程中需要存儲的施工數據有20項目即20個(gè)參數,則預先存儲在臨時(shí)緩存數組中uint workdata_buf,本文在處理時(shí)采用了以文本文件的格式進(jìn)行存儲。即把每一位的數字轉換成字符,并在每個(gè)參數前添加字母和冒號以示區分這一串字符中各個(gè)參數。如第一個(gè)參數為年份2013第二個(gè)參數為月份12,則按上述方法轉換為字符格式后為A:2013B:0012……,將轉換后的所有字符分別存入數組para_write_buff中。相應程序代碼為:


//寫(xiě)入文件,將para_write_buff數組中緩存的施工數據記錄數值字符存入所創(chuàng )建的數據文件workdata_file中,在首次啟動(dòng)顯示系統時(shí),配置文件的寫(xiě)入與此相同。之后,無(wú)特殊情況不需要每次啟動(dòng)時(shí)再寫(xiě)入配置參數,只需要讀取即可,算法與寫(xiě)入過(guò)程互為逆過(guò)程。讀取參數的相關(guān)程序代碼如下:


//配置文件中的字符信息已經(jīng)還原為參數數值并存儲在para_nun_buffer數組當中,可供程序使用。
CreateDirectory (L“\StorageCard\syworkdata”,NULL)//在StorageCard中創(chuàng )建名為syworkdata的文件夾
CopyFile(strSrcFile,strDstFile,FALSE);∥將路徑為strSrcFile的源文件拷貝到路徑為strDstFile的目標文件中。
上述程序算法是實(shí)現了一個(gè)數據文件的讀寫(xiě)拷貝等操作,在進(jìn)行施工數據文件的存儲時(shí),由于數據量大需要對所有文件定義一個(gè)命名規則,因此設計一個(gè)在保存時(shí)能夠自動(dòng)按順序命名的算法程序有一定的實(shí)用價(jià)值。本文采用的是一種數字命名的方法,經(jīng)過(guò)驗證也可以達到自動(dòng)順序命名的目的。當按下要保存的數據文件時(shí),文件名稱(chēng)的數字形式自動(dòng)加一合成文件名稱(chēng)(例如文件名稱(chēng)以“31001”開(kāi)頭),接著(zhù)將施工數據存入經(jīng)過(guò)合成的文件名稱(chēng)對應的文件中。程序主要代碼如下:


評論