微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > 嵌入式数据库在数控系统中的实现与应用

嵌入式数据库在数控系统中的实现与应用

时间:08-02 来源:互联网 点击:
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文本文件中进行,然后重新执行一次上文中提到的语句就可以轻松地完成。


图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。  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top