文档库 最新最全的文档下载
当前位置:文档库 › 坐标系旋转使用宏程序

坐标系旋转使用宏程序

坐标系旋转使用宏程序

坐标系旋转使用宏程序

O0303

G00G90G54X0Y0

G43Z0H1S600M3

G1Z-5F200

G41D1X40F150

G3I-40

G1G40X0Y0

#100=0

N100G68X0Y0R#100

G41G1X35Y0D1

G3I5

刀具的选择直径小于10MM,内圆直径80MM,小圆10MM G40G1X0Y0

G69

#100=#100+30

IF[#100LE330]GOTO100

G00Z100M5

M30

宏程序编程知识

工件偏置量:G10 L2 P X Y Z (加工中心)。 G41X Y D G90G54P1G00X Y S M03 G90G10L2P0X Y Z G10L1P R G10 P U V W C Q 可编程参数入口:G10 L50 ……… G11 G10数据设置模式入口、 L50可编程参数入口模式(固定的) N……P……R……指定参数入口(N=参数号,P=轴号,R=设置值) G11数据设置模式取消 宏程序的调用:G65 P L G65 P包含宏程序的程序号(存储为O ) L宏程序的循环次数 变量的类型:空变量#0 局部变量:#1—#33 全局变:#100—#149或#500—#531 系统变量:#1000—。。。。。。 局部变量的赋值:A-#1 B-#2 C-#3 D-#7 E-#8 F-#9 H-#11 I-#5 J-#6 K-#6 M-#13 Q-#17 R-#18 S-#19 T-#20 U-#21 V-#22 W-#23 X-#24 Y-#25 Z-#26 模态宏程序的调用G66仅用于某个轴运动命令调用宏程序 G67取消模态宏程序调用 宏程序函数:有SIN COS TAN ATAN ASIN ACOS 其他函数:ROUND FIX FUP ROUND表示四舍五入 FIX表示与之最小的整数 FUP表示与之最大的整数 辅助函数: SQRT表示开方 ABS表示绝对值 LN表示自然对数函数 EXP表示以E为底的指数函数、 ADP表示添加小数点的函数、 逻辑函数:EQ表示等于、NE表示不等于、GT表示大于、LT表示小于、GE表示大于等于、LE 表示小于等于。 系统变量: 从#1000开始 #1000through#1015数据输入DI 从PMC向宏程序发送16位信号(逐位读取) #1032用于一次读取所有16位信号 #1100through#1115数据输出DO从宏程序向PMC发送16位信号(逐位写入) #1132用于一次向PMC写入所有16位信号

新代数控车床宏程序说明

一.用户宏程序的基本概念 用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能。 在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏。其代表指令称为用户宏命令,也称作宏程序调用指令。 用户宏有以下四个主要特征: 1)在用户用户宏程序中可以使用变量,即宏程序体中能含有复杂的表达式; 2)能够进行变量之间的各种运算; 3)可以用用户宏指令对变量进行赋值,就象许多高级语言中的带参函数或过程,实参能赋值给形参; 4)容易实现程序流程的控制。 使用用户宏时的主要方便之处在于由于可以用变量代替具体数值,因而在加工同一类的工件时.只得将实际的值赋予变量既可,而不需要对每个不同的零件都编一个程序。 二.基本书写格式 数控程序文档中,一般以“%”字符作为第一行的起头,该行将被视为标题行。当标题行含有关键字“@MACRO”时整个文档就会以系统所定义的MACRO语法处理。如果该行无“@MACRO”关键词此档案就会被视为一般ISO程序文档格式处理,此时将不能编写用户宏和使用其MACRO语法。而当书写ISO程序文档时标题行一般可以省略,直接书写数控程序。“@MACRO”关键词必须是大写字母。 对于程序的注释可以采用“//……”的形式,这和高级语言C++一样。 例一:MACRO格式文档 % @MACRO //用户宏程序文档,必须包含“@MACRO”关键词 IF @1 = 1 THEN G00 X100.; ELSE G00 Z100.; END_IF; M99; 例二:ISO格式文档 % 这是标题行,可当作档案用途说明,此行可有可无 G00 X100.; G00 Z100.; G00 X0; G00 Z0; M99;

数控车床由浅入深的宏程序实例

宏程序 裳华职业技术中专鲍新涛 宏程序概述 其实说起来宏就是用公式来加工零件的,比如说,如果没有宏的话,我们要逐点算出上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用。.宏一般分为A类宏和B类宏。 A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序 则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广。 宏程序的作用 数控系统为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。 宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不同的系列零件的编程。较大地简化编程;扩展应用范围。 宏的分类 B类宏 由于现在B类宏程序的大量使用,很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如(FANUC)OTD系统中由于它的MDI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用B类宏程序的话就只能在计算机上编好

再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A 类宏的引用; A类宏 A类宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式输入的,xx 的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1MM.#xx就是号,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量,一般OTD 系统中有#0~#100~#149~#500~#531.关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据.我们如果说#100=30那么现在#100地址内的数据就是30了,就是这么简单.好现在我来说一下H代码,大家可以看到A类宏的标准格式中#xx和xx都是数值,而G65表示使用A类宏,那么这个H就是要表示各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算,可以说你了解了H代码A类宏程序你基本就可以应用了,好,现在说一下H代码的各个含义: 应用 以下都以#100和#101和#102,及数值10和20做为例子,应用的时候别把他们当格式就行, 基本指令 H01赋值;格式:G65H01P#101Q#102:把#102内的数值赋予到#101中 G65H01P#101Q#10:把#10赋予到#101中 H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的数值加上#103的数值赋予#101

