·46· 工艺装备 机械 2005年第12期 总第32卷
固高运动控制卡在五轴数控磨床的应用研究
江利进,龙腾宇
(湖南大学 机械与汽车工程学院,湖南 长沙410082)
摘要:对基于PC和运动控制卡的开放式数控系统的硬件体系作了介绍,研究了固高运动控制卡GT400-SV和GT20-SV的同步配合使用,并着重介绍了NC代码的译码和校验. 关键词:运动控制卡;开放式数控系统;NC代码译码
中图分类号:TH17 文献标识码:B 文章编号:1006-0316(2005)12-0046-03
Application and research of googol motion controllerused in 5-axis CNC grinding machine
JIANG Li-jin,LONG Teng-yu
( Collgee of machine and vehicle engineering,Hunan Univ,Changsha 410082,China )
Abstract:Hardware system of open numeric control system based on PC and motion Controller is introduced. The cooperation of Googol motion controller GT400-SV and GT200-SV is analyzed,and emphasize the analyse of NC code’s checkout and coding.
Key words:motion controller;open numeric control system;NC code’s checkout and coding
现今许多数控磨床控制部分多采用PC加CNC加驱动器的结构体系,其中CNC由数控设备制造商直接提供,为传统封闭式数控系统。这种专用体系结构的数控系统具有易于集成、技术成熟等优势,但是存在着一些缺点[1]:传统数控系统的封闭性使得各数控系统生产厂家的产品软、硬件不兼容;系统功能固定,很难将刃磨的专门技术集成到CNC控制系统中;人机界面不灵活;由于CNC系统的封闭性,刃磨程序的自动生成只能在PC中的自动编程系统中完成,造成了PC和CNC硬件资源重复浪费;在系统的软件体系中,专用CNC自成体系,对其进行二次开发极其困难。鉴于此,公司决定运用固高运动控制卡对传统数控机床进行试验改造。
步配合使用。其核心由ADSP2181数字信号处理器和FPGA组成,可以实现高性能的控制计算。运动控制卡提供C语言函数库和WINDOWS动态链接库,实现复杂的控制功能。用户能将这些控制函数与自己的控制系统所需的数据处理,界面显示,用户接口等应用程序模块集成在一起,建造符合特定应用要求的控制系统,以适用各种应用领域要求[2]。
1.2硬件系统的总体描述
根据五轴数控磨床的应用要求,本文研究开发的基于PC的数控系统需要实现X、Z、A、B、C五轴的数控运动及机床I/O控制等功能。其硬件组成如图1所示,由计算机、固高运动控制卡GT400-SV和GT200-SV(将运动控制卡GT400-SV和GT200-SV同步配合使用,X轴,Z轴,B轴和C轴用于GT400-SV中,A轴单独用于GT200-SV)、伺服驱动器、伺服电机(含光电编码器)和机床I/O部分等组成,包括数控装置和输出驱动及其控制电路两个部分。其中,强电控制部分驱动设备及数控执行机构沿用原系统的相应部分,数控装
1 硬件系统
1.1固高运动控制卡GT400-SV和GT200-SV
固高公司生产的GT系列运动控制卡GT400-SV和GT200-SV,可以同步控制4个轴和两个轴,实现多轴协调运动,并且可以实现两卡的同
——————————————— 收稿日期:2005-08-13 作者简介:江利进(1982-),男,江西鹰潭人,湖南大学硕士研究生,机械制造及其自动化专业.。
机械 2005年第12期 总第32卷 工艺装备 ·47·
置部分则取消原有封闭式CNC系统,以PC加运动控制卡的形式重构了一个开放式数控系统硬件平台。整个数控系统以运动控制卡为位置控制核心,交流伺服系统为驱动装置,光电编码器为反馈检测元件,构成一个半闭环的控制回路。本系统的实现方法采用上下位机模式, PC机作为上位机完成数控代码处理、机床状态监测、人机界面、动态显示等非实时或弱实时性任务;固高运动控制卡作为下位机完成插补计算、位置控制等实时性任务。
迹插补等实时性很强的任务交由固高运动控制卡处理,从而避免了编写设备驱动程序,并保证了整个系统的实时性。
3 NC代码的处理
本系统在同一集成环境下直接将NC代码转换为运动控制卡运动函数库中函数可以识别的参数,同时还对NC代码的正确性进行校验。NC代码的处理是本系统的重难点,在此对其加以说明。
3.1 NC代码的分析
NC代码程序的编写格式具有严格的规范,程序段一般遵照以下格式:
1.3硬件平台结构示意图(如图1所示)
N**** G** M** X**** Y**** I**** J**** F**** ……
本系统中,“N”、“G”、“M”等字符称为功能关键字,“****”称为与功能关键字相对应的数值。要实现NC代码关键字到固高运动控制卡中运动函数的转换,必须对NC程序段中的功能关键字进行功能定义和识别,并依次完成NC程序段功能关键字的提取、校验、译码等处理。G指令用来规定刀具和工件的相对运动轨迹、插补方式、机床坐标系、坐标平面、刀具补偿、坐标偏置等多种加工操作。由字母G及其后面的二位数字组成;M指令用来指令机床辅助动作及状态。由字母M及其后面的二位数字组成。
图1钻尖磨床数控系统硬件组成
2 软件系统
本文开发的五轴磨床数控系统软件是一个多任务处理软件,既要处理钻型参数的编辑,刃磨数控代码的生成、校验、译码,又要负责机床运行控制,运动状态数字及图形显示,还要管理系统参数设置,调试诊断等任务。本软件开发环境是Windows平台,开发工具选择了面向Windows的应用程序开发环境VisualC++6.0。系统软件采用单文档多视图的框架结构,不同的视图对应于不同的功能模块,在不同的视图中进行切换,就可以进入相应的应用模块中。
基于PC的CNC是一个高实时、多任务系统,其执行的任务按实时性相对强弱可分成实时控制任务和非实时控制任务。对本系统而言,非实时控制任务包括系统管理、自动编程、状态监测以及零件程序的预处理等,实时性要求不高,采用winodws的消息传递机制即可完成;实时轨迹控制任务是指伺服控制、轨迹插补、速度处理等,仅凭Windows本身消息传递机制,不能保证数控实时轨迹控制任务在准确的时间间隔内完成。我们将伺服控制、轨
3.2 NC代码的提取与校验
(1)代码关键字的提取
为方便用户对NC代码进行编辑,NC代码以文本文件的形式自动保存在磁盘中,对代码关键字的提取即为对文本字符串的提取。通过对NC代码进行分析,本系统将可识别字符归纳为:“A”~“Z”、“0”~ “9”、“;”、“/”、“%”。沿用原型系统的定义规则,“%”后引述的为程序名;“//”或“;”后引述的为代码行注释;“G”、“M”、“S”、“F”后引述的为相关功能;“X”、“Z”、“A”、“B”、“C”、“U”、“V”、“W”后引述的为相应轴的绝对或相对位移量;“I”、“J”、“K”后引述的为圆弧插补时圆心的偏置量。本系统以回车符为标志提取程序段,以空格为标志提取功能关键字。
(2)NC代码的校验
·48· 工艺装备 机械 2005年第12期 总第32卷
NC代码的正确性是保证数控系统正常工作的前提,CNC系统必须具有识别错误NC代码的能力。CNC代码的错误包括语法错误、数值错误、格式错误,如圆弧插补圆心、半径参数少指定一个;圆弧插补的起点、终点和圆心不能正确的构成圆弧;主程序未以M02或M30结束等。以下对代码校验进行部分说明。
非法字符的校验:本文将数控代码中可能出现的字符构成一个集合,如果出现的字符不在集合中则为非法字符。其校验程序如下:
static CString strKeyword=“GMABCXYZIJKUVWPSTF0123456789;%/”; FIND= strKeyword.Find(ch); If(FIND==-1&&nIndex
①一行数控代码中出现了两个以上的同组G代码或同组M代码。如同时编入了G90和G91或编写了两个G90代码。对此类错误,可对每一组G代码或M代码建立一个计数器,每当进行新一行代码的编译时,都将计数器清零,在对整行代码扫描时,对G或M代码出现的次数分组登记,只要任何一个计数器的值超过1,就可以断定此种错误存在;②功能关键字中的后续地址字不完整或参数不匹配。如圆弧插补未给出圆心坐标或圆弧半径。对于此类错误,可采用了表格匹配算法来查找。
3.3 NC代码的译码
代码校验正确后,则进行代码译码。对本系统而言,代码译码就是完成数控代码功能识别,并将提取的代码关键字转换为运动控制卡中对应的运动函数中的参数。
本文采用PC+运动控制卡的结构体系构建了一开放式数控平台,其对基于运动控制卡的开放式数控系统具有一定的通用性。系统采用功能强大的运动控制卡完成插补计算、位置控制、速度控制等实时任务,以PC机实现友好的人机界面。
行%d列:无法识别的字
符”,lineNumber,nIndex+1);
非法字符串的校验:合法字符的组合也可能构成非法的字符串,非法字符串有以下类型:①功能关键字后没有数值,如“N30 G X30 Y5”中,G功能未指定。对此可为每个功能字设定一个标志变量,如果其相应的数值寄存器为空,则该标志置为0;②数字串中带有空格或其他非数字字符,如“X12 3”和“X1Q23”。通过对数值寄存器中的字符串进行扫描以确定每个字符是否为数值量。
错误语法的校验:语法错误可分为以下类型:(上接第24页)
编码压缩可以尽量减少模型在拓扑结构和几何位置信息描述方式上的冗余度,例如,对于三角形表面模型,采用带状三角形的描述方式可以减少对三角形顶点的索引次数,通过预测的方法可以估计相邻顶点的坐标位置,从而降低模型顶点几何坐标的信息量。采用编码压缩技术可以在不改变模型的外形、结构、拓扑关系的基础上减少模型的三角形面片数量。
多个几何面之间的三角形面片的简化可以采用多细节层次模型自动生成技术,使用的模型简化方法包括:顶点移去法、边删除法、三角形删除法、基于网格重新划分的多边形模型简化方法、面片合并方法、能量函数最优化的网格简化方法等。这些方法通过迭代调用函数次数的多少而生成一系列连
参考文献:
[1]周祖德,魏仁选,陈幼平. 开放式控制系统的现状趋势与对策[J].中国机械工程,1999,1(10):1090-1093 续的原始模型的近似模型。
5 结论
交互性自适应模型简化与转换技术解决了从CAD模型到CAE、虚拟现实模型的自动模型简化与转换过程,使模型转换与模型简化这两个环节有机的结合在一起。该技术采用了面向对象的组件式开发模式,可以方便的把发展成熟的新技术、新方法融合在其方案里面,随着CAX、虚拟现实技术的进一步发展,该技术将会得到越来越广泛的应用。
参考文献:
[1]潘云鹤. 智能CAD方法与模型[M]. 北京:科学出版社,1997. [2]李灿林,等. 基于离散面片的层次化装配模型[J]. 计算机工程,2004. 4,30(7):157-159.
·46· 工艺装备 机械 2005年第12期 总第32卷
固高运动控制卡在五轴数控磨床的应用研究
江利进,龙腾宇
(湖南大学 机械与汽车工程学院,湖南 长沙410082)
摘要:对基于PC和运动控制卡的开放式数控系统的硬件体系作了介绍,研究了固高运动控制卡GT400-SV和GT20-SV的同步配合使用,并着重介绍了NC代码的译码和校验. 关键词:运动控制卡;开放式数控系统;NC代码译码
中图分类号:TH17 文献标识码:B 文章编号:1006-0316(2005)12-0046-03
Application and research of googol motion controllerused in 5-axis CNC grinding machine
JIANG Li-jin,LONG Teng-yu
( Collgee of machine and vehicle engineering,Hunan Univ,Changsha 410082,China )
Abstract:Hardware system of open numeric control system based on PC and motion Controller is introduced. The cooperation of Googol motion controller GT400-SV and GT200-SV is analyzed,and emphasize the analyse of NC code’s checkout and coding.
Key words:motion controller;open numeric control system;NC code’s checkout and coding
现今许多数控磨床控制部分多采用PC加CNC加驱动器的结构体系,其中CNC由数控设备制造商直接提供,为传统封闭式数控系统。这种专用体系结构的数控系统具有易于集成、技术成熟等优势,但是存在着一些缺点[1]:传统数控系统的封闭性使得各数控系统生产厂家的产品软、硬件不兼容;系统功能固定,很难将刃磨的专门技术集成到CNC控制系统中;人机界面不灵活;由于CNC系统的封闭性,刃磨程序的自动生成只能在PC中的自动编程系统中完成,造成了PC和CNC硬件资源重复浪费;在系统的软件体系中,专用CNC自成体系,对其进行二次开发极其困难。鉴于此,公司决定运用固高运动控制卡对传统数控机床进行试验改造。
步配合使用。其核心由ADSP2181数字信号处理器和FPGA组成,可以实现高性能的控制计算。运动控制卡提供C语言函数库和WINDOWS动态链接库,实现复杂的控制功能。用户能将这些控制函数与自己的控制系统所需的数据处理,界面显示,用户接口等应用程序模块集成在一起,建造符合特定应用要求的控制系统,以适用各种应用领域要求[2]。
1.2硬件系统的总体描述
根据五轴数控磨床的应用要求,本文研究开发的基于PC的数控系统需要实现X、Z、A、B、C五轴的数控运动及机床I/O控制等功能。其硬件组成如图1所示,由计算机、固高运动控制卡GT400-SV和GT200-SV(将运动控制卡GT400-SV和GT200-SV同步配合使用,X轴,Z轴,B轴和C轴用于GT400-SV中,A轴单独用于GT200-SV)、伺服驱动器、伺服电机(含光电编码器)和机床I/O部分等组成,包括数控装置和输出驱动及其控制电路两个部分。其中,强电控制部分驱动设备及数控执行机构沿用原系统的相应部分,数控装
1 硬件系统
1.1固高运动控制卡GT400-SV和GT200-SV
固高公司生产的GT系列运动控制卡GT400-SV和GT200-SV,可以同步控制4个轴和两个轴,实现多轴协调运动,并且可以实现两卡的同
——————————————— 收稿日期:2005-08-13 作者简介:江利进(1982-),男,江西鹰潭人,湖南大学硕士研究生,机械制造及其自动化专业.。
机械 2005年第12期 总第32卷 工艺装备 ·47·
置部分则取消原有封闭式CNC系统,以PC加运动控制卡的形式重构了一个开放式数控系统硬件平台。整个数控系统以运动控制卡为位置控制核心,交流伺服系统为驱动装置,光电编码器为反馈检测元件,构成一个半闭环的控制回路。本系统的实现方法采用上下位机模式, PC机作为上位机完成数控代码处理、机床状态监测、人机界面、动态显示等非实时或弱实时性任务;固高运动控制卡作为下位机完成插补计算、位置控制等实时性任务。
迹插补等实时性很强的任务交由固高运动控制卡处理,从而避免了编写设备驱动程序,并保证了整个系统的实时性。
3 NC代码的处理
本系统在同一集成环境下直接将NC代码转换为运动控制卡运动函数库中函数可以识别的参数,同时还对NC代码的正确性进行校验。NC代码的处理是本系统的重难点,在此对其加以说明。
3.1 NC代码的分析
NC代码程序的编写格式具有严格的规范,程序段一般遵照以下格式:
1.3硬件平台结构示意图(如图1所示)
N**** G** M** X**** Y**** I**** J**** F**** ……
本系统中,“N”、“G”、“M”等字符称为功能关键字,“****”称为与功能关键字相对应的数值。要实现NC代码关键字到固高运动控制卡中运动函数的转换,必须对NC程序段中的功能关键字进行功能定义和识别,并依次完成NC程序段功能关键字的提取、校验、译码等处理。G指令用来规定刀具和工件的相对运动轨迹、插补方式、机床坐标系、坐标平面、刀具补偿、坐标偏置等多种加工操作。由字母G及其后面的二位数字组成;M指令用来指令机床辅助动作及状态。由字母M及其后面的二位数字组成。
图1钻尖磨床数控系统硬件组成
2 软件系统
本文开发的五轴磨床数控系统软件是一个多任务处理软件,既要处理钻型参数的编辑,刃磨数控代码的生成、校验、译码,又要负责机床运行控制,运动状态数字及图形显示,还要管理系统参数设置,调试诊断等任务。本软件开发环境是Windows平台,开发工具选择了面向Windows的应用程序开发环境VisualC++6.0。系统软件采用单文档多视图的框架结构,不同的视图对应于不同的功能模块,在不同的视图中进行切换,就可以进入相应的应用模块中。
基于PC的CNC是一个高实时、多任务系统,其执行的任务按实时性相对强弱可分成实时控制任务和非实时控制任务。对本系统而言,非实时控制任务包括系统管理、自动编程、状态监测以及零件程序的预处理等,实时性要求不高,采用winodws的消息传递机制即可完成;实时轨迹控制任务是指伺服控制、轨迹插补、速度处理等,仅凭Windows本身消息传递机制,不能保证数控实时轨迹控制任务在准确的时间间隔内完成。我们将伺服控制、轨
3.2 NC代码的提取与校验
(1)代码关键字的提取
为方便用户对NC代码进行编辑,NC代码以文本文件的形式自动保存在磁盘中,对代码关键字的提取即为对文本字符串的提取。通过对NC代码进行分析,本系统将可识别字符归纳为:“A”~“Z”、“0”~ “9”、“;”、“/”、“%”。沿用原型系统的定义规则,“%”后引述的为程序名;“//”或“;”后引述的为代码行注释;“G”、“M”、“S”、“F”后引述的为相关功能;“X”、“Z”、“A”、“B”、“C”、“U”、“V”、“W”后引述的为相应轴的绝对或相对位移量;“I”、“J”、“K”后引述的为圆弧插补时圆心的偏置量。本系统以回车符为标志提取程序段,以空格为标志提取功能关键字。
(2)NC代码的校验
·48· 工艺装备 机械 2005年第12期 总第32卷
NC代码的正确性是保证数控系统正常工作的前提,CNC系统必须具有识别错误NC代码的能力。CNC代码的错误包括语法错误、数值错误、格式错误,如圆弧插补圆心、半径参数少指定一个;圆弧插补的起点、终点和圆心不能正确的构成圆弧;主程序未以M02或M30结束等。以下对代码校验进行部分说明。
非法字符的校验:本文将数控代码中可能出现的字符构成一个集合,如果出现的字符不在集合中则为非法字符。其校验程序如下:
static CString strKeyword=“GMABCXYZIJKUVWPSTF0123456789;%/”; FIND= strKeyword.Find(ch); If(FIND==-1&&nIndex
①一行数控代码中出现了两个以上的同组G代码或同组M代码。如同时编入了G90和G91或编写了两个G90代码。对此类错误,可对每一组G代码或M代码建立一个计数器,每当进行新一行代码的编译时,都将计数器清零,在对整行代码扫描时,对G或M代码出现的次数分组登记,只要任何一个计数器的值超过1,就可以断定此种错误存在;②功能关键字中的后续地址字不完整或参数不匹配。如圆弧插补未给出圆心坐标或圆弧半径。对于此类错误,可采用了表格匹配算法来查找。
3.3 NC代码的译码
代码校验正确后,则进行代码译码。对本系统而言,代码译码就是完成数控代码功能识别,并将提取的代码关键字转换为运动控制卡中对应的运动函数中的参数。
本文采用PC+运动控制卡的结构体系构建了一开放式数控平台,其对基于运动控制卡的开放式数控系统具有一定的通用性。系统采用功能强大的运动控制卡完成插补计算、位置控制、速度控制等实时任务,以PC机实现友好的人机界面。
行%d列:无法识别的字
符”,lineNumber,nIndex+1);
非法字符串的校验:合法字符的组合也可能构成非法的字符串,非法字符串有以下类型:①功能关键字后没有数值,如“N30 G X30 Y5”中,G功能未指定。对此可为每个功能字设定一个标志变量,如果其相应的数值寄存器为空,则该标志置为0;②数字串中带有空格或其他非数字字符,如“X12 3”和“X1Q23”。通过对数值寄存器中的字符串进行扫描以确定每个字符是否为数值量。
错误语法的校验:语法错误可分为以下类型:(上接第24页)
编码压缩可以尽量减少模型在拓扑结构和几何位置信息描述方式上的冗余度,例如,对于三角形表面模型,采用带状三角形的描述方式可以减少对三角形顶点的索引次数,通过预测的方法可以估计相邻顶点的坐标位置,从而降低模型顶点几何坐标的信息量。采用编码压缩技术可以在不改变模型的外形、结构、拓扑关系的基础上减少模型的三角形面片数量。
多个几何面之间的三角形面片的简化可以采用多细节层次模型自动生成技术,使用的模型简化方法包括:顶点移去法、边删除法、三角形删除法、基于网格重新划分的多边形模型简化方法、面片合并方法、能量函数最优化的网格简化方法等。这些方法通过迭代调用函数次数的多少而生成一系列连
参考文献:
[1]周祖德,魏仁选,陈幼平. 开放式控制系统的现状趋势与对策[J].中国机械工程,1999,1(10):1090-1093 续的原始模型的近似模型。
5 结论
交互性自适应模型简化与转换技术解决了从CAD模型到CAE、虚拟现实模型的自动模型简化与转换过程,使模型转换与模型简化这两个环节有机的结合在一起。该技术采用了面向对象的组件式开发模式,可以方便的把发展成熟的新技术、新方法融合在其方案里面,随着CAX、虚拟现实技术的进一步发展,该技术将会得到越来越广泛的应用。
参考文献:
[1]潘云鹤. 智能CAD方法与模型[M]. 北京:科学出版社,1997. [2]李灿林,等. 基于离散面片的层次化装配模型[J]. 计算机工程,2004. 4,30(7):157-159.