QH165点焊机器人数据库开发技术
2014-03-17王仁胜闫艾敏
王仁胜 闫艾敏
(安徽埃夫特智能装备有很公司,安徽 芜湖 241007)
一.ADO接口技术
ADO是微软公司为数据库开发提供的强大的使用应用程序层接口.并且是当前微软支持的数据库进行操作的最有效和最简单直接的方法.它是面向对象的编程接口.包含三个基本接口::_ ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口.使用之前需要引入ADO库文件和初始化OLE/COM库环境.
1.引入ADO库文件
使用ADO前必须在工程的stdafx. h头文件里用直接引入符号#import引入ADO库文件
以使编译器能正确编译,代码如下所示:
用#import引入ADO库文件
#i m p o r t“c:p r o g r a m f i l e s commonfilessystemadomsado15.dll”no_ namespacesrename(“EOF”adoEOF”)
这行语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数EOF改名为adoEOF。现在不需添加另外的头文件,就可以使用ADO接口了。
图1 :中英文切换数据表
图2 :IO映射表
2.初始化OLE/ COM库环境
ADO库是一组COM动态库,因此应用程序在调用ADO前,必须初始化OLE/COM库环境。
::CoInitialize(NULL);
3.采用ADO接口智能指针
ADO库包含三个基本接口:_ ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。
_ConnectionPtr接口返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。对于要返回记录的操作通常用_RecordserPtr来实现。_CommandPtr接口返回一个记录集。它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。
_RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。同_CommandPtr接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给_ RecordsetPtr的connection成员变量,让它自己创建数据连接。
二.数据库关系语句
SQL关系数据库是当今网络编程中使用的比较多的一个数据库系统.SQL是英文StructuredQueryLanguage的简称,中文名是结构化查询语言,是进行数据库操作的标准语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语言可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统等都采用了SQL语言标准。QH165奇瑞自主研发的点焊机器人就采用access作为数据库,采用SQL关系数据库语言对其进行数据的访问和操作,包括对数据的添加,更新,修改,删除等。
图3 :报警内容表
数据库记录添加:
Sql=”insertinto数据表(字段1,字段2,字段3...)values(值1,值2,值3...)”
Sql=”insertinto目 标 数 据 表select*from源数据表”(把源数据表的记录添加到目标数据表)
数据库记录修改:
Sql=”update数据表set字段名=字段值where条件表达式”
Sql=”update数据表set字段1=值1,字段2=值2...字段n=值nwhere条件表达式”
数据库记录删除:
图4 :主程序表
图6 :数据程序表
Sql=”deletefrom数据表where条件表达式”
Sql=”deletefrom数据表”(将数据表所有记录删除)
三.QH165点焊机器人数据库开发
基于以上的基础开发了QH165点焊机器人的数据库程序.
机器人数据库程序采用access作为数据库,数据库源程序分为示教程序和点位置保存程序。比如一个命为2H01的表名,存贮着示教运动指令程序,其对应着一个2H01Data的点存贮程序,保存着各个点的位置或关节值.
数据库表保存在相对路径为data\ data.mdb和data\sysuser.mdb中.
1.判断表名是否存在,格式是否正确
首先在数据库表中查找是否存在这两个表,用到MFC中的CFileFind类的FindFile方法.如:
BOOLbworking=finder1.FindFile(“data\sysuser.mdb”);
BOOLbfinding=finder2.FindFile(“data\data.mdb”);
通过BOOL类型的两个变量的返回值来进行判断表名是否存在.
2.数据库中表组成
data.mdb数据表中有语言转换的数据表languageNum,存贮机器人报警内容和时间数据表warning,外部IO输入输出表IO,文件名表FileName,坐标系表Coordinate,主程序表和存贮数据点位置表,与机器人相关的数据都存贮在各自的数据表中.(如下图图1、图2):
3.数据表的操作
每一个数据表都涉及到创建,增加/删除行,删除表,修改表的操作,以主程序表为例进行详细介绍
数据表的创建:
数据表的创建涉及到SQL关系数据语句.CREATETABLE
首先采用ADO接口连接数据库,创建ADO库中的接口对象实例m_ pConnection2,
m_pRecordset2.打开数据库,将SQL语句格式化的执行创建数据表,然后在表中创建列.并采用try()catch()的方式来捕获异常.
图7 创建表程序
图8 复制表程序
图9 数据表删除
数据表复制:
通过SQL语句的格式化操作来执行,SQL语句为Select*into*from*(如图)
数据表删除
四.总结
在数据库开发中,采用ADO接口技术与SQL语句结合对数据的操作在IT领域方面已经非常常见.通过这种方法数据结构清晰,结构简单,操作方便,效率也非常高.而本文则是将此方法应用于机器人的开发技术中.因此读者可以以此为鉴将其应用于其它相关行业.
注:国家863项目基金:国家863新型重载工业点焊机器人及自动化装备开发
[1]候俊杰深入浅出MFC[M]华中理工出版社2002
[2]陈克力SQLServer2005编程[M].清华大学出版社2008