宏程序代码

转铣床 宏指令G65及使用注意事项(FANUC-0MC)2008-05-29 21:10 宏指令G65可以实现丰富的宏功能,包括算术运算、逻辑运算等处理功能。 一般形式: G65 Hm P#i Q#j R#k 式中: m--宏程序功能,数值范围01~99; #i--运算结果存放处的变量名; #j--被操作的第一个变量,也可以是一个常数; #k--被操作的第二个变量,也可以是一个常数。 例如,当程序功能为加法运算时: 程序P#100 Q#101 R#102...... 含义为#100=#101+#102 程序P#100 Q-#101 R#102...... 含义为#100=-#101+#102 程序P#100 Q#101 R15...... 含义为#100=#101+15 1、宏功能指令 (1)算术运算指令(表4.4) 表4.4 算术运算指令 G码H码功能定义 G65H01定义,替换# i=# j G65H02加# i=# j+# k G65H03减# i=# j-# k G65H04乘# i=# j × # k G65H05除# i=# j/# k G65H21平方根# i=√# j G65H22绝对值# i=|# j| G65H23求余# i=# j-trunc﹙# j/# k﹚· # k Trunc;丢弃小于1的分数部分 G65H24BCD码→二进制码# i=BIN﹙# j﹚ G65H25二进制码→BCD码# i=BCD﹙# j﹚ G65H26复合乘/除# i=﹙# i × # j﹚÷# k G65H27复合平方根1# i=√# j2+# k2 G65H28复合平方根2# i=√# j2-# k2 1)变量的定义和替换 #i=#j 编程格式 G65 H01 P#i Q#j 例 G65 H01 P#101 Q1005; (#101=1005) G65 H01 P#101 Q-#112;(#101=-#112) 2)加法 #i=#j+#k

所有宏程序编程代码[1]

各种类型宏程序 A型宏程序 G65H m宏指令表 宏程序的运算与控制指令(G65) 指令格式:G65 Hm P#i Q#j R#k 条件转移的指令格式:G65HmPmQ#jR#k

#i :储存运算结果的变量号 Hm:条件转移指令 #j :进行运算的变量号1,可以是常数 Pm:转移的地址 #k :进行运算的变量号2,也可是常数 Q#j R#k:转移的条件 B型宏程序(FANUC 0i Mate-MC系统) 运算指令 1、定义和转换 #i=#j 2、加法运算 #i=#j+#k 和 #i=#j-#k 差 #i=#jOR#k 或(对32位的每一位) #i=#jXOR#k 异或(对32位的每一位) 3、乘法运算 #i=#j×#k 积 #i=#j÷#k 商 #i=#jAND#k 与(对32位的每一位) 4、函数 #i=SIN[#j] 正弦(度) #i=COS[#j] 余弦(度) #i=TAN[#j] 正切(度) #i=ATAN[#j]/[#k] 反正切(度) #i=SQRT[#j] 平方根 #i=ABS[#j] 绝对值 #i=BIN[#j] 十一二进制转换 #i=BCD[#j] 二一十进制转换 #i=ROUND[#j] 四舍五入圆整 #i=FIX[#j] 舍去小数部分 #i=FUP[#j] 小数部分进位到整数 5、控制指令 (1)无条件转移格式:GOTOn (2)条件转移格式:IF[(条件表达式)]GOTOn (条件表达式)有如下几种 #jEQ#k 即#j=#k #jNE#k #j≠#k` #jGT#k #j>#k #jLT#k #j<#k #jGE#k #j≥#k #jLE#k #j≤#k 例:IF[#4EQ#0]GOTO1 N10G90```````````` WHILE[<条件表达式>]DOm

宏程序常用符号和含义

