0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于MySQL数据库应用开发实现嵌入式数控系统的设计

电子设计 来源:微计算机信息 作者:邬依林 , 黄瑛 2020-12-02 10:07 次阅读

1 引言

本文所论述是数控系统大课题中人机交互的外围部分子课题中的数据库开发应用。在数控加工系统中,存在着大量的用户设定参数、系统参数、坐标轴参数、轴补偿参数和刀具特征参数等数据。在整个生产制造系统中,这些数据不仅对于数控编程人员是必需的,而且对于实时过程控制系统、调度系统、工序处理、库存管理系统、刀具维护管理系统等也是必需的。这些数据的组织管理方式对数控系统的实时性乃至性能影响很大,因此高性能数控系统必须解决数据的有效性组织管理问题。如果采用直接将数据存放在一个表或字符数组中,数据的修改与维护会相当困难、繁杂,这与数控系统对数据操作要求简单方便与快捷相悖,因此这种组织管理方式不能满足数控系统的要求。目前数控加工系统普遍采用的文本文件格式存储管理数据的方式也存在着实时操作性较差和磁盘空间浪费严重的缺点,而实时性和存储空间两个要素对于高性能嵌入式数控系统来说却是至关重要的。因此,在本课题研究中,作者提出在嵌入式Linux环境下的数控系统中采用基于MySQL数据库管理数据的全新技术解决方案。实践结果表明:在嵌入式数控系统中采用数据库进行数据管理,满足了高性能嵌入式数控系统在实时性和存储空间方面的要求,提高了系统的速度,极大地改善了系统的性能。本文就嵌入式数控系统中数据库应用开发的具体实现过程,以及如何将数据库应用程序向嵌入式数控系统硬件平台的移植方法和对数据库进行最小化裁剪的技巧上做了详细介绍。

由于本课题开发的人机界面是利用GTK+图形库,因此系统中采用的基于MySQL数据库应用开发,需要解决MySQL和GTK+相互融合的问题。GTK+没有直接操作数据库的控件,对数据库的操作可以采取通过MySQL C API 直接进行,再调用GTK+ 的显示功能的方法来完成与用户的交互。

2 数据库实现

2.1 数据库的建立

2.1.1创建work数据库

首先创建一个名称为work的数据库,并包含系统需要的所有表,作为根用户连接到MySQL。具体创建过程如下:

% mysql –uroot mysql; //进入数据库

mysql》 SET PASSWORD=PASSWORD(‘lyw00001’); //为根用户分配一个口令

mysql》 CREATE DATABASE work ; //创建work数据库

mysql》 GRANT ALL ON work.* to lyw@localhost IDENTIFIED BY ‘lyw00001’;//创建一个名为lyw的用户

//与根用户使用同一口令,并为用户赋予数据库work的完全访问权限

% mysql –ulyw –p lyw00001 work; //连接库

2.1.2创建表

针对基于GTK+库设计的用户操作界面有若干个表与之相对应,下面以一个界面为例详细说明MySQL与GTK+的连接过程。

连接到数据库之后,就可以向它添加内容了,使用CREATE命令来创建一个名为tbl_amend_amend的表。

CREATE TABLE tbl_amend_amend (

number INT NOT NULL PRIMARY KEY,

shapeh VARCHAR(10),

deleteh VARCHAR(10),

shaped VARCHAR(10),

deleted VARCHAR(10),);

创建一个表后,可使用SQL语句INSERT命令向表中填入数据,但这种方法当数据量大时会耗时很多。因此作者采用批处理模式向表中填入数据的方法,具体作法是:首先创建一个存储SQL语句的文本文件amend_data.sql,如图1所示;然后执行SQL语句:% mysql –ulyw –p lyw00001 work 就将图1中的数据加入到tbl_amend_amend表中了,如表1所示。如果需要对数据进行修改,则只需要在amend_data.sql文本文件中进行,然后重新执行一次上文中提到的语句就可以轻松地完成。

基于MySQL数据库应用开发实现嵌入式数控系统的设计

图1amend_data文本文件

表1tbl_amend_amend表

2.2 连接模块

完成数据库及表的创建,有了相关的数据,下一步的工作就是在应用程序中实现与数据库的连接。应用程序中用connect_to_db()模块实现了与数据库work连接功能,模块代码如下:

void Connect_to_db(){……;

conx = mysql_init((MYSQL *)0L); //初始化

……;

temp = mysql_real_connect(conx,126.0.0.1, lyw,lywcita001, work, 0, 0L, 0);

……;}

mysql_real_connect函数用于连接到名称为conx 的MySQL服务器,其主机的IP地址为“127.0.0.1”,用户名为“lyw”,密码为“lywcita001”,连接的数据库名为work。

