关于数控系统中一种通用数控程序处理器的研究-12-关于数控系统中一种通用数控程序处理器的研究摘要抽象数控程序处理在数控加工中起着举足轻重的作用。现有的数控系统仅仅支持输入特定数控程序的数控机床,这就限制了许多具有相同功能不同版本的数控程序潜在的应用性。为了更合理的掌握数控程序的种类,开发通用的数控程序处理器可以接收和处理任何种类的数控程序。这种处理器由两个主要部分组成:第一是数控词典,即由一个数控规范字典生成器从相关的数控术语中生成。第二个是翻译引擎,检查不同输入的数控程序,并生成数控规范词典和规范加工函数库的翻译引擎。最后,建立起来的原型系统用来评估跟在一个成功的专题研究后的计划中的设计。关键字:数控程序处理器。数控规范词典。解释引擎。简洁加工功能。1导言在现代计算机数控系统中,数控程序处理器(NCPP)是一个非常重要的组件,它产生于计算机辅助制造系统在精确地解决加工目的的过程中。正如图1所示,NCPP的主要功能包括需求数控程序,检查句法,设定规范或者错误控制。在接下来的单元中,移动命令和PLC命令协调器将要分别的分配这些输出部分到运动控制处理器和逻辑控制处理器。图1数控系统中数控程序处理器的功能在计算机数字控制系统中,大部分数控程序处理器能够仅仅处理一个特殊的数控程序版本,所以市面上存在许多版本的数控程序,它们彼此不能够兼容,因此,数控程序的差异性使机床的使用者困苦不堪。由于从同一个供应商比不同的关于数控系统中一种通用数控程序处理器的研究-13-供应商提供的机床中安装的数控程序更难区分,尤其是那些从同一供应商购买的不同型号的数控机床中安装了不同的计算机程序控制器。这种情形的出现源于以下几种事实:首先,尽管市场上有一些旧的数控程序标准,但是真正意义上的数控程序标准却是不存在的。自从发明了计算机程序控制技术,市面上存在三种基本的标准:RS274D(美国)、ISO6983(ISO)和DIN66025(欧洲)。与此相反的是,机床及控制技术从那以后有了巨大的发展。许多新的功能和专用控制器部分不被这些已经加到计算机程序控制的数控标准所支持。其次,不同的计算机程序控制供应商大大延拓了他们的数控标准去适应他们自己的特殊功能。一个典型的例子是被每一个供应商添加的专用插入功能。这源于不同的计算机程序控制系统中交换数控中的困难。因此,甚至有些用户必须为每一台数控机床编制一套数控程序。他们拥有来自同一个供应商的不同型号的数控机床。这些数控机床却装备了不同的数控系统。这种情况甚至发生在同样的有些刚过时功能的计算机数控系统中。一般的,比较老一些的数控程序不能容易地应用到新的系统中去。其中一个解决的办法是修改现存的程序重新应用到旧程序上去。有两种方法来修改加工程序:手动编程和自动编程。对于手工编程来说,它仍然在工业中占据着大部分的应用场合,它只依赖于技术人员的经验。这种编程经常需要不同种类的计算机数控的专业知识,尽管计算机数控机床的提供者经常说仅仅不到5%的程序是需要改变的。数控机床的使用者必须花费大量的时间和金钱来训练他们的编程人员或操作人员,不同的计算机控制器需要不同的训练来满足。对于自动编程来说,后置处理器可以用来产生不同的数控程序用计算机辅助制造软件来完成。因此,计算机辅助制造系统必须提前准备一些待用的后置处理器。通用后置处理器是另一个解决办法允许终端用户订做一个后置处理器。然而,做一个专用的后置处理器需要更多经验的技术人员。为了更有效地从不同的计算机数控系统中重新利用数控编程,一个通用数控程序处理器被设计成可以处理不同种类的数控程序输入在计算机数控系统中。一个独立的过程机和专用数控词典结构设计好的数控程序处理器可以容易的翻译成不同的数控程序。通过应用不同的数控词典,与此同时编程机没有变化。关于数控系统中一种通用数控程序处理器的研究-14-2计划中的数控程序处理器的概念模型2.1标准加工功能的概念模型为了实现不同的数控程序的编制过程,引入了中间处理器,它是由一系列的不同功能组成。所有的数控程序可以翻译为这些功能。国际标准和技术化组织把这些功能称为标准加工功能。这些经典机器功能的一系列定义列于表格1中,已经用在高性能机器控制器工程和其他开放的计算机数控程序工程中。标准加工功能是原子的命令。每个功能生成一个单一的刀具运动或单个逻辑操作。一个NC命令通常包含两种类型:一种是与经典功能需求紧密联系的单一数控命令,另一种是单一命令被分解为几种简洁的功能需求,像“径直走”或者“启动冷却剂流”等短语是第一种类型和“继续钻一圈孔”是第二种类型。标准加工功能在头脑中被设计成两种实体。–所有的通用三坐标到五坐标加工中心的功能已经被这些功能所覆盖,任何一台加工中心的任何功能可以输入标准加工功能去完成。–把RS274兼容译成数控程序转为标准加工的代码。2.2数控程序处理器的概念模型图2显示了设计好的数控程序处理器的概念模型。它由两个组件组成:第一部分是专业数控词典,由一个数控字典生成器生成。这种发生器接收专用数控程序并把它们转化为专用数控词典。例如,Fanuc数控程序规范都转换为一个Fanuc专用数控词典,西门子专用数控程序被转化为西门子专用数控词典。然后,这些字典保存到词典库中。与此同时,每一个专用数控程序便产生了一个标准加工指令数据库。第二部分是一台解释引擎,接受加工程序(发那科、三菱等),在专用数控词典的支持下,去检查输入程序的语法,如果程序没有语法错误,它关于数控系统中一种通用数控程序处理器的研究-15-将要把程序翻译为标准加工指令,否则它将要输出错误的信息。图2数控程序处理器的概念模型这种解决办法将会对数控程序处理器的发展产生巨大的柔性和稳定性。仅仅过程机的一系列软件密码需要保留,甚至在输入了数控程序,紧接着输入了专业数控程序,而这种专用数控程序在现存的专用数控词典中是没有的。一种新的数控专用词典将要产生,而且容易加入其中,不需要从新对过程机的密码资源进行编译。若要实施建议的NCPP,应解决的两个问题:如何定义专用数控词典以及如何设计引擎。这两个问题是研究的焦点,在接下来的部分中将会解释这两个方面。3计划中的数控程序处理器设计3.1数控程序规范这种数控程序由一系列的有关零件加工的顺序指令组成,每条指令以数控系统可以接受编译和处理的形式予以说明确定。数控程序规范用于描述这些形式和原则。传统意义上,数控程序规范包含四个项目:特性、指令、程序块和程序。特性:一种字符,是数控程序的最小单位。它可以是三种形式之一:数字,26个英文字母和符号,像十进制的小数点数字0至9,百分号。指令:一个程序词语,是联系字母数字特征创建单一指令如G01,F100的字母数字字符的组合,为控制系统的桥梁。正常情况下,每个单词开头大写字母后,跟一个程序代码或实际值表示的数字。程序段:数控程序的一行是一个程序段。它用于多条指令,就像指令用于关于数控系统中一种通用数控程序处理器的研究-16-数控系统单一指令。它由一个或几个指令组成。程序:程序是程序段的顺序组合起来的,描述两件的加工或者功能,经常以一个特殊的符号如%开始或结束。为了定义数控字典,特征被分为地址和数字。地址是一些字母,这些字母用来描述更在字母后数字的价值。例如G、F和S分别意味着准备功能,进给功能,主轴转速功能。数据是跟在地址后面的一些数字,这些数字用来指明功能的价值,例如S1000,1000就是数据,这意味着设计的主轴转速为每分钟1000转。有时,特别是在手工编程,程序段中包含着一些算术表达式或代数功能,可以用来产生一个数字。例如,X[1+2],YSIN[30],这些表达式和功能被称为表示式。因此,数据规范可被分为六个子规范:地址、数据、字、表示式、程序段和程序。基于以上分析的规范,数控词典的结构可以被明确的定义了。根据规范的复杂性和翻译引擎的需要,数控规范被分为两组:低级别的组和高级组,如图3所示。低级别的组包括地址、数据和字。它们介绍了一些简单的规则,例如地址的可靠性、数据的格式和字的可用性。它们被用在翻译引擎的词汇分析阶段。高水平规范包括表示式、程序段和程序规范。它们描述了一些字和程序段之间的逻辑关系,被用在翻译引擎的语法分析阶段。在它们之间表示式是很特别的,因为它们是一些表示式的规范或数学公式,如图3SIN[30],[1+acos[0]-[#3**[4.0/2]]],几乎可以被所有的计算机数控编程控制器所识别。在数控规范送到翻译引擎去检查语法功能前在前处理阶段被处理。在被送去检查语法功能前,所有的表示式要计算出来被结果所代替。例如,X3将替换为例X[1+2],Y0.5将取代YSIN[30]。图3专用数控结构3.2EBNF和TCL语言EBNF是一个句法的元语言正式的代表计算机编程语言,该语言由John关于数控系统中一种通用数控程序处理器的研究-17-Backus和PeterNaur在1960年创建的,用来表示Algol60语言的语法自从那以后,这种语言在表达计算机科学语言的语法功能上变成非常重要的工具。在1977年为EBNF颁布了一项国际标准,ISO/IEC14977,EBNF表示的一般定义如下:-一条语法包括的一个或多个语法规则;-一条语法规则代表了一个等式,等号符号的左边表示所谓的非术语符号,右边表示一系列的术语符号或非术语符号;-非术语符号在等号的左边至少出现一次;-在等号上边或下边的术语是术语符号;-对表达式的诠释应用在一个或多个语法规则上。数控语言可被视为一种类型简单的计算机编程语言;因此很有理由用EBNF代替数控编程语法规则,基于此,专用数控词典的结构可以被系统的定义。EBNF是一种语法表示形式,以一种特殊的形式从数控手册中提取规范,它不能植入翻译引擎当中去,所以它不能直接用于语法的分析,它应该翻译为有决策能力的计算机语言。这里将介绍一种字母系统的语言,刀具命令语言。TCL意味着刀具命令语言。它是一个非常强大,但容易了解的动态编程语言,它由加利福尼亚大学的教授JohnOusterhout在1987年开发的。它是一种口译字母语言,提供了一种用普通的表达式检查语法的机制。许多CAD/CAM软件如Unigraphics后处理器生成器使用它。最重要的是它可以方便地嵌入到解释引擎。因此TCL通过编译为EBNF用作计算机语言去表示一种规范。图4显示了使用EBNF和TCL的语法词典表示方法。它包括两个步骤:首先,数控技术指标提取到EBNF,然后EBNF被翻译成TCL语法词典。图4语法功能的代表意义3.3数控字典的定义3.3.1规范表示方法正如3.1节提到的,数控规范可分为低级别的组及高级组。对于低级别的组,它描述了有关数控编程的基本信息。例如地址、数据和字,它们可以被表格所解关于数控系统中一种通用数控程序处理器的研究-18-释,用于检查一些词汇规则、地址和数据,如表2所示。这个表定义了地址的一些功能,加上了符号,前导零,整数,小数点,分数,后置零,情态动词,最小值和最大值。数控程序是由程序段组成的,而程序段是由字组成的,所以一方面,低水平的规范将要用在翻译引擎去检查词汇规则,另一方面,低水平规范将要被高水平规范所使用。TCL被引进去定义了如下一些信息。设置sys_x_axis_dimensionX设置sys_rapid_codeG00以上用于定义可变地址、可变子字、模型信息或者是组信息,将要被高级规范所利用。对于高级规范,考虑到语法检查方法,定义了两种典型的类型:TCL语法表示式和TCL过程式。语法检查功能通过两步来执行:语法检查和错误报告。基于一个假设大多数数控程序段在语法上是正确的。TCL语法表示式第一部分用来检查,如果程序段的语法是正确的将要进入下一个程序段。如果程序段的语法是错误的,第二步错误报告将要被执行,发现是什么错误以及错误在哪里。3.3.2语法表示式的结构TCL语法表达式被引进是为了表示高级别规格语法。此部分说明如何构造这些表达式。以G01为例。首先,G01的EBNF表示式如下:[Coord_Expr]+[Feed_Mode]+[Distance_Mode]+[Unit_Input][Plan