宏程序的常用符号和含义 符号含义符号含义 GT 大于 NE 不等于 GE 大于或等于 ABS 绝对值 LT 小于 AND 与 LE 小于或等于 OR 或者 EQ 等于 ____________________________________________________________________________________________ WHILE 当 IF 如果 G0T0n 执行_段号(n为数值,需和IF同时使用) D0n执行_段号(n为数值,取值1-99。需和WHILE同时使用) END n结束程序(n与开头n的数值对应,需和Don以及WHILE同时使用) _____________________________________________________________________________________ IF[#1LT0]THEN#1=0 如果#1小于0强制#1等于0

宏变量的取值范围 1、局部变量(#1-#33) 什么叫局部变量,局部变量就是在局部或则可以理解为在单个程序中有效。断电以后系统自动清零。 ____________________________________________________________________________________________ 2、公共变量(#100-#199,#500-#999) 而#100-#199和#500-#999的区别在于,前者断电清零,而后者不会清零会一直保存系统内部。比如: #500=TAN[15] #500一旦赋值就将保存在系统内部,下次直接调用#500使用。 ____________________________________________________________________________________________ 3、系统变量(#1000-#17200) 系统变量是用于我们机床系统存储的一些刀补数据参数等等的东西,我们可以不用管它。(不会用的,慎用!) ____________________________________________________________________________________________ 总结:一般情况下我们写程序用#1-#33,当有子程序的时候我们用#100-#199。 常用三角函数运算 1.TAN(正切) 例如:#1=2*TAN[20]中括号里面是角度。 2.SIN(正玄) 例如:#1=3*SIN[3]中括号里面是角度。 3.COS(余玄) 例如:#1=COS[15]中括号里面是角度。 4.SQRT(数学中的开平方的意思,和数学中根号一样) 例如:#1=SQRT[9]那么计算出来#1的值等于3。

数控铣宏程序实例(DOC)

数控铣宏程序实例(DOC)

数控铣宏程序实例 §4.1 椭圆加工(编程思路:以一小段直线代替曲线)例1:整椭圆轨迹线加工(假定加工深度为2mm) 方法一:已知椭圆的参数方X=acosθ Y=bsinθ变量数学表达式 设定θ= #1(0°~ 360°) 那么 X= #2 = acos[#1] Y= #3= bsin[#1] 程序 O0001; S1000 M03; G90 G54 G00 Z100; G00 Xa Y0; G00 Z3; G01 Z-2 F100; #1=0; N1 #2=a*cos[#1]; #3=b*sin[#1]; G01 X#2 Y#3 F300; #1=#1+1; IF[#1LE360]GOT01; GOO Z50; M30;

例2:斜椭圆且椭心不在原点的轨迹线加工(假设加工深度为2mm) 椭圆心不在原点的参数方程 X=a*COS[#1]+ M Y=b*SIN[#1]+ N 变量数学表达式 设定θ=#1; (0°~360°) 那么X=#2=a*COS[#1]+ M Y=#3=b*SIN[#1]+ N 因为此椭圆绕(M ,N)旋转角度为A 可运用坐标旋转指令G68 格式 G68 X - Y - R - X,Y:旋转中心坐标; R: 旋转角度 程序 O0002; S1000 M03; G90 G54 G00 Z100; GOO Xa+M YN; GOO Z3; G68 XM YN R45; #1=0; N99 #2=a*COS[#1]+M; #3=b*SIN[#1]+N; GO1 X#2 Y#3 F300; G01 Z-2 F100; #1=#1+1; IF[#1LE360]GOTO99; G69 ; GOO Z100; M30;

数控宏程序的使用方法

数控宏程序的使用方法 Document serial number【KK89K-LLS98YT-SS8CB-SSUT-SST108】

数控宏程序的使用方法一、A类宏程序 1)变量的定义和替换 #i=#j 编程格式 G65 H01 P#i Q#j 例 G65 H01 P#101 Q1005; (#101=1005) G65 H01 P#101 Q-#112;(#101=-#112) 2)加法 #i=#j+#k 编程格式 G65 H02 P#i Q#j R#k 例 G65 H02 P#101 Q#102 R#103;(#101=#102+#103) 3)减法 #i=#j-#k 编程格式 G65 H03 P#i Q#j R#k 例 G65 H03 P#101 Q#102 R#103;(#101=#102-#103) 4)乘法#i=#j×#k 编程格式 G65 H04 P#i Q#j R#k 例 G65 H04 P#101 Q#102 R#103;(#101=#102×#103) 5)除法 #i=#j / #k 编程格式 G65 H05 P#i Q#j R#k 例 G65 H05 P#101 Q#102 R#103;(#101=#102/#103) 6)平方根 #i= 编程格式 G65 H21 P#i Q#j 例 G65 H21 P#101 Q#102;(#101= ) 7)#i=│#j│ 编程格式 G65 H22 P#i Q#j 例 G65 H22 P#101 Q#102;(#101=│#102│) 8)复合平方根1 #i= 编程格式 G65 H27 P#i Q#j R#k 例 G65 H27 P#101 Q#102 R#103;( #101= 9)复合平方根2 #i= 编程格式 G65 H28 P#i Q#j R#k 例 G65 H28 P#101 Q#102 R#103 1)逻辑或 #i=#j OR #k 编程格式 G65 H11 P#i Q#j R#k 例 G65 H11 P#101 Q#102 R#103;(#101=#102 OR #103) 2)逻辑与 #i=#j AND #k

新代宏程序实例

新代宏程序实例文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)

1、R E P E A T直到型循环REPEAT <循环体> UNTIL <条件表达式> END_REPEAT; 说明:REPEAT直到型循环控制,先执行循环体,后判断条件表达式,当条件满足时退出循环。 例如: % @MACRO ,为了;?倾向于;?关于;?当作; conj.因为,由于;? FOR <循环变量> := <表达式1> TO <表达式2> [ BY <表达式3>] DO <循环体> END_FOR; 说明:FOR循环控制,式中各参数意义如下 循环变量——控制循环次数的变量; 表达式1——循环计数的起始值,可为整数或表达式; 表达式2——循环计数的终止值,可为整数或表达式; 表达式3——循环计数每次的累加值,可为整数或表达式; 循环体——循环每次执行内容; FOR循环执行过程为:先给循环变量赋起始值,然后判断循环变量是否为终止值,当循环变量已为终止值时退出循环,否则执行循环体,再对循环变量加上每次累加值, 4、无条件转移

GOTO转移语句 语法: GOTO n; 说明:无条件地跳到指定的n行号执行,其中n可为整数或表达式。GOTO常和IF语句搭配使用,那就是说当程序检查到某个条件满足时用GOTO语句去进一步处理,但应尽量少用该语句以提高程序可读性。 范例: % @MACRO Z10.; … N100 G01 X30. Z30.; … M02; EXIT循环中断语句 语法:EXIT; 说明:循环中断,跳离循环控制;用在循环控制中,通常EXIT都和IF 语句搭配使用,当某个条件满足后就跳离循环。请参考WHILE范例。

FANUC宏程序编程

运算符 运算符由2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一 示例程序下面的程序计算数值1~10的总和 O9500;#1=0;………………………………….存储和的变量初值 #2=1;………………………………….被加数变量的初值 N1 IF[#2GT 10]GOTO 2;…………….当被加数大于10时转移到N2 #1=#1+#2;…………………………….计算和 #2=#2+#1;…………………………….下一个被加数 GOTO 1;………………………………转移到N1 N2 M30;................................................程序结束 算术和逻辑运算

角度单位: SIN、ASIN、COS、ACOS、TAN和A TAN的角度单位是度 ARCSIN #i=ASIN[#j]: ●取值范围如下:当参数(N0.6004¥0)NA T位设为0时,270~90度;当参数(N0.6004¥0)NA T位设为1时,-90~90度。 ●当#j超过-1到1的范围时,发出P/S报警N0.111。 ●常数可替代变量#j。 ARCCOS #i=ACOS[#j]; ●取值范围从180~0度。 ●当#j超过-1到1的范围时,发出P/S报警N0.111。 ●常数可替代变量#j。 ARCTAN #i=A TAN[#j]; ●指定两边的长度,并用斜杠(/)分开 ●取值范围如下:当参数(N0.6004¥0)NA T位设为0时,0~360度[例如:当指定 #i=A TAN[-1]/[-1];时,#1=225度]。当参数(N0.6004¥0)NA T位设为1时,-180~180度[例如:当指定#i=A TAN[-1]/[-1];时,#1=-135度] ●常数可替代变量#j。 自然对数#i=LN[#j]; ●注意,相对误差可能大于10-8。 ●当反对数(#j)为0或小于0时,发出报警N0.111。 ●常数可替代变量#j。 指数函数#i=EXP[#j]: ●注意,相对误差可能大于10-8 ●当运算结果超过3.65×1047(j大约是110)时,出现溢出报警N0.111 ●常数可替代变量#j。 上取整下取整: CNC处理数值运算时,若操作后产生整数绝对值大于原数的绝对值时为上取整;小于为下取整。例如: 假设#1=1.2,#2=-1.2。当执行#3=FUP[#1]时,2.0赋给#3;当执行#3=FIX[#1]时1.0赋给#3;当执行#3=FUP[#2]时,-2.0赋给#3;当执行#3=FIX[#2]时,-1.0赋给#3。 宏程序语句:包含算术或逻辑运算(=)的程序;包含控制语句(例如,用GOTO,DO,END)的程序;包含宏程序调用指令(例如,用G65,G66,G67或其它G代码,M代码调用宏程序)的程序段;除宏程序以外任何程序段都为NC语句。 与NC语句的不同: 即使置于单段程序运行方式,机床也不停止。但是,当参数N0.6000#5SBM设定位、为1时,在单段程序方式中,机床停止。在刀具半径补偿方式中宏程序语句段不做为移动程序段处理 与宏程序语句相同性质的NC语句: 含有子程序调用指令(例如,用M98或其它M代码或用T代码调用子程序)但没有除O,N,P或L地址之外的其它地址指令的NC语句,其性质与宏程序语句相同;不包含除O,N,P或L以外的指令地址的程序段其性质与宏程序语句相同。 无限循环; 当指定DO而没有指定WHILE语句时,产生从DO到END的无限循环。

EXCEL宏编程实例.doc

Excel 宏编程举例说明 学习宏编程,需要VB基础,如果一点VB基础和面向对象的概念,建议先去补补VB,不然即使自认为学好了也只能拿着高射炮打蚊子! 一)、宏学习 首先需要明确的是,本文不可能教会您关于宏的所有内容。您需要学会利用"录制宏"的方法来学习宏:点击Excel"工具"下拉菜单中"宏"下?quot;录制新宏",此后可象平时一样进行有关操作,待完成后停止录制。然后再点击"工具"下拉菜单中"宏"下"宏"的"编辑"选项即可打开刚才所录制的宏的Visual Basic源程序,并且可以在此时的"帮助"下拉菜单中获得有关的编程帮助。对录制宏进行修改不仅可以学习宏的使用,还能大大简化宏的编写。 二)、基本概念 为了学习Excel中的宏,我们需要先了解以下一些基本概念。 1、工作簿:Workbooks、Workbook、ActiveWorkbook、ThisWorkbook Workbooks集合包含Excel中所有当前打开的Excel工作簿,亦即所有打开的Excel文件;Workbook对应Workbooks中的成员,即其中的Excel文件;ActiveWorkbook代表当前处于活动状态的工作簿,即当前显示的Excel文件;ThisWorkbook代表其中有Visual Basic代码正在运行的工作簿。 在具体使用中可用Workbooks(index)来引用Workbook对象,其中index为工作簿名称或编号;如Workbooks(1)、Workbooks("年度报表.xls")。而编号按照创建或打开工作簿的顺序来确定,第一个打开的工作簿编号为1,第二个打开的工作簿为2……。 2、工作表:Worksheets、Worksheet、ActiveSheet Worksheets集合包含工作簿中所有的工作表,即一个Excel文件中的所有数据表页;而Worksheet则代表其中的一个工作表;ActiveSheet代表当前处于的活动状态工作表,即当前显示的一个工作表。 可用Worksheets(index)来引用Worksheet对象,其中index为工作表名称或索引号;如Worksheets(1)、Worksheets("第一季度数据")。工作表索引号表明该工作表在工作表标签中的位置:第一个(最左边的)工作表的索引号为1,最后一个(最右边的)为Worksheets.Count。需要注意的是:在使用过程中Excel会自动重排工作表索引号,保持按照其在工作表标签中的从左至右排列,工作表的索引号递增。因此,由于可能进行的工作表添加或删除,工作表索引号不一定始终保持不变。3、图表:Chart 、Charts、ChartObject、ChartObjects、ActiveChart Chart代表工作簿中的图表。该图表既可为嵌入式图表(包含在ChartObject中),也可为一个分开的(单独的)图表工作表。 Charts代表指定工作簿或活动工作簿中所有图表工作表的集合,但不包括嵌入式在工作表或对话框编辑表中的图表。使用Charts(index) 可引用单个Chart图表,其中index是该图表工作表的索引号或名称;如Charts(1)、Charts("销售图表")。图表工作表的索引号表示图表工作表在工作簿的工作表标签栏上的位置。Charts(1)是工作簿中第一个(最左边的)图表工作表;Charts(Charts.Count)为最后一个(最右边的)图表工作表。 ChartObject代表工作表中的嵌入式图表,其作用是作为Chart对象的容器。利用ChartObject 可以控制工作表上嵌入式图表的外观和尺寸。 ChartObjects代表指定的图表工作表、对话框编辑表或工作表上所有嵌入式图表的集合。可由ChartObjects(index)引用单个ChartObject,其中index为嵌入式图表的编号或名称。如

