999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于EVC 的數據存儲管理算法實現

2014-01-21 00:52:32石常興
電子設計工程 2014年20期
關鍵詞:施工

石常興,周 浩

(北京市三一重機有限公司 研究本院 北京102202)

擴孔鉆機是在旋挖鉆機的基礎上加裝擴孔功能,即當樁孔達到一定深度后,利用擴孔鉆頭,通過油缸來擴大樁孔底部空間進而增加整樁承載力的一種工法。國內使用的工程實例表明,采用擴底樁一般能節約工程總投資的15%~35%不等[1]。在擴孔鉆機研發過程中,需要通過顯示器對施工過程中樁孔的相關規格參數進行實時監測控制,同時,相關尺寸的變化還要在人機界面圖形上動態顯示出來。另外,當施工一段時間后,客戶可利用U盤或SD卡[2]將顯示器內存儲的施工數據拷貝出來,以便在上位機軟件上顯示還原或打印出來。

在樁基礎施工行業,對施工的規格參數和施工標準有著較高的要求,它直接影響到整個工程的安全性和可靠性。在整個施工管理過程當中,對參數的有效管理和存儲記錄就顯得尤為重要。本文設計了一套在EVC軟件平臺上針對該工法特點的施工數據存儲管理算法,有效管理了施工過程中的參數和施工數據。

1 平臺構架

SYLD顯示器是一款基于ARM9平臺和EVC開發環境的顯示器,SYLD顯示與PLC控制器的數據采集存儲管理實現的硬件構架如圖1所示。顯示器通過CAN總線[3]與PLC控制器相連,用于在接收傳感器數據的同時發送相關控制命令;利用工業USB插座將顯示器的USB信號電源線進行引出,即 D+、D-、5V+和 GND。

圖1 系統構架Fig.1 Structure diagram of system

2 算法實現

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

圖2 算法運行流程圖Fig.2 Flow chart of the software design

在軟件的實現過程當中,對文件的操作和數據存儲算法等是核心。文件通常分為二進制文件和文本文件。二進制文件是包含在ASCII及擴展ASCII字符中編寫的數據或程序指令文件。一般是可執行的程序、圖形、聲音等文件[5]。文本文件(也稱為ASCII文件):它的每一個字節存放的是可表示為一個字符的ASCII代碼的文件。可用任何文字處理程序閱讀的簡單文本文件。對文件的操作主要有文件的創建、文件的寫入讀取和拷貝,主要程序實現代碼如下:

workdata_file=CreateFile (_T("\StorageCard\workdata.txt"),GENERIC_READ|GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);

/*注釋*在顯示器的儲存器“StorageCard”中創建txt數據文件,若該文件已經存儲則更新。*注釋*/

假設施工過程中需要存儲的施工數據有20項目即20個參數,則預先存儲在臨時緩存數組中uint workdata_buf,本文在處理時采用了以文本文件的格式進行存儲。即把每一位的數字轉換成字符,并在每個參數前添加字母和冒號以示區分這一串字符中各個參數。如第一個參數為年份2013第二個參數為月份12,則按上述方法轉換為字符格式后為A:2013B:0012……,將轉換后的所有字符分別存入數組para_write_buff中。相應程序代碼為:

para_temp=para_buffer[0];/★注釋★第一個參數賦給緩沖變量 ★注釋 ★/

for (uchar para_wei= 0,para_num=0;para_wei<140;para_wei++)

/*注釋*para_num=7個數字為一個參數分割*注釋*/

{

if((para_wei%7)==2)

para_temp=workdata_buf[(para_num++)%20];

if((para_wei%7)==0)//字母

para_write_buff[para_wei]=para_char_num++;

else if( (para_wei%7)==1)

para_write_buff[para_wei]=58;//":"

else

{

para_write_buff[para_wei]=(uchar)((para_temp%10)+'0');//+'0'變為 ASCII碼 para_temp=(para_temp/10);

}

}

WriteFile(workdata_file,para_write_buff,sizeof(para_write_buff),&fact_writebyenum,NULL);

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

configfile =CreateFile (_T ("\StorageCard\para_config.txt"),GENERIC_READ |GENERIC_WRITE,0, NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);SetFilePointer(configfile,0,NULL,FILE_BEGIN);

do

{

ReadFile(configfile,para_write_buff,sizeof(para_write_buff),&fact_readbyenum,NULL);

//指向要讀取的文件句柄//接受數據的緩沖區//從文件中讀取的字節數//實際從文件中讀取的字節數//空

}

while(fact_readbyenum==sizeof(para_write_buff));

//已完全存入para_write_buff

