一種基于EVC的數(shù)據(jù)存儲管理算法實現(xiàn)
擴孔鉆機是在旋挖鉆機的基礎(chǔ)上加裝擴孔功能,即當(dāng)樁孔達到一定深度后,利用擴孔鉆頭,通過油缸來擴大樁孔底部空間進而增加整樁承載力的一種工法。國內(nèi)使用的工程實例表明,采用擴底樁一般能節(jié)約工程總投資的15%~35%不等。在擴孔鉆機研發(fā)過程中,需要通過顯示器對施工過程中樁孔的相關(guān)規(guī)格參數(shù)進行實時監(jiān)測控制,同時,相關(guān)尺寸的變化還要在人機界面圖形上動態(tài)顯示出來。另外,當(dāng)施工一段時間后,客戶可利用U盤或SD卡將顯示器內(nèi)存儲的施工數(shù)據(jù)拷貝出來,以便在上位機軟件上顯示還原或打印出來。
本文引用地址:http://m.butianyuan.cn/article/201609/304030.htm在樁基礎(chǔ)施工行業(yè),對施工的規(guī)格參數(shù)和施工標(biāo)準(zhǔn)有著較高的要求,它直接影響到整個工程的安全性和可靠性。在整個施工管理過程當(dāng)中,對參數(shù)的有效管理和存儲記錄就顯得尤為重要。本文設(shè)計了一套在EVC軟件平臺上針對該工法特點的施工數(shù)據(jù)存儲管理算法,有效管理了施工過程中的參數(shù)和施工數(shù)據(jù)。
1 平臺構(gòu)架
SYLD顯示器是一款基于ARM9平臺和EVC開發(fā)環(huán)境的顯示器,SYLD顯示與PLC控制器的數(shù)據(jù)采集存儲管理實現(xiàn)的硬件構(gòu)架如圖1所示。顯示器通過CAN總線與PLC控制器相連,用于在接收傳感器數(shù)據(jù)的同時發(fā)送相關(guān)控制命令;利用工業(yè)USB插座將顯示器的USB信號電源線進行引出,即D+、D-、5V+和GND。
2 算法實現(xiàn)
在嵌入式系統(tǒng)中,我們更加迫切的需要通過文件來存儲應(yīng)用程序配置信息或存儲應(yīng)用程序所需資源數(shù)據(jù),因此在本系統(tǒng)中對文件的操作也是主要內(nèi)容。在對整個施工過程中參數(shù)及施工數(shù)據(jù)的管理總流程如圖2所示,首先在程序中的最先運行的程序段內(nèi)創(chuàng)建一個參數(shù)配置文件。參數(shù)配置文件中的數(shù)據(jù)為擴孔工法中樁孔的典型規(guī)格參數(shù)。然后當(dāng)系統(tǒng)上電時首先讀取參數(shù)配置文件,然后根據(jù)讀取的參數(shù)繪制樁孔及鉆頭規(guī)格圖形并顯示相關(guān)信息。當(dāng)施工時,設(shè)定當(dāng)前預(yù)擴孔的擴孔數(shù)據(jù)并保存到施工數(shù)據(jù)文件夾中。當(dāng)施工完畢后,將施工實際參數(shù)保存到對于的樁孔數(shù)據(jù)文件中。需要拷貝時,將U盤插入顯示器的USB擴展接口中便可將施工數(shù)據(jù)文件夾拷貝到U盤當(dāng)中。通過設(shè)計上位機解析軟件,可將U盤中的施工數(shù)據(jù)還原出來,并進行管理打印等操作。
在軟件的實現(xiàn)過程當(dāng)中,對文件的操作和數(shù)據(jù)存儲算法等是核心。文件通常分為二進制文件和文本文件。二進制文件是包含在ASCII及擴展ASCII字符中編寫的數(shù)據(jù)或程序指令文件。一般是可執(zhí)行的程序、圖形、聲音等文件。文本文件(也稱為ASCII文件):它的每一個字節(jié)存放的是可表示為一個字符的ASCII代碼的文件??捎萌魏挝淖痔幚沓绦蜷喿x
的簡單文本文件。對文件的操作主要有文件的創(chuàng)建、文件的寫入讀取和拷貝,主要程序?qū)崿F(xiàn)代碼如下:
workdata_file=CreateFile(_T(“\StorageCard\workdata.txt”),GENERIC_READ |GENERIC_WRITE,0,NULL,CREATE_NEW,F(xiàn)ILE_ATTRIBUTE_NORMAL,NULL);
/*注釋*在顯示器的儲存器“StorageCard”中創(chuàng)建txt數(shù)據(jù)文件,若該文件已經(jīng)存儲則更新。*注釋*/
假設(shè)施工過程中需要存儲的施工數(shù)據(jù)有20項目即20個參數(shù),則預(yù)先存儲在臨時緩存數(shù)組中uint workdata_buf,本文在處理時采用了以文本文件的格式進行存儲。即把每一位的數(shù)字轉(zhuǎn)換成字符,并在每個參數(shù)前添加字母和冒號以示區(qū)分這一串字符中各個參數(shù)。如第一個參數(shù)為年份2013第二個參數(shù)為月份12,則按上述方法轉(zhuǎn)換為字符格式后為A:2013B:0012……,將轉(zhuǎn)換后的所有字符分別存入數(shù)組para_write_buff中。相應(yīng)程序代碼為:
//寫入文件,將para_write_buff數(shù)組中緩存的施工數(shù)據(jù)記錄數(shù)值字符存入所創(chuàng)建的數(shù)據(jù)文件workdata_file中,在首次啟動顯示系統(tǒng)時,配置文件的寫入與此相同。之后,無特殊情況不需要每次啟動時再寫入配置參數(shù),只需要讀取即可,算法與寫入過程互為逆過程。讀取參數(shù)的相關(guān)程序代碼如下:
//配置文件中的字符信息已經(jīng)還原為參數(shù)數(shù)值并存儲在para_nun_buffer數(shù)組當(dāng)中,可供程序使用。
CreateDirectory (L“\StorageCard\syworkdata”,NULL)//在StorageCard中創(chuàng)建名為syworkdata的文件夾
CopyFile(strSrcFile,strDstFile,F(xiàn)ALSE);∥將路徑為strSrcFile的源文件拷貝到路徑為strDstFile的目標(biāo)文件中。
上述程序算法是實現(xiàn)了一個數(shù)據(jù)文件的讀寫拷貝等操作,在進行施工數(shù)據(jù)文件的存儲時,由于數(shù)據(jù)量大需要對所有文件定義一個命名規(guī)則,因此設(shè)計一個在保存時能夠自動按順序命名的算法程序有一定的實用價值。本文采用的是一種數(shù)字命名的方法,經(jīng)過驗證也可以達到自動順序命名的目的。當(dāng)按下要保存的數(shù)據(jù)文件時,文件名稱的數(shù)字形式自動加一合成文件名稱(例如文件名稱以“31001”開頭),接著將施工數(shù)據(jù)存入經(jīng)過合成的文件名稱對應(yīng)的文件中。程序主要代碼如下:
評論