数控铣床宏程序编程 经典

变量 普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。 #1=#2+100 G01 X#1 F300 说明: 变量的表示 计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。例如:#1 表达式可以用于指定变量号。此时,表达式必须封闭在括号中。 例如:#[#1+#2-12] 变量的类型 变量根据变量号可以分成四种类型 变量号变量类型功能 #0 空变量该变量总是空,没有值能赋给该变量. #1-#33 局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空.调用宏程序时,自变量对局部变量赋值, #100-#199 #500-#999 公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失. #1000 系统变量系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值. 变量值的范围 局部变量和公共变量可以有0值或下面范围中的值: -1047到-10-29或-10-2到-1047 如果计算结果超出有效范围,则发出P/S报警NO.111. 小数点的省略 当在程序中定义变量值时,小数点可以省略。 例:当定义#1=123;变量#1的实际值是123.000。 变量的引用 为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中。 例如:G01X[#1+#2]F#3; 被引用变量的值根据地址的最小设定单位自动地舍入。 例如:

数控宏程序实例

第7章宏程序 7.3 宏程序调用 7.3.1 宏程序调用指令(G65) 在主程序中可以用G65调用宏程序。指令格式如下: G65 P L 〈自变量赋值〉; 其中:P指定宏程序号:L为重复调用次数(1—9999);自变量赋值是由地址和数值构成的,用以对宏程序中的局部变量赋值。 例如: 主程序: O7002 ... G65 P7100 L2 A1.0 B2.0 ... M30 宏程序: #3=#1+#2; IF [#3 GT 360] GOTO 9; G00 G91 X#3 N9 M99

