1、数控车FANUC系统宏程序教案宏 程 序 设 计宏程序与子程序类似,对编制相同加工的操作能够使程序简化.同时宏程序中能够利用变量,算术和逻辑运算及转移指令,还能够方便地实现循环程序设计。使相同加工操作的程序更方便,更灵活。本章以FANUC系统为例介绍宏程序设计的内容。 变量的概念 宏程序中利用的变量与日常生活中利用的变量不同,变量用符号“#”后跟变量的变量号指定。变量可分为四种类型。 1. 空变量 #0为空变量,该变量不能赋值。 2. 局部变量 #1#33为局部变量,局部变量只能在宏程序中存储数据。当断电时局部变量被初始化为空,挪用宏程序时,自变量对局部变量赋值。局部变量的数值范围10-291
2、047或-1047-10-29,若是计算结果超过该范围则发出P/S报警。 3. 公共变量 #100#19九、#500#999为公共变量,公共变量在不同的宏程序中意义相同。当断电时,变量#100#199被初始化为空,变量#500#999的数据不会丢失。全局变量的数值范围10-291047或-1047-10-29,若是计算结果超过该范围则发出P/S报警。 4. 系统变量 #1000为系统变量,系统变量用于读和写CNC运行时的各类数据,如刀具的当前位置和补偿 值等。 5. 变量与地址(自变量)的对应关系系统可用两种形式的自变量指定,表12-1为自变量指定I的自变量与变量的对应关系。表12-2为自变量
3、指宾II的自变量与变量的对应关系。表12-1 自变量指定I的变量对应关系地址(自变量)变量号地址(自变量)变量号地址(自变量)变量号A#1I#4T#20B#2J#5U#21C#3K#6V#22D#7M#13W#23E#8Q#17X#24F#9R#18Y#25H#11S#19Z#26在自变量指定I中,G、L、O、N、P不能用,地址I、J、K必需按顺序利用,其它地址顺序无要求。举例:G65 P3000 L2 B4 A5 D6 J7 K8 正确(J、K符合顺序要求)在宏程序中将会把4赋给#2,把5赋给#1,把6赋给#7,把7赋给#5,把8赋给#6 举例:G65 P3000 L2 B3 A4 D5 K
4、6 J5 不正确(J、K不符合顺序要求)表12-2 自变量指定II的变量对应关系地址(自变量)变量号地址(自变量)变量号地址(自变量)变量号A#1K3#12J7#23B#2I4#13K7#24C#3J4#14I8#25I1#4K4#15J8#26J1#5I5#16K8#27K1#6J5#17I9#28I2#7K5#18J9#29J2#8I6#19K9#30K2#9J6#20I10#31I3#10K6#21J10#32J3#11I722K10#33 自变量指定II利用A、B、C和1次,利用I、J、K各10次。 系统能够自动识别自变量指定I和自变量指定II并赋给宏程序中相应的变量号。若是自变量指定
5、I和自变量指定II混合利用,则后指定的自变量类型有效。 举例:G65 p1000宏程序中: #1:#2:, #3: #4: #5: #6: #7: 说明:为自变量指定II,D为自变量指定I,所以#7利用指定类型中的,而不利用自变量指定II中的。6. 本级变量#1#33作用于宏程序某一级中的变量称为本级变量,即这一变量在同一程序级中调历时含义相同,若在另一级程序(如子程序)中利用,则意义不同。本级变量主要用于变量间的彼此传递,初始状态下未赋值的本级变量即为空白变量。 局部变量#1#33(一个宏程序中的同名变量)从0到4级,主程序是0级。每挪用一个含有同名变量的宏程序,级别加1,前一级的变量被保留
6、。当一个宏程序结束(执行M99)时,级别减1。例如:主程序 宏程序 宏程序 宏程序 宏程序(0级) (1级) (2级) (3级) (4级)O0001 O0002 O0003 O0004 O0005#1=1; #1=2 #1=3 #1=4 #1=5G65P2A2; G65P3A3 G65P4A4 G65P5P5 M99M30 M99 M99 M99 变量的运算 对宏程序中的变量能够能够进行算术运算和逻辑运算。 1. 算术运算 能够进行加、减、乘、除运算。运算功能和格式如表12-3所示。举例:G00X#1+#2X坐标的值是变量1与变量2之和。 2. 三角函数计算对宏程序中的变量可进行正弦(SIN)
7、、终归弦(ASIN)、余弦(COS)、反余弦(ACOS)、正切(TAN)、终归切(ATAN)函数运算。三角函数中的角度以度为单位。运算功能和格式如表12-3所示。表12-3 变量运算功能表类型功能格式举例备注算术运算加法#i=#j+#k#1=#2+#3常数可以代替变量减法#i=#j-#k#1=#2-#3乘法#i=#j*#k#1=#2*#3除法#I=#j*#k#1=#2/#3三角函数运算正弦#i=SIN#j#1=SIN#2角度以度指定3530表示为常数可以代替变量反正弦#i=ASI#j#1=ASIN#2余弦#i=COS#j#1=COS#2反余弦#i=ACOS#j#1=ACOS#2正切#i=TAN
8、#j#1=TAN#2反正切#i=ATAN#j#1=ATAN#2其它函数运算平方根#i=SQRT#j#1=SQRT#2常数可以代替变量绝对值#i=ABS#j#1=ABS#2舍入#i=ROUN#j#1=ROUN#2上取整#i=FIX#j#1=FIX#2下取整#i=FUP#j#1=FUP#2自然对数#i=LN#j#1=LN#2指数对数#i=EXP#j#1=EXP#2逻辑运算与#i=#jAND#k#1=#2AND#2按位运算或#i=#j OR #k#1=#2OR#2异或#i=#j XOR #k#1=#2XOR#2转换运算BCD转BIN#i=BIN#j#1=BIN#2BIN转BCD#i=BCD#j#1=
9、BCD#2对于反终归弦(ASIN)取值范围如下: 当参数(#0)NAT位设为0时:27090 当参数(#0)NAT位设为1时:-9090 当#j超出-11时发出P/S报警。对于反余弦(ACOS)的取值范围如下: 取值范围1800 当#j超出-11时发出P/S报警。对于终归切(ATAN)的取值范围如下: 当参数(#0)NAT位设为0时:0360 当参数(#0)NAT位设为1时:-1801803. 其它函数计算对宏程序中的变量还能够进行平方根(SQRT)、绝对值(ABS)、舍入(ROUN)、上取整(FIX)、下取整(FUP)、自然对数(LN)、指数(EXP)运算。运算功能和格式如表12-3所示。对
10、于自然对数LN#j,相对误差可能大于10-8。当#j0时,发出P/S报警。对于批数函数EXP#j,相对误差可能大于10-8。当运算结果大于3。651047(j大约110)时,出现溢出并发出P/S报警。对于取整函数ROUN#j,按照最小设定单位四舍五入。例如,假设最小设定单位为1/1000mm,#1=,则#2=ROUN#1的值是。对于上取整FIF#j,绝对值值大于原数的绝对值。对于下取整FUP绝对值小于原数的绝对值。例如,假设#1=,则#2=FIX#1的值是。 假设#1=,则#2=FUP#1的值是。 假设#1=,则#2=FIX#1的值是。 假设#1=,则#2=FUP#1的值是。4. 逻辑运算对宏
11、程序中的变量可进行与、或、异或逻辑运算。逻辑运算是按位进行。运算功能和格式如表12-3所示。5. 数制转换变量能够在BCD码与二进制之间转换。 6. 关系运算 由关系运算符和变量(或表达式)组成表达式。系统中利用的关系运算符如下。 (1)等于(EQ)用EQ与两个变量(或表达式)组成表达式,当运算符EQ两边的变量(或表达式)相等时,表达式的值为真,不然为假。例如,#1EQ#2,当#1与#2相等时,表达式的值为真。 (2)不等于(NE)用NE与两个变量或表达式组成表达式,当运算符NE两边的变量(或表达式)不相等时,表达式的值为真,不然为假。例如,#1NE#2,当#1与#2不相等时,表达式的值为真。
12、 (3)大于等于(GE)用GE与两个变量或表达式组成表达式,当左侧的变量(或表达式)大于或等于右边的变量(或表达式)时,表达式的值为真,不然为假。例如,#1GE#2,当#1大于或等于#2时,表达式的值为真。不然为假。 (4)大于(GT)用GT与两个变量或表达式组成表达式,当左侧的变量(或表达式)大于右边的变量(或表达式)时,表达式的值为真,不然为假。例如,#1GT#2,当#1大于#2时,表达式的值为真。不然为假。 (5)小于等于(LE)用LE与两个变量或表达式组成表达式,当左侧的变量(或表达式)小于或等于右边的变量(或表达式)时,表达式的值为真,不然为假。例如,#1LE#2,当#1小于或等于#
13、2时,表达式的值为真。不然为假。 (6)小于(LT)用LT与两个变量或表达式组成表达式,当左侧的变量(或表达式)小于右边的变量(或表达式)时,表达式的值为真,不然为假。例如,#1GE#2,当#1大于#2时,表达式的值为真。不然为假。 7. 运算优先级运算符的优先顺序是(1)函数。函数的优先级最高。(2)乘、除、与运算。乘、除、与运算的优先级次于函数的优先级。(3)加、减、或、异或运算。加、减、或、异或运算的优先级次于乘、除、与运算。乘、除、与运算的优先级。 (4)关系运算。关系运算的优先级最低。 用方括号能够改变优先级,括号不能超过5层。超过5层时,发出P/S报警。 8. 变量值的精度变量值的精度为8位十进制数。例如,用赋值语句#1=时,实际上#1=。 用赋值语句#2=时,实际上#1=。 宏程序结构宏程序从结构上能够有顺序结构、分支结构和循环结构。本节介绍分支和循环结构的实现方式。 1. 无条件转移(GOTO) 格式:GOTOn;n为顺序号(19999)例如,GOTO6; 语句组 N6 G00X100; 执行GOTO6语句时,转去执行标号为N6的程序段。 2. 条件转移(IF) 格式:IF关系表达式GOTOn;例如,IF#1LT30 GOTO7 语句组 N7G00
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1