2.3 填充模块

实现了与数据库的连接后,接下来应将数据库的数据填充到用户界面上去。应用程序中用Fill_clist()模块实现数据填充功能,其实现流程为:用MySQL查询所需的数据;将查询结果保存在内部缓存中;将缓存中的数据显示在用户界面上。模块代码如下:

void Fill_clist(){ ……;

gchar *amend_clist_row[5] = {,,,,}; //定义gtk+数组数据指针及变量

mysql_query(conx,select number,shapeh,deleteh,shaped,deleted from tbl_amend_amend);

result_set = mysql_store_result(conx); //将查询结果保存在内部缓存中

num_fields = mysql_num_fields(result_set); //获得结果集中列的数量

while(db_row = mysql_fetch_row(result_set)) {

lengths = mysql_fetch_lengths(result_set); //获得列的长度

amend_clist_row[0] = db_row[0];

……;

amend_clist_row[4] = db_row[4]; //将获得的db_row字符串数组的值一一对应地赋值给amend_clist_row

gtk_clist_append(GTK_CLIST(modify_list),amend_clist_row); }//填充到clist对应的域中

mysql_free_result(result_set);} //释放结果集所用的内存

编译运行插入程序,实现了数据库向用户界面填充数据功能,获得了如图2所示的界面。

图2 MySQL填充图

2.4 更新模块

当用户在界面上对系统参数进行修改后,希望将新的数据写入数据库保存,确保数据信息的一致性和连续性,因此应用程序应具有根据系统参数的改变而更新数据库的功能。与填充模块类似,应用程序中用Update_database()模块实现数据库更新功能。

3 数据库移植

3.1 移植的硬件平台

本数控系统中采用了嵌入式PC平台,嵌入式PC与标准PC机完全兼容。因而,可以在普通PC上做好设计和开发,再将软件移植到嵌入式PC上。本系统开发采用嵌入式PC104计算机,硬件水平达到P3级,内存为128M,程序存储选用128M CF[4]卡。

3.2 移植过程

要在数控系统中应用数据库和操作界面,则需要将MySQL和操作界面应用程序移植到CF卡中。考虑到CF卡的容量问题,在移植的过程中要对数据库进行裁剪。

3.2.1 mysqld运行服务器的移植

要让MySQL能运行在嵌入式系统中,那么mysqld运行服务器文件的移植有着至关重要的作用。用命令ldd mysqld查询与mysqld可执行文件相关的库,结果如表2所示:

表2 与mysqld可执行文件相关的库文件

执行文件mysqld的大小为3.3M,而其相关的库文件的大小约为2M,将mysqld并同上述相关的库文件一起移植到CF卡上,这样mysqld便可在嵌入式硬件平台上有效地执行了。

3.2.2应用文件的移植

假定应用程序的可执行文件为app,用命令ldd app同样可以查询到与可执行文件app相关的库。将应用程序连同与应用程序执行相关的库文件一起移植到CF卡上。应用程序的大小约为100K,与应用程序执行相关联的库文件的大小约为8M,而这8M的库文件大部分为嵌入式Linux系统自身带有的库文件,基本上不需要再移植。这样就可在嵌入式数控系统中运行用户操作界面程序,而在后台运行数据库程序了。

4 结束语

CNC技术是现代加工技术的一个重要组成部分,如何在现有的技术基础上不断改进数控系统以满足新的需求具有十分重要的意义。随着机械加工领域对数控系统的精度、效率、功能以及智能化程度[5]的进一步要求,控制面板、人机界面和系统数据组织管理方式等方面都需要不断的完善和创新,系统数据的基于Mysql数据库管理方式与目前数控系统普遍采用的文本文件管理方式相比,数据库只需在一个导入文档中修改更新数据就可以完成对数据的维护,操作简单方便、快捷,并且数据库索引在数据库启动时进驻内存,对数据库查询、数据记录的删除和添加,索引能很方便、快捷地完成;数据库最小化裁剪后容量很小,因此,不论在实时性方面还是在存储空间方面都满足了高性能嵌入式数控系统的要求,提高了系统的速度,极大地改善了系统的性能。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5082

    文章

    19123

    浏览量

    305160
  • Linux
    +关注

    关注

    87

    文章

    11304

    浏览量

    209493
  • 数据库
    +关注

    关注

    7

    文章

    3799

    浏览量

    64389
  • MySQL
    +关注

    关注

    1

    文章

    809

    浏览量

    26565
  • 数控系统
    +关注

    关注

    5

    文章

    260

    浏览量

    24244