7.3.2 自变量赋值 自变量赋值有两种类型。自变量I使用除去G,L,N,O,P以外的其他字母作为地址,自变量II可以使用A,B,C每个字母一次,I,J,K每个字母可使用十次作为地址。表7—3和7—4分别为两种类型自变量赋值的地址和变量号码之间的对应关系: 表7—3 自变量赋值的地址和变量号码之间的对应关系 表7—4 自变量II的地址与变量号码之间的对应关系

上表中的I,J,K的下标只表示顺序,并不写在实际命令中。在G65的程序段中,可以同时使用表4—1及表4—2中的两组自变量赋予值。系统可以根据使用的字母自动判断自变量赋值的类型。 7.4 变量的控制和运算指令 7.4.1 算术运算和逻辑运算 在变量之间,变量和常量之间,可以进行各种运算,常用的见表7—5。

表7—5 算术和逻辑运算 运算的优先顺序如下: 1)函数。 2)乘除,逻辑与。 3)加减,逻辑或,逻辑异或。 可以用[ ]来改变顺序

7.4.2 控制指令 1.无条件转移(GOTO语句) 语句格式为: GOTO n 其中n为顺序号(1—9999),可用变量表示。例如: GOTO 1; GOTO #10; 2. 条件转移(IF 语句) 语句格式为: IF [条件式] GOTO n 条件式成立时,从顺序号为n的程序段开始执行;条件式不成立时,执行下一个程序段。 条件式有以下几类: # j EQ # K # j NE # K # j GT # K # j LT # K # j GE # K # j LE # K 条件式中变量#J或#K可以是常量也可以是表达式,条件式必须用括弧括起来。下面的程序可以得到1到10的和: O7100