for(uchar read_num=0,tem_num=0,para_num=0;read_num

{

uint para_temp=0;//緩存讀出數值

uchar char_temp=0;//緩存讀出字符

if((read_num%7)==0)

{

for(tem_num=6;tem_num>1;tem_num--)

{

char_temp=(para_write_buff[read_num+tem_num]-'0');//-'0'還原成數值

para_temp=(para_temp*10+char_temp);

}

para_num_buffer[para_num]=para_temp;

para_num=(++para_num);

if(para_num==20)

para_num=0;

}

}

CloseHandle(configfile);

//配置文件中的字符信息已經還原為參數數值并存儲在para_num_buffer數組當中,可供程序使用。

CreateDirectory (L"\StorageCard \syworkdata ",NULL)//在StorageCard中創建名為syworkdata的文件夾

CopyFile(strSrcFile,strDstFile,FALSE);//將路徑為strSrcFile的源文件拷貝到路徑為strDstFile的目標文件中。

上述程序算法是實現了一個數據文件的讀寫拷貝等操作,在進行施工數據文件的存儲時,由于數據量大需要對所有文件定義一個命名規則,因此設計一個在保存時能夠自動按順序命名的算法程序有一定的實用價值。本文采用的是一種數字命名的方法,經過驗證也可以達到自動順序命名的目的。當按下要保存的數據文件時,文件名稱的數字形式自動加一合成文件名稱(例如文件名稱以“31001”開頭),接著將施工數據存入經過合成的文件名稱對應的文件中。程序主要代碼如下:

haves_pilecnt++;//施工數據文件個數再按下保存后自加for(unsigned int k=0;k

//SAVE_SUM_NUM為預設能存入的數據文件最大數

{

m_name[k]=31000+k;//形成數據文件名稱,并存入數組中

}

str.Format(_T ("\Storage Card\syworkdata\%d.txt"),m_name[haves_pilecnt]);//合成當前施工數據文件的路徑及名稱

……

jobdatafile=CreateFile(str,GENERIC_READ|GENERIC_WRITE,0,

NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);

//創建當前施工數據文件(str所指)

……

WriteFile (jobdatafile,para_write_buff,sizeof(para_write_buff),&fact_writebyenum,NULL);//將施工數據緩存數組para_write_buff存入當前施工數據文件jobdatafile句柄

利用VB[6]進行上位機軟件開發,由上位機軟件對施工數據進行解析顯示等操作,上位機界面如圖3所示。

圖3 上位機測試界面圖Fig.3 Interface chart of the test system

3 結論

經過程序反復調試測試,最后應用于產品顯示控制系統中并且運行穩定。實踐證明該算法能夠實現施工數據的存儲和管理。因此該方法具有一定典型性,可以在相關平臺上推廣應用。

[1]王磊,高春華,盧英明.擴底灌注樁的旋挖鉆機成孔工法[J].建筑機械,2011(8):49-51.WANG Lei,GAO Chun-hua,LU Yin-ming.Dilled working method of enlarging base and casting stake by rotary drilling rig[J].Construction Machinery,2011(8):49-51.

[2]李寧.基于MDK的STM32處理器開發應用[M].北京:北京航空航天大學出版社,2008.

[3]周立功等.項目驅動—CAN-BUS現場總線基礎教程[M].北京:北京航空航天大學出版社,2012.

[4]汪兵,李存斌,陳鵬,等.EVC高級編程及其應用開發[M].北京:水利水電出版社,2005.

[5]孫鑫.VC++深入詳解(修訂版)[M].北京:電子工業出版社,2006.

[6]鄒麗明.Visual Basic 6.0程序設計與實訓[M].北京:電子工業出版社,2008.

猜你喜歡
施工
后澆帶施工技術在房建施工中的運用
鋁模板在高層建筑施工中的應用
后澆帶施工技術在房建施工中的踐行探索
新型環保建筑材料在土木工程施工中的應用
防滲漏技術在民用建筑施工中的應用
后澆帶施工技術在房建施工中的應用
后澆帶施工技術在房建施工中的應用
土木工程施工技術創新探討
防滲漏施工技術在房建施工中的應用
上海建材(2017年4期)2017-10-16 01:33:34
土木工程施工實習的探討與實踐
主站蜘蛛池模板: 婷婷在线网站| 国产91在线|日本| 亚洲黄色成人| 91av成人日本不卡三区| 欧美中文一区| 91九色最新地址| 亚洲国产av无码综合原创国产| 精品无码一区二区三区在线视频| 亚洲国产成人麻豆精品| 欧美色视频日本| 一本大道视频精品人妻 | 在线国产毛片手机小视频| 日韩高清在线观看不卡一区二区| 亚洲欧美日韩中文字幕在线一区| 国产精品第一区在线观看| 在线精品视频成人网| 国产男人的天堂| 国产成+人+综合+亚洲欧美| 综合久久五月天| 亚洲男人天堂网址| 久久99国产精品成人欧美| 91亚洲视频下载| 2021国产v亚洲v天堂无码| 欧美性爱精品一区二区三区| 国产视频你懂得| 久久精品国产在热久久2019| 无码在线激情片| 久久中文字幕2021精品| 精品国产成人国产在线| 国产微拍一区| 国产粉嫩粉嫩的18在线播放91 | 亚洲无码视频喷水| 日本一本正道综合久久dvd| 免费在线一区| 99re精彩视频| 伊人久久久久久久| 日韩福利在线视频| 久久天天躁狠狠躁夜夜2020一| 少妇被粗大的猛烈进出免费视频| 91精品国产综合久久香蕉922| 国产精品嫩草影院视频| 网友自拍视频精品区| 亚洲天堂精品视频| 666精品国产精品亚洲| 亚洲欧美日韩另类在线一| 日韩经典精品无码一区二区| 人妻精品久久无码区| 99在线观看免费视频| 欧美另类图片视频无弹跳第一页| 国产高清毛片| 伊伊人成亚洲综合人网7777| 国产男人的天堂| 性视频久久| 999国内精品久久免费视频| 成人精品免费视频| 在线播放91| 中日韩欧亚无码视频| 国产白浆一区二区三区视频在线| 青青青草国产| 国产无码制服丝袜| 免费精品一区二区h| 国产在线精品人成导航| 国产一级视频久久| 久久99国产综合精品1| 国产成人超碰无码| 国产本道久久一区二区三区| 国产精品无码AV中文| 久久久黄色片| 欧美一级高清视频在线播放| 性喷潮久久久久久久久| 国产精品手机在线播放| 欧美成人精品高清在线下载| 国产美女在线观看| 国产精品妖精视频| 欧美成人免费一区在线播放| 亚洲视频一区在线| 在线一级毛片| 欧美激情伊人| 综合五月天网| 国产在线观看一区二区三区| 婷婷开心中文字幕| 91青青草视频|