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

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

    关注

    4963

    文章

    18160

    浏览量

    286540
  • Linux
    +关注

    关注

    87

    文章

    10943

    浏览量

    206546
  • 数据库
    +关注

    关注

    7

    文章

    3561

    浏览量

    63292
  • MySQL
    +关注

    关注

    1

    文章

    772

    浏览量

    25958
  • 数控系统
    +关注

    关注

    5

    文章

    229

    浏览量

    23850
收藏 人收藏

    评论

    相关推荐

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

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

    嵌入式数控系统有什么突破?

    策略和机制相分离的设计思想,设计了一种具有高开放性特征的嵌入式数控系统。该数控系统不仅具备了以往大型数控系统的主要功能,还具备了更好的操作性和切割性能,而且在开放性方面优势更为突出,使
    发表于 08-23 08:17

    什么是嵌入式数控系统软硬件体系结构?

    数控系统中将是非常繁重且容易出错的工作。 嵌入式数控系统体系结构就是要为各个模块提供集成规则和接口规范,通过这些集成规则和接口规范,不同的开发者能够构建出通用的模块。利用通用的模块和通
    发表于 09-02 06:36

    基于组件的嵌入式移动数据库怎么实现

    的发展而迅速发展起来。分析当前存在的各种嵌入式移动数据库系统的体系结构,我们考虑采用一种总体上采用组件方式设计、组件内部采用模块化方式设计的嵌入式移动数据库
    发表于 10-11 06:44

    嵌入式系统到底该选哪款数据库,SQLite真的是最优解吗?

    由于受嵌入式设备资源的限制,SQLite凭借其轻小的优势在嵌入式系统数据处理中独占鳌头,装机总量超过千亿台,远远超过大家熟悉的MySQL,
    发表于 02-11 11:02

    嵌入式数据库相关资料下载

    嵌入式数据库的名称来自其独特的运行模式。这种数据库嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销。嵌入式
    发表于 10-27 07:53

    嵌入式数据库sqlite移植及使用的资料分享

    ,掌握 sqlite 数据库软件移植的步骤,掌握 sqlite 开发的两种方式 — 命令模式和 C代码开发模式 的使用方法,并编程实现简单通讯录查询实验。二.实验内容实验4.1 移植
    发表于 10-28 09:48

    C语言实现程序连接数据库实现简单的嵌入式服务器的方法

    我们可以直接访问数据库,当然我们也需要在程序中连接数据库。接下来我将介绍嵌入式MySQL服务器。使用
    发表于 12-15 08:21

    嵌入式数据库的作用是什么

    随着嵌入式技术的发展,嵌入式数据库逐步走向应用。本质上,嵌入式数据库是由通用数据库发展而来的,在
    发表于 12-21 07:18

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

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

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

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

    基于ARM设计的嵌入式数控系统方案

    摘要:本文介绍了基于ARM的嵌入式数控系统。该系统为主从式结构,上位机以ARM9为核心,实现人机交互,下位机以ARM7为核心
    发表于 07-21 15:00 1445次阅读
    基于ARM设计的<b class='flag-5'>嵌入式</b><b class='flag-5'>数控系统</b>方案

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

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

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

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

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

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