宏程序编程

用户宏程序 虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序。使用时,加工程序可用一条简单指 令调出用户宏程序,和调用子程序完全一样。 一、变量 普通加工程序直接用数值指定G代码和移动距离;例如,G01和X100。 使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。 #1=#2+100; G01 X#1 F300; 说明: 1、变量的表示 计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。 例如:#1 表达式可以用于指定变量号。此时,表达式必须封闭在括号中。 例如:#[#1+#2-12] 2、变量的类型 变量根据变量号可以分成四种类型。 3、变量值的表示范围 局部变量和公共变量可以有0值或下面范围中的值: -1047至-10-29或10-29到1047 如果计算结果超出有效范围,则发出P/S报警No.111。 4、小数点的省略 当在程序中定义变量值时,小数点可以省略。 例:当定义#1=123;变量#1的实际值是123.000; 5、变量的引用 为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变 量时,要把表达式放在括号中。 例如:G01X[#1+#2]F#3; 被引用变量的值根据地址的最小设定单位自动地舍入。 例如:

当G00X#1;以1/1000mm的单位执行时,CNC把12.3456赋值给 变量#1,实际指令值为G00X12.346; 改变引用变量的值的符号,要把负号(一)放在#的前面。 例如:GOOX-#1; 当引用未定义的变量时,变量及地址字都被忽略。 例如: 当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0;。 6、未定义的变量 当变量值未定义时,这样的变量成为“空”变量。变量#0总是空变量。 它不能写,只能读。 (a)引用

数控宏程序实例

数控宏程序实例 第7章宏程序 7.3 宏程序调用 7.3.1 宏程序调用指令(G65) 在主程序中可以用G65调用宏程序。指令格式如下: G65 P L 〈自变量赋值〉; 其中:P指定宏程序号:L为重复调用次数(1—9999);自变量赋值是由地址和数值构成的,用以对宏程序中的局部变量赋值。 例如: 主程序: O7002 ... G65 P7100 L2 A1.0 B2.0 ... M30 宏程序: #3=#1+#2; IF [#3 GT 360] GOTO 9; G00 G91 X#3 N9 M99 7.3.2 自变量赋值 自变量赋值有两种类型。自变量I使用除去G,L,N,O,P以外的其他字母作为地址,自变量II可以使用A,B,C每个字母一次,I,J,K每个字母可使用十

次作为地址。表7—3和7—4分别为两种类型自变量赋值的地址和变量号码之间的对应关系: 表7—3 自变量赋值的地址和变量号码之间的对应关系 地址宏程序中变量地址宏程序中变量 A #1 Q #17 B #2 R #18 C #3 S #19 D #7 T #20 E #8 U #21 F #9 V #22 H #11 W #23 I #4 X #24 J #5 Y #25 K #6 Z #26 M #13 表7—4 自变量II的地址与变量号码之间的对应关系 地址宏程序中变量地址宏程序中变量 A #1 #18 B #2 #19 C #3 #20 #4 #21 #5 #22 #6 #23 #7 #24 #8 #25

#9 #26 #10 #27 #11 #28 #12 #29 #13 #30 #14 #31 #15 #32 #16 #33 #17 上表中的I,J,K的下标只表示顺序,并不写在实际命令中。在G65的程序段中,可以同时使用表4—1及表4—2中的两组自变量赋予值。系统可以根据使用的字母自动判断自变量赋值的类型。 7.4 变量的控制和运算指令 7.4.1 算术运算和逻辑运算 在变量之间,变量和常量之间,可以进行各种运算,常用的见表7—5。 表7—5 算术和逻辑运算 运算格式说明 赋值 #i=#j 加 #i=#j+#k 减 #i=#j-#k 乘 #i=#j*#k 除 #i=#j/#k 正弦 #i=sin[#j] 角度单位为度余弦 #i=cos[#j] 正切 #i=tan[#j]

浅谈数控编程中的宏程序

浅谈数控编程中的宏程序 江苏经贸技师学院王军歌 [摘要] 随着现代制造技术的发展和数控机床的日益普及,数控加工在我国得到广泛的应用,数控加工中很重要的一部分就是编程,从CAD/CAM软件出现以后,人们过分依赖CAD/CAM软件,使得无论程序大小,加工难易编程人员习惯使用各种CAD/CAM软件,而把手工编程遗忘了,尤其是博大精深的宏程序。宏程序在数控编程中不应该被遗忘,而是应该很好的使用,它有着自动编程软件不可取代的优势。 [关键词] 数控编程宏程序CAD/CAM 数控加工 一.引言 在CAD/CAM软件普遍存在的今天,手工编程的应用空间日趋减小,数控世界有一种说法很流行“宏程序已经没有什么用”,其实任何数控系统都有很多指令在一般情况下用不着,那他们是否也没有用呢?这显然不对,对宏程序也是如此,原因只是大家对宏程序不熟悉,往往误以为宏程序深不可测而已,在实际工作中,宏程序确实也有广泛的应用空间,并且能够方便手工编程,锻炼操作者的编程能力,帮助操作者更加深入的了解自动编程的本质。 二.认识宏程序 在一般的程序编制中程序字为常量,一个程序只能描述一个几何形状,当工件形状没有发生改变但是尺寸发生改变时,就没有办法了,只能重新进行编程,缺乏灵活性和适用性。当我们所要加工的零件如果形状没有发生变化只是尺寸发生了一定的变化的情况时,我们只需要在程序中给要发生变化的尺寸加上几个变量再加上必要的计算公式就可以了,当尺寸发生变化时只要改变这几个变量的赋值参数就可以了。 它是利用对变量的赋值和表达式来进行对程序的编辑的,这种有变量的程序叫宏程序。 三.宏程序与自动编程的比较 自动编程有自动编程的好处,但是自动编程也有其不利于加工方面的问题,在加工不规律的曲面时利用自动编程确实是很好,但是在加工有规律的曲面时就不见得了,加工有规律的工件的时候用宏程序加工要比用自动编程软件要强的

