资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
一用户宏程序的基本概念用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能. 在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏.其代表指令称为用户宏命令,也称作宏程序调用指令。用户宏有以下四个主要特征:1)在用户用户宏程序中可以使用变量,即宏程序体中能含有复杂的表达式;2)能够进行变量之间的各种运算;3)可以用用户宏指令对变量进行赋值,就象许多高级语言中的带参函数或过程,实参能赋值给形参;4)容易实现程序流程的控制。使用用户宏时的主要方便之处在于由于可以用变量代替具体数值,因而在加工同一类的工件时只得将实际的值赋予变量既可,而不需要对每个不同的零件都编一个程序。二 基本书写格式数控程序文档中,一般以“”字符作为第一行的起头,该行将被视为标题行。当标题行含有关键字“MACRO时整个文档就会以系统所定义的MACRO语法处理。如果该行无“MACRO”关键词此档案就会被视为一般ISO程序文档格式处理,此时将不能编写用户宏和使用其MACRO语法。而当书写ISO程序文档时标题行一般可以省略,直接书写数控程序。“MACRO”关键词必须是大写字母。对于程序的注释可以采用“/”的形式,这和高级语言C+一样.例一:MACRO格式文档% MACRO /用户宏程序文档,必须包含“MACRO”关键词IF 1 = 1 THENG00 X100.;ELSEG00 Z100。;END_IF;M99;例二:ISO格式文档 这是标题行,可当作档案用途说明,此行可有可无G00 X100。;G00 Z100.;G00 X0;G00 Z0;M99;三 用户宏程序的编写如前所述,变量是指可以在用户宏程序中的地址码后代替具体数值,在调用宏程序时进行赋值的符号i (i1,2,3,).使用变量可以使用户宏程序具有通用性。用户宏程序中可以使用多个变量,以变量编号进行识别。1、 变量的形式变量是用符号或后面加上变量编号所构成的,即:i(i1,2,3,)例如:5 #109 1005也可用表达式的形式来表示.例如:100 #10011 #6/2其实,通过用符号后面加上变量编号也可构成的变量,即: i(i1,2,3,)例如:5 5但一般地,由符号后面加上变量编号构成的变量称为全局变量,不提倡在用户宏程序中使用,具体见后面的介绍。2、 变量的引用在地址符后的数值可以用变量置换。例如:若写成F#33,则当331.5时,与F1。5相同。若写成Z18,则当1820.0时,与Z20.0相同.但需要注意,作为地址符的O、N、等,不能引用变量。例如,O27、N#1等,都是错误的。3、 未定义变量尚未被定义的变量,被称为空(VACANT)。变量0,0 始终为空,经常被用作空变量使用。3变量赋值和引数赋值变量赋值:用户宏程序中变量赋值使用赋值运算符“:=”,不可仅用“=”符号.因为在本系统中符号“=” 是被规定为关系运算符,用来比较是否相等的。例如30:=100,会将变量#30赋值为整数100;而30=100,将不能为变量#30赋值,实际上是比较变量#30是否与整数100相等。四变量运算及变量表达式用户宏运算符要对变量进行各种运算操作就要用到运算符,它是“能对变量所存数据进行运算的符号”。本系统的运算符及其优先级如表32所示.表32 运算符及其优先级运算名符号优先级括号( ), 1函数调用运算函数名( )2取负-3求补运算NOT3乘法运算*4除法运算/4模运算/求余运算MOD4加法运算+5减法运算5关系运算,,=,=6相等运算=7不等运算8布尔逻辑/按位与,AND9布尔逻辑/按位 异或XOR10布尔逻辑/按位 或OR11、基本算数运算符(1) +(加法运算符,如3+5,#12+4)(2) -(减法运算符,或取负运算符,如#33-16,-16)(3) (乘法运算符,如9*2,138)(4) /(除法运算符,如10/3,#43/15)(5)MOD (模运算符,或称求余运算符,其两侧均应为整型数据,如7 MOD4的值为3,当18=20时#18 MOD4的值为2)、算术表达式和运算符优先级用算术运算符和括号将运算对象连接起来的、符合语法规则的式子称为算术表达式,运算对象可以是常数、变量、函数等.例如:#6*8/#32-1。5+18+ ROUND(1)这就是一个算术运算式,它可以作为一个整体赋值给某个变量,或用作其他表达式中的一个运算对象.本系统按表表32规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。如表达式12-415的左侧为减,右侧为乘号,而乘号优先于减号,因此,相当于#12(415).如果在一个运算对象两侧的运算符的优先级别相同,如2-5+23,则按规定的结合性(结合方向)处理,算术运算符的结合方向为“自左至右”,即先左后右.因此5先与减号结合,执行#2-5的运算,再执行加#23的运算.这样“自左至右的结合方向又称为“左结合性”,即运算对象先与左面的运算符结合;对应地,也有“右结合性”的运算符,例如赋值运算符“:=”就是.、关系运算符和关系表达式关系运算符是逻辑运算中比较简单的一种。所谓“关系运算”实际上就是“比较运算”。将两个值进行比较,判断比较的结果是否符合给定的条件。例如,#310是一个关系表达式,大于号()是一个关系运算符,如果3=12,则满足给定的“#310”条件,因此关系表达式的值为“真”(即“条件满足”);如果#3=6,不满足“310条件,则称关系表达式的值为“假”.本系统提供6种关系运算符:优先级相同(高)优先级(较高)优先级(低) (1) (小于) (2) )的优先级别相同,它们却高于关系运算符“=”,而“=”又高于“”2、关系运算符的优先级低于算术运算符。3、关系运算符的优先级高于赋值运算符.用两个关系运算符将两个表达式连接起来的式子,称为关系表达式.例如:636,13+4#23关系表达式的值是一个逻辑值,即“真或“假”。例如,若12为8,则关系表达式“#12=10”的值为“假”,“#12=6”的值为“真”.、逻辑运算和逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式.本系统提供6种逻辑运算符和逻辑运算(1) &,AND 逻辑与(2) XOR 逻辑或(3) OR 逻辑异或它们都是“双目(元)运算符”,它要求有两个运算量(操作数),逻辑运算举例如下:#1 AND 2 若1 、#2为真,则#1 AND #2为真。1 OR 2 若1 、 #2之一为真,则#1 XOR #2为真.逻辑运算符低于关系运算符,见图3-1。(高)(低)算术运算符关系运算符逻辑运算符赋值运算符图31五 用户宏程序的流程控制所谓程序的流程(Flow Control)是通过控制程序的执行方向,进而掌握程序动态.这用户宏程序区别于一般数控程序的特征之一,也是用户选择用户宏程序编写数控代码的一大理由。用户宏程序的流程控制包括无条件判断、循环控制、无条件转移三大类,这与其他的高级语言程序类似,下面将分别介绍其功能和使用语法。、条件判断判断条件的真假,然后根据真假或者对应情况到指定的地方去执行程序,这方面的语句有IF和CASE语句。1、IF条件语句1)基本语法:IF THEN操作ELSEIF THEN操作ELSE操作END_IF;说明:IF条件判断,根据真假情况到指定的地方去执行程序.例如:% MACRO/ 启动MACRO语法1 := 3.0;G01 X20。 15. F200;IF #1 = 1 THEN;X(1.01);(1。01);ELSEIF 1 = 2 THEN;X(1.0*2);(1.02);ELSEIF #1 = 3 THEN;X(1.0*3);(1.03);ELSE;X(1。0*4);(1。04);END_IF;X(1.0)(1.0);M30;然而在实际使用中,可以有以下一些变形:2)变形1语法:IF 条件表达式 THENELSE操作END_IF;3)变形2语法:IF THENEND_IF;编程时可根据需要选择合适的语法格式。、循环控制1、REPEAT直到型循环语法:REPEAT循环体UNTIL条件表达式 END_REPEAT;说明:REPEAT直到型循环控制,先执行循环体,后判断条件表达式,当条件满足时退出循环.例如: MACRO/ 启动MACRO语法10 := 30.;#11 := 22.5。;#12 := 10/2;13 := 11/2;14 := 2.0;15 := 1.5;G01 X#12 #13 F200.0;REPEAT G00 X(#12+#14) (13+#15); G01 X(#12+#14) (#13-15); X(#12#14) (#1315); X(#12#14) (#13+15); X(#12+14) (13+15); 14 := #14 + 2。0; 15 := 15 + 1。5;UNTIL (14 12) OR (#15 13) END_REPEAT;X(1。0) (1.0);M30;。WHILE当型循环语法:WHILE 条件表达式 DO循环体END_WHILE;说明:WHILE当型循环控制,先判断条件表达式,当条件满足时执行循环体,否则退出循环。例如: MACRO;#10 := 20.;11 := 15.;12 := 10/2;13 := #11/2;#14 := 2。0;#15 := 1.5;G01 X12 13 F200.0;WHILE (14 = 12) AND (#15 = #13) DOG00 X(#12+14) (#13+15);
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号