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