新代宏程序实例

1、REPEAT直到型循环 REPEAT <循环体> UNTIL <条件表达式> END_REPEAT; 说明:REPEAT直到型循环控制,先执行循环体,后判断条件表达式,当条件满足时退出循环。 例如: % @MACRO // 启动MACRO语法% @MACRO (宏指令开始) #1=-0.2 REPEAT REPEAT(重复) G01Z#1F80; G1X-20.F700; #2=#1-0.2; G1Z#2F80; G1X-53.F700; #1=#1-0.4; UNTIL (#1<-2.6) END_REPEAT; UNTIL(到…为止,在…以前)END(结束,终止)M30; 2、WHILE当型循环 WHILE <条件表达式> DO→<循环体>→END_WHILE; 说明:WHILE当型循环控制,先判断条件表达式,当条件满足时执行循环体,否则退出循环。例如: % @MACRO; #1=-0.2; WHILE (#14>-2.6) DO WHILE(虽然; 在…期间; 与…同时) IF #1<-2.6THEN EXIT; EXIT(退出; 退场; 离开; 去世) END_IF; G01Z#1F80; G1X-20.F700; #2=#1-0.2; G1Z#2F80; G1X-53.F700; #1=#1-0.4; END_WHILE; M30 3、FOR循环 FOR 翻译:p rep.为,为了; 倾向于; 关于; 当作; conj.因为,由于; FOR <循环变量> := <表达式1> TO <表达式2> [ BY <表达式3>] DO <循环体> END_FOR;

FANUC系统宏程式详解

宏程序的简单调用格式: 格式:G65 P程序序号 L重复次数变量分配 变量对照表 A #1 I #4 T #20 B #2 J #5 U #21 C #3 K #6 V #22 D #7 M #13 W #23 E #8 Q #17 X #24 F #9 R #18 Y #25 H #10 S #19 Z #26 控制命令 1.If [条件表达式] GOTO n 2.While [条件表达式] DO m End m 运算符号 相等:EQ 不等于: NE 大于:GT 小于:LT 大于等于:GE 小于等于:LE

FANUC系统宏程式 FANUC系统宏程序编程 一变量 普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。 #1=#2+100 G01 X#1 F300 说明: 变量的表示 计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。 例如:#1 表达式可以用于指定变量号。此时,表达式必须封闭在括号中。 例如:#[#1+#2-12] 变量的类型 变量根据变量号可以分成四种类型 变量号变量类型功能 #0 空变量该变量总是空,没有值能赋给该变量. #1-#33 局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初 始化为空.调用宏程序时,自变量对局部变量赋值, #100-#199 #500-#999 公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空. 变量#500-#999的数据保存,即使断电也不丢失. #1000 系统变量系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿 值. 变量值的范围 局部变量和公共变量可以有0值或下面范围中的值: -1047到-10-29或-10-2到-1047 如果计算结果超出有效范围,则发出P/S报警NO.111. 小数点的省略 当在程序中定义变量值时,小数点可以省略。 例:当定义#1=123;变量#1的实际值是123.000。 变量的引用 为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中。 例如:G01X[#1+#2]F#3; 被引用变量的值根据地址的最小设定单位自动地舍入。 例如: 当G00X#/;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346. 改变引用变量的值的符号,要把负号(-)放在#的前面。 例如:G00X-#1 当引用未定义的变量时,变量及地址都被忽略。 例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0。 双轨迹(双轨迹控制)的公共变量

数控宏程序的使用方法

