基于运动控制器的开放式数控系统 陈婵娟,张航伟 (陕西科技大学机电工程学院,陕西咸阳712081) Open NC System Based on Motion Controller CHEN Chart—juan,ZHANG Hang—wei (College Of Mechanical and Electrical Engineering,Shaanxi University of Science and Technology. Xianyang 712081.China) 摘要:给出了采用固高GT400一SV运动控制 器构建“PC+运动控制器”型开放式数控系统的硬 件平台,对开放式数控系统的软件功能进行划分,给 出了数控代码在系统中的处理流程,主要论述了预 如何根据生产工艺的变化、设备功能的改进等定制 合适的控制系统就已成为很多人关注的问题,而基 于运动控制器的开放式数控系统,为不同的控制要 求提供了一个应用平台,通过分析控制对象的具体 要求,规划相应的控制功能,对运动控制器进行二次 开发,就可以构建一个经济实用的控制系统。因此, 掌握开放式数控系统的构建方法具有非常重要的现 实意义。 处理模块中,差错解释模块采用C++Builder中 Translate单元的实现方法及编译结果,采用关系数 据库存放的构建方法扣过程。 关键词:开放式数控系统;运动控制器;数据预 处理;G代码解释;关系数据库 中图分类号:TP273.5 文献标识码:A 文章编号:1001—2257(2007)01—0046—03 Abstract:This paper constructed the hardware of open NC system based on the mode of“PC 一 Motion Controller”which is made by Gugao Ltd. Co.,categorized the function of software of open 1 系统硬件构成 采用固高GT400一SV系列运动控制器构建的 “PC+运动控制器”型开放式数控系统如图1所 示[1]。GT400一SV可以同时控制4个运动轴,其核 :GT400一sV运动控制器 :; 执行单元 : : NC system,put forward the flow of processing NC code,discussed method and process of implemen- irng checking and explanation module which pro— duce Translate unit using C++Builder。and dis- cussed method and process of storing data after …….●L…~………: 图1系统硬件构成 checking which used related database. Key words:open NC system;motion control— 心由ADSP2181数字信号处理器和FPGA组成,提 供标准PCI总线,RS232串行通讯和PC104通讯接 口[2]。系统以IPC为主机,通过接口向运动控制器 发出运动控制指令,并通过该接口获取运动控制器 的当前状态和相关控制参数。运动控制器实现轨迹 ler,data pretreatment;decoding the G code;relation database 规划、位置控制、主机命令处理和控制器l/O管理。 O 引言 随着市场经济的不断发展,产品的更新换代周 运动控制器与伺服驱动系统通过转接板连接,并通 过编码器接口,获得运动位置反馈信息,通过4路模 拟电压输出(或脉冲输出)接口控制伺服电机实现系 统要求的运动。 “运动控制器+PC”的主从式结构,确保了运动 《机械与电子)2007(1) 期越来越短,对生产设备的柔性要求也就越来越高。 收稿日期:2006—08—25 基金顷目:陕西省教育厅专项基金项目资助(05JK142) ・ 46 ・ 维普资讯 http://www.cqvip.com
控制指令在运动控制器内高速、实时地被执行。这 种控制系统将PC机的信息处理能力与运动控制器 的运动轨迹控制能力有机地结合在一起,其开放程 度高,运动轨迹控制准确,开发周期短,并且价格便 宜。 首先,读人数控代码,进行查错解释;接着,将查 错解释后的数据存人数据库,再由数据预处理单元 从建立好的数据库中渎取查错解释的结果,并进行 相应的处理;之后,再将数据预处理的结果返回给数 据库;最后,由运动控制模块渎取数据库中的数据, 2 系统软件功能划分 调用运动控制器动态链接库中的指令函数。这里由 于篇幅所限,下面主要对查错解释数据库单元进行 介绍。 3.1查错与解释 3.1.1 代码查错 代码查错由C++Builder中Translate[6 单元 来实现。在查错解释过程中,主要考虑出错的可能 性有:大小写拼写错误;数控程序中出现非法字符; 在同一段数控程序中同一组模态代码重用;指令后 续参数个数不匹配;参数值超出范围的出错处理;程 序格式出错(即用户可能忘记标程序号或段号)等。 由于数控代码中出错的类型不同,出错所带来 的影响也不同,所以将程序中可能出现的错误分为 2类。 a.警告级别的编写错误。如数控程序中没有程 序号、某一段的前面没有段号、指令后续参数个数不 匹配等。针对这类错误,编写处理程序为: ShowMessage(“Warning2:此程序段没有指定 段号!”); ShowMessage(“Warningl:此程序没有指定程 序号!”); b.出错退出型的编写错误。如出现不可识别的 字符、指令后续参数值超出范围、以及在同一段数控 程序中同一组模态代码重用。针对这类错误,编写 处理程序为: Application-- ̄MessageBoxA(“不可识别的G 3预处理模块的构建 代码!”,“报警2”,16); Application-->MessageBoxA(“此段程序无有 效功能代码!,,,“报警4”,16); Application-->MessageBoxA(“同一组模态代 码重用!”,“报警1”,16); 3.1.2代码解释 苣I两竺 译里 霸 剥lil Il 羹姜 lIl 蒺l 指令 代码解释同样由Translate单元来实现。解释 模块的任务是将数控代码解释成运动控制器能够执 行的代码。数控代码主要有:准备功能G;坐标字 X,Y,Z,I,J,K,R;进给功能F;主轴变速S;刀 图2数控程序预处理过程 具功能T;辅助功能M。 《机械与电子 ̄2007(1) ・47・ 维普资讯 http://www.cqvip.com
考虑到数控代码的特殊性,即每一段程序中出 现的同组代码不能重用,因此定义CodeProcess结 构体类型的变量。仅保存此代码出现的无符号整数 形数据Lines(即段号)和双精度实数型数据Code— Data(即代码的类别)。 typedef struet //定义结构类型表示代码的 模态 {int Lines; //此变量用于程序段号的保存 double CodeData; //此变量用于字母后数字 的保存 )CodeProeess; //结构说明符CodeProeess 按G代码组别和M代码组别,声明外部结构 体变量GA—GI,MA—MC,X,Y,Z,I,J,K,R,F,P, T和S。这种解释方法极大地方便了后续代码执 行、数控程序仿真和数据预处理等程序的编制。 3.2数据库 在数控代码解释之后,字母和数据剥离,解释的 结果存放在结构体变量中,并以段号作为索引值,来 区别保存的是哪一段的解释结果。 为了高效地实现数控代码的选段执行、单段执 行和连续执行等加工及仿真功能,在解释时将数据 记录保存下来。当代码执行时,只须调用解释阶段 保存的数据即可。为此,利用C++Builder6.0中 的数据库功能,建立名为MyDatabase的数据库,并 建立名为Table的表来存放数控代码解释的结果。 过程如下 ]。 a.用C++Builder中的BDE Administrator工 具软件建立数据库。在BDE Administrator左边的 浏览窗口中建立数据库的别名,更改数据库所在的 目录,其它选项为默认值。这样就可以建立名为 MyDataBase的数据库。 b.使用C++Builder自带的数据库应用程序 Database Desktop,建立数据库的表。利用Data- base Desktop主菜单中文件新建可选择,新建文件 的类型为Table。可以在新建表界面中创建新的字 段,指定字段名、字段类型和字段宽度,并标记该字 段是否为索引。这样就建立好了保存数控程序结果 的空表。Table表用来存放GA—GI,MA—MC,X, Y,Z,I,J,K,R,F,S,P,H和T字母后所带的数据 及此数据出现的行号。如某段数控代码N01 G91 G00 X20 YIO¥200 F100,经译码后,保存在数据库 中的格式如表I所示。 ・ 48・ 表1译码结果存储格式 Lines GA GB GC GD GE GF GH G1 MA MB MC O1 00 2l 91 5_I l 7 49 40 0 00 05 09 X Y Z 1 J K R S F T I-I P 20 10 0 0 0 0 0 200 l00 0 0 0 c.建立表和数据库之间的关系。当完成表的建 立后,使用Tools一>Alias Manager将这张表添加 到名为MyDatabase数据库别名中。 d.由于系统中使用到的数据库控件主要是非可 视化的数据库控件,为便于应用程序的改动和升级, 避免日后的重复工作,创建数据库模块。在文件新 建菜单中,选中Newltems对话框的DataModule数 据模块,在其中添加自己的非可视化数据库控件。 4 结束语 在利用C++Builder6.0控件页中组件设计的 友好、简洁人机界面上,实现24条G代码和7条M 代码的查错解释,建立Table表存放于数据库中,利 用Table控件,对存放在数据库中的信息进行读写 操作。系统在查错时,以对话框方式提醒数控代码 的编程错误,并指明出错类型,方便用户修改;解释 时,使用关系型数据库存放解释结果,确保了后续代 码单段、选段及连续执行功能高效率的完成。这种 处理G代码差错解释的实现方法,充分发挥PC机 强大的数据处理能力,提高了解释和代码执行仿真 的效率,使软件具有较强的可移植性,对构建开放式 数控系统的预处理模块有一定的指导和借鉴作用。 参考文献: [1]赵春红,秦现生。等.基于PC的开放式数控系统研究 [J].机械科学与技术.2005.(9):1lO8—1l12. [2]深圳固高科技.GT系列运动控制器用户手册[M].深 圳:固高科技.2003. [33深圳固高科技.GT系列运动控制器编程手册[M].深 圳:固高科技.2003. [4] 张志燕。李斌,等.基于PC+NC的开放式数控系统 平台的研究与应用[J].机械与电子,2005,(5):6—8. [5] 张晓东.C++Builder5程序设计数据库应用实务篇 [M].北京:中国铁道出版社,2001. [6]郑莉.董渊.C++语言程序设计.2版[M].北京: 清华大学出版社.2001. 作者简介;陈婵娟(1961一),女,陕西兴平人,剐教授,硕士 研究生导师,研究方式向为数控技术 控翩工程等。 《机械与电子 ̄2007(1)
因篇幅问题不能全部显示,请点此查看更多更全内容