收藏 人收藏

    评论

    相关推荐

    【OK210申请】嵌入式数控系统研发

    申请理由:飞凌嵌入式OK210高性能满足嵌入式数控系统前期开发工作。项目描述:1、软件系统架构设计;2、基于Qt,C++平台
    发表于 06-26 19:09

    嵌入式移动数据库NimbleDB的实现

    数据库技术一直随着计算的发展而不断进步,随着移动计算时代的到来,嵌入式操作系统对移动数据库系统的需求为数据库技术开辟了新的发展空间。
    发表于 06-25 13:35 17次下载

    嵌入式数控系统的构件研究

    软件复用技术,可以高效、低成本地构筑嵌入式数控系统,满足当前的制造业需求。通过分析嵌入式数控系统特点,提出了嵌入式
    发表于 10-13 17:54 27次下载

    嵌入式移动数据库NimbleDB的实现

    数据库技术一直随着计算的发展而不断进步,随着移动计算时代的到来,嵌入式操作系统对移动数据库系统的需求为数据库技术开辟了新的发展空间。
    发表于 12-22 11:27 15次下载

    嵌入式数控系统的构件研究

    软件复用技术,可以高效、低成本地构筑嵌入式数控系统,满足当前的制造业需求。通过分析嵌入式数控系统特点,提出了嵌入式
    发表于 07-13 15:51 28次下载

    嵌入式数据库数控系统中的实现

    针对目前数控系统普遍采用文本文件格式存储管理数据方式上存在的问题,提出在嵌入式数控系统中采用基于 MySQL
    发表于 06-07 17:15 23次下载

    基于嵌入式的雕铣机数控系统的研究与开发

    基于嵌入式的雕铣机数控系统的研究与开发
    发表于 05-03 13:52 13次下载

    基于ARM的嵌入式数控系统方案研究与应用

    基于ARM的嵌入式数控系统方案研究与应用
    发表于 10-25 09:20 5次下载
    基于ARM的<b class='flag-5'>嵌入式</b><b class='flag-5'>数控系统</b>方案研究与应用

    嵌入式数据库在Java中的应用解析

    嵌入式数据库无需安装,体积小巧,速度又很快,在很多场合可以替代目前流行的MySQL, SQLServer等大中型数据库。本文介绍两种嵌入式
    发表于 11-06 14:05 0次下载

    基于CORTEX-A8的嵌入式数控系统设计

    基于OMAP3530处理器的嵌入式实时系统,然后在此基础上完成基于实时嵌入式数控系统的设计。 本文对实时系统
    发表于 11-23 10:43 6次下载
    基于CORTEX-A8的<b class='flag-5'>嵌入式</b><b class='flag-5'>数控系统</b>设计

    嵌入式数控系统实时平台的设计

    基于OMAP3530处理器的嵌入式实时系统,然后在此基础上完成基于实时嵌入式数控系统的设计。 标准的Linux内核当中,中断处理机制会加设一定的延迟程序,从而使得
    发表于 01-25 16:43 0次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>数控系统</b>实时平台的设计

    基于嵌入式数据库的海量存储技术解析

    到了这些数据库产品的基本特性而已。有时我们需要的可能只是一个简单的基于磁盘文件的数据库系统,这样就不必安装庞大的数据库服务器, 以简化数据库应用程序的设计。在某些特殊应用场合,比如在
    发表于 06-05 11:00 2792次阅读

    如何吧Mysql数据库移植到嵌入式Linux的详细资料说明

    本文档的主要内容详细介绍的是如何吧Mysql数据库移植到嵌入式Linux的详细资料说明。
    发表于 01-18 08:00 4次下载
    如何吧<b class='flag-5'>Mysql</b><b class='flag-5'>数据库</b>移植到<b class='flag-5'>嵌入式</b>Linux的详细资料说明

    嵌入式实验】《嵌入式数据库 sqlite 移植及使用》

    的基本方法,掌握 sqlite 数据库软件移植的步骤,掌握 sqlite 开发的两种方式 — 命令模式和 C代码开发模式 的使用方法,并编程实现简单通讯录查询实验。二.实验内容实验4.
    发表于 10-21 10:51 6次下载
    【<b class='flag-5'>嵌入式</b>实验】《<b class='flag-5'>嵌入式</b><b class='flag-5'>数据库</b> sqlite 移植及使用》

    基于ARMS和FPGA的嵌入式数控系统设计原理

    电子发烧友网站提供《基于ARMS和FPGA的嵌入式数控系统设计原理.pdf》资料免费下载
    发表于 10-10 09:33 2次下载
    基于ARMS和FPGA的<b class='flag-5'>嵌入式</b><b class='flag-5'>数控系统</b>设计原理