数控宏程序的使用方法 一、A类宏程序 1)变量的定义和替换#i=#j 编程格式G65 H01 P#i Q#j 例G65 H01 P#101 Q1005;(#101=1005) G65 H01 P#101 Q-#112;(#101=-#112) 2)加法#i=#j+#k 编程格式G65 H02 P#i Q#j R#k 例G65 H02 P#101 Q#102 R#103;(#101=#102+#103) 3)减法#i=#j-#k 编程格式G65 H03 P#i Q#j R#k 例G65 H03 P#101 Q#102 R#103;(#101=#102-#103) 4)乘法#i=#j×#k 编程格式G65 H04 P#i Q#j R#k 例G65 H04 P#101 Q#102 R#103;(#101=#102×#103) 5)除法#i=#j / #k 编程格式G65 H05 P#i Q#j R#k 例G65 H05 P#101 Q#102 R#103;(#101=#102/#103) 6)平方根#i= 编程格式G65 H21 P#i Q#j 例G65 H21 P#101 Q#102;(#101= ) 7)绝对值#i=│#j│ 编程格式G65 H22 P#i Q#j 例G65 H22 P#101 Q#102;(#101=│#102│) 8)复合平方根1 #i= 编程格式G65 H27 P#i Q#j R#k 例G65 H27 P#101 Q#102 R#103;( #101= 9)复合平方根2 #i= 编程格式G65 H28 P#i Q#j R#k 例G65 H28 P#101 Q#102 R#103 1)逻辑或#i=#j OR #k 编程格式G65 H11 P#i Q#j R#k 例G65 H11 P#101 Q#102 R#103;(#101=#102 OR #103) 2)逻辑与#i=#j AND #k 编程格式G65 H12 P#i Q#j R#k 例G65 H12 P#101 Q#102 R#103;#101=#102 AND #103 (3)三角函数指令 1)正弦函数#i=#j×SIN(#k) 编程格式G65 H31 P#i Q#j R#k (单位:度) . 例G65 H31 P#101 Q#102 R#103;(#101=#102×SIN(#103)) 2)余弦函数#i=#j×COS(#k) 编程格式G65 H32 P#i Q#j R#k (单位:度) 例G65 H32 P#101 Q#102 R#103;(#101=#102×COS(#103)) 3)正切函数#i=#j×TAN#k 编程格式G65 H33 P#i Q#j R#k (单位:度) 例G65 H33 P#101 Q#102 R#103;(#101=#102×TAN(#103)) 4)反正切#i=A TAN(#j/#k) 编程格式G65 H34 P#i Q#j R#k (单位:度,0o≤ #j ≤360o) 例G65 H34 P#101 Q#102 R#103;(#101=A TAN(#102/#103) (4)控制类指令 编程格式G65 H80 Pn (n为程序段号) 例G65 H80 P120;(转移到N120) 2)条件转移1 #j EQ #k(=) 编程格式G65 H81 Pn Q#j R#k (n为程序段号) 例G65 H81 P1000 Q#101 R#102 当#101=#102,转移到N1000程序段;若#101≠ #102,执行下一程序段。 3)条件转移2 #j NE #k(≠) 编程格式G65 H82 Pn Q#j R#k (n为程序段号) 例G65 H82 P1000 Q#101 R#102 当#101≠ #102,转移到N1000程序段;若#101=#102,执行下一程序段。 4)条件转移3 #j GT #k (> ) 编程格式G65 H83 Pn Q#j R#k (n为程序段号) 例G65 H83 P1000 Q#101 R#102 当#101 > #102,转移到N1000程序段;若#101 ≤#102,执行下一程序段。 5)条件转移4 #j LT #k(<) 编程格式G65 H84 Pn Q#j R#k (n为程序段号) 例G65 H84 P1000 Q#101 R#102 当#101 < #102,转移到N1000;若#101 ≥ #102,执行下一程序段。 6)条件转移5 #j GE #k(≥) 编程格式G65 H85 Pn Q#j R#k (n为程序段号) 例G65 H85 P1000 Q#101 R#102 当#101≥ #102,转移到N1000;若#101<#102,执行下一程序段。 7)条件转移6 #j LE #k(≤) 编程格式G65 H86 Pn Q#j Q#k (n为程序段号) 例G65 H86 P1000 Q#101 R#102 当#101≤#102,转移到N1000;若#101>#102,执行下一程序段。 二、B类宏程序 1.定义 #I=#j 2.算术运算 #I=#j+#k (加) #I=#j-#k (减) #I=#j×#k (乘) #I=#j/#k (除) 3.1 逻辑函数之布尔函数 =EQ等于 ≠NE不等于 >GT大于 ]GOTO n 条件式:例:#j=#k用#j EQ #k 表示,即IF[#j EQ #k] GOTO n 3〉.条件转移2格式:IF[<条件式>]THEN #I 例:IF[#j EQ #k] THEN #a=#b 4〉.循环格式:WHILE [<条件式>] DOm ,(m=1、2、3) N10~~~~~~~~~ N20~~~~~~~~~~~~ ENDm (上下两个m只能为1、2、3且必须相 同,这样才能够成一段程序的循环) 1.说明1) 角度单位为度例:90度30分为90.5度 2) A TAN函数后的两个边长要用“1”隔开例:#1=A TAN[1]/[-1]时,#1为了35.0 3) ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入 例:设#1=1.2345,#2=2.3456,设定单位1μm G91X-#1;X-1.235 X-#2F300;X-2.346 X[#1+#2];X3.580 未返回原处,应改为X[ROUND[#1]+ROUND[#2]]; 4) 取整后的绝对值比原值大为上取整,反之为下取整例:设#1=1.2,#2=-1.2时若#3=FUP[#1]时,则#3=2.0 若#3=FIX[#1]时,则#3=1.0 若#3=FUP[#2]时,则#3=-2.0 若#3=FIX[#2]时,则#3=-1.0 5) 简写函数时,可只写开头2个字母例:ROUND→RO FIX→FI GOT O→GO 6) 优先级函数→乘除(*,1,AND)→加减(+,-,OR,XOR)例:#1=#2+#3*SIN[#4]; 7) 括号为中括号,最多5重,园括号用于注释语句例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重) 转移与循环指令

相关文档
相关文档 最新文档