一种基于EVC的数据存储管理算法实现
扩孔钻机是在旋挖钻机的基础上加装扩孔功能,即当桩孔达到一定深度后,利用扩孔钻头,通过油缸来扩大桩孔底部空间进而增加整桩承载力的一种工法。国内使用的工程实例表明,采用扩底桩一般能节约工程总投资的15%~35%不等。在扩孔钻机研发过程中,需要通过显示器对施工过程中桩孔的相关规格参数进行实时监测控制,同时,相关尺寸的变化还要在人机界面图形上动态显示出来。另外,当施工一段时间后,客户可利用U盘或SD卡将显示器内存储的施工数据拷贝出来,以便在上位机软件上显示还原或打印出来。
在桩基础施工行业,对施工的规格参数和施工标准有着较高的要求,它直接影响到整个工程的安全性和可靠性。在整个施工管理过程当中,对参数的有效管理和存储记录就显得尤为重要。本文设计了一套在EVC软件平台上针对该工法特点的施工数据存储管理算法,有效管理了施工过程中的参数和施工数据。
1 平台构架
SYLD显示器是一款基于ARM9平台和EVC开发环境的显示器,SYLD显示与PLC控制器的数据采集存储管理实现的硬件构架如图1所示。显示器通过CAN总线与PLC控制器相连,用于在接收传感器数据的同时发送相关控制命令;利用工业USB插座将显示器的USB信号电源线进行引出,即D+、D-、5V+和GND。
![](../img/eep/emb/emb-49985hlazlbxiyu0.jpg)
2 算法实现
在嵌入式系统中,我们更加迫切的需要通过文件来存储应用程序配置信息或存储应用程序所需资源数据,因此在本系统中对文件的操作也是主要内容。在对整个施工过程中参数及施工数据的管理总流程如图2所示,首先在程序中的最先运行的程序段内创建一个参数配置文件。参数配置文件中的数据为扩孔工法中桩孔的典型规格参数。然后当系统上电时首先读取参数配置文件,然后根据读取的参数绘制桩孔及钻头规格图形并显示相关信息。当施工时,设定当前预扩孔的扩孔数据并保存到施工数据文件夹中。当施工完毕后,将施工实际参数保存到对于的桩孔数据文件中。需要拷贝时,将U盘插入显示器的USB扩展接口中便可将施工数据文件夹拷贝到U盘当中。通过设计上位机解析软件,可将U盘中的施工数据还原出来,并进行管理打印等操作。
![](../img/eep/emb/emb-49986f5ahnyaleix.jpg)
在软件的实现过程当中,对文件的操作和数据存储算法等是核心。文件通常分为二进制文件和文本文件。二进制文件是包含在ASCII及扩展ASCII字符中编写的数据或程序指令文件。一般是可执行的程序、图形、声音等文件。文本文件(也称为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中。相应程序代码为:
![](../img/eep/emb/emb-49987y54wjfkvcjv.jpg)
![](../img/eep/emb/emb-49988l1uyqd5ueoj.jpg)
//写入文件,将para_write_buff数组中缓存的施工数据记录数值字符存入所创建的数据文件workdata_file中,在首次启动显示系统时,配置文件的写入与此相同。之后,无特殊情况不需要每次启动时再写入配置参数,只需要读取即可,算法与写入过程互为逆过程。读取参数的相关程序代码如下:
![](../img/eep/emb/emb-49989zhubd1bplll.jpg)
![](../img/eep/emb/emb-49990nscuzv3brmw.jpg)
//配置文件中的字符信息已经还原为参数数值并存储在para_nun_buffer数组当中,可供程序使用。
CreateDirectory (L“\\StorageCard\\syworkdata”,NULL)//在StorageCard中创建名为syworkdata的文件夹
CopyFile(strSrcFile,strDstFile,FALSE);∥将路径为strSrcFile的源文件拷贝到路径为strDstFile的目标文件中。
上述程序算法是实现了一个数据文件的读写拷贝等操作,在进行施工数据文件的存储时,由于数据量大需要对所有文件定义一个命名规则,因此设计一个在保存时能够自动按顺序命名的算法程序有一定的实用价值。本文采用的是一种数字命名的方法,经过验证也可以达到自动顺序命名的目的。当按下要保存的数据文件时,文件名称的数字形式自动加一合成文件名称(例如文
- 一种嵌入式显示系统的软件设计及应用(01-08)
- 成像测井中基于ARM LPC1788显示系统的设计(01-12)
- 基于FPGA的数字显示系统设计(06-05)
- 基于树莓派的电梯彩屏显示系统设计(10-22)
- 基于CPLD的LCD1602显示系统设计与实现(09-12)
- 计算机在管理公交站信息显示系统中应用(02-27)