数控语言是一种专用程序设计语言,它既具有普通程序设计语言的特点,又具有专用性。它的基本运算单位是语句,语句具有说明型的和执行型的。语句的书写是通过基本符号的各种合法组合来完成。
数控语言仅仅适用于数控机床的自动控制,不能用来作科学计算或其他目的。
数控语言主要组成部分:说明、语句和表达式。
说明数组说明数组说明的形式是:
形式 | RESRV/数组表 |
其中数组表是由以逗点分开的数组段组成数组段是由数组标识符,后面接一逗点,再跟以算术表达式或算术变量组成。1
过程说明过程说明的形式是:
形式 | 过程首部 |
过程体 | |
过程结束符 |
过程首部的形式是:过程标识符=MACRO/形参表
过程体是:一系列语句
过程结束符是:TERMAC
形参表示形式可以是:(1)空;(2)形参表;(3)形参1
词汇表等价说明词汇表等价说明的形式是:
形式 | SYN/等价表 |
其中,等价表的形式是:
标识符,词汇表字,标识符,词汇表字,...,二标识符,词汇表字。
标识符和词汇表字构成一对,在以后源程序中如果出现某一对偶中的标识符,就表示那个标识符的一切作用都和其对偶中的词汇表字一样。1
刀具补偿计算说明(1)刀具规格说明:
形式 | CUTTER/r |
CUTTER是刀具说明符,r是刀具半径值。
(2)公差规格说明:
形式 | 公差说明/数 |
其中公差说明可以是INTOL、UOTTOL、TOLER,他们分别表示允许刀具切割位置是落在工件里面、外面的公差和重新建立公差,数是允许的最大公差数。1
语句赋值语句赋值语句的形式是:
形式1 | 变量=算术表达式 |
形式2 | 变量=几何表达式 |
其中,算术表达式与通常算术表达式类似,而几何表达式是这个语言的独特部分,它在后面单独列出。
刀具定位语句(1)明显定位语句
形式1 | 定位动词/定位方式 |
形式2 | GODLTA/△X△Y |
其中,定位动词有GOTO、FROM,表示刀具控制点走到那个位置和从那一个位置开始。
定位方式是:①几何表达式②几何变量③数,指出运动的位置
形式2指出刀具控制点在原来坐标、位置上各增加2个改变量△x 和△y,增加改变量后的新坐标位置是x+△x,y+△y。
(2)开始连续运动语句
形式1 | GO/限定几何表达式 |
形式2 | GO/限定几何表达式,限定几何表达式 |
限定几何表达式是下列形式之一:
①刀具接触说明符 几何变量
②刀具接触说明符 几何表达式
③几何变量
④几何表达式
刀具接触说明符是下列形式之一:
①TO 表示刀具与某线切于内侧
②ON 表示刀具在曲线上
③PAST 表示刀具与某线切于外侧
④TANTO 表示刀具与某线相切
(3)中间连续运动语句
形式 | 连续运动字/传动曲线 |
其中,连续运动字为:
GO LET (左转) GO RGT(右转)
GO UP(向上) GO DOWN (向下)
传动曲线是几何变量或几何表达式之一
(4)结束运动语句
它的形式与中间连续运动语句一样,只是它的后面除了FINI语句之外再没有别的语句。FINI表示整个程序的结束。1
时序控制语句(1)算术转向语句
形式1 | JUMPTO/标号 |
形式2 | IF(E) 标号1,标号2,标号3 |
形式1:表示遇到这样的语句的时候,程序无条件地跳到标号所指地语句去
形式2:表示算术表达式E执行完之后,由其值决定转移的路线。如果E0,转到标号3。
(2)结束语句
形式 | FINI |
当遇到这个语句时,整个程序结束。
过程语句形式1 | CALL/过程标识符 |
形式2 | CALL/过程标识符,形参=实参,...,形参=实参 |
其中,第2种形式的形参是过程说明中定义的形参、实参是变量、数或词汇表中的字。
过程语句是调用同名的过程说明。1
输入/输出语句形式 | 输入/输出控制字 |
/设备说明符,I-O表 |
其中输入输出控制字是READ(读)、PUNCH(穿孔)、PRINT(打印),是用来指明译备种类,设备说明符指出设备编号,一种设备可以有几个编号,如同是打印机可以有三台,那它就有三个不同编号。I-O表表示输入输出变量标识符,也可用表示全部输入输出。1
表达式算术表达式算术表达式与 类似。
几何表达式形式 | 几何形式/参数表 |
几何形式有:
POINT(点),PLANE(平面),CIRCLE(圆),LINE(线),CYLNDR(圆柱),ELLIPS(椭圆),HYPERS(双曲),CONE(圆锥),SPHRE(球面),QADRIC(二次曲线)等
参数表是:
数;变量;参数表,修饰字;修饰字,参数表;参数表,参数表;(表达式)等
几何形式表示几何元素是什么类型,由参数表给出几何形式的位置、大小,以和及其它几何元素之间的关系。修饰字表示几何元素和它们之间的关系及其相对位置。1
数控语言解释程序数控程序由一个个程序段组成,一个程序段由若干个指令字组成,每个指令字是控制数控系统的一个具体指令,它由指令字符 (地址符) 和数值组成。指令字和程序段分别如图 1 和图 2 所示。2
文法分析(1)词法分析
词法分析是数控程序解释流程的第一个阶段,其主要任务是从左到右逐个字符地读入数控程序,对构成数控程序的字符流进行扫描和分解,从而识别出一个个单词,用于语法分析。 这里所谓的单词是指逻辑上紧密相连的一组字符,这些字符具有集体含义,是最小的语法的单位。
(2)语法分析
语法分析的任务是在词法分析的基础上将单词系列分解成各类语法短语 ,并判断它们的组合是否是数控程序的正确句子。 语法分析所依据的是数控语言的语法规则 ,它是数控语言解释程序的核心部分。
语法分析的工作原理是采用计算机编译原理中的 LR(1) 分析法,其实现思想是对输入符号串从左到右进行扫描,并将输入符号逐个移入一个后进先出栈中,边移入边分析,一旦栈顶符号会呈串形成文法的某个句型的句柄时, (该句柄对应某个产生式的右部),就用该产生式的左部非终结符代替相应右部的符号串,这称为一步归约,重复这一过程直到归约到栈中只剩下文法的开始符号时则为分析成功,即确认输入串是该文法的一个句子。
(3)语义解释
语义解释的任务是将数控语言程序解释成底层模块能够识别的目标程序,它是数控语言解释程序中具体实现各种数控语句功能的模块,目标程序的代码格式由底层模块指定。2
实现数控语言解释程序由词法分析、语法分析、语义解释、表格管理和出错处理等部分组成,其结构如图3 所示。词法分析、语法分析和语义解释前面已经介绍。表格管理的任务是将数控程序的各种信息保存在不同的表格里,并负责在解释程序的各个阶段查找有关表格。 出错处理的任务是当发现数控程序的错误时,报告错误的性质和地点。
在实现过程中,用一个类将数控语言解释的各个阶段模块封装起来,实现其总体功能,即把数控程序解释成底层模块能够识别的目标程序。2