宏程序常用符号和含义
宏程序基础知识资料

瑞鹄汽车模具有限公司内部教材第一章第一节宏程序基础知识常量与变量的含义常量与变量的含义及编程案例数控程序中含有变量的程序称为宏程序。
虽然子程序对编制相同的加工程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制同样的加工程序更简便。
常量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。
变量使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100G01 X#1 F300变量用变量符号(#)和后面的变量号指定。
例如:#1表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]变量根据变量号可以分成四种类型:1.空变量2.局部变量3.公共变量4.系统变量1.空变量:#0 该变量总是空,没有值能赋给该变量.2.局部变量:#1-#33局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空. 调用宏程序时,自变量对局部变量赋值.3.公共变量#100-#199 #500-#999公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失.4.系统变量:#1000以上的变量系统变量用于读和写CNC的各种数据,例如刀具补偿,当前位置信息,变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。
例如:当G00X#1;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346.改变引用变量的值的符号,要把负号(-)放在#的前面。
例如:G00X-#1当引用未定义的变量时,变量及地址都被忽略。
例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1Y#2的执行结果为G00X0未定义的变量当变量值未定义时,这样的变量成为空变量。
宏程序简述

EQ 等于 NE 不等于GT 大于 LT 小于GE 大于等于 LE 小于等于一变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100G01 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.改变引用变量的值的符号,要把负号(-)放在#的前面。
FANUC系统宏程式详解

宏程序的简单调用格式:格式: G65 P 程序序号 L 重复次数变量分配变量对照表控制命令1. If [ 条件表达式 ] GOTO n2. While [ 条件表达式 ] DO mEnd m 运算符号相等:EQ 不等于: NE 大于:GT小于:LT 大于等于: GE 小于等于: LEFANUC系统宏程式FANUC系统宏程序编程一变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0 。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI 面板上的操作改变。
#1=#2+100G01 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 。
变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
宏程序

宏程序一、概念:含有变量的、能够根据设定数据变化而自行计算的,并运用的程序。
(一)格式:1、作为子程序的程序段。
2、作为结构化的子程序。
(用G65/G66调用)(二)分类:1、A类宏程序:调系统参数后调用即可。
2、B类宏程序:向用户开放的,自己编写的宏程序。
(三)步骤:1、工艺设计(刀具、走刀、流程)2、流程图:决定宏程序的思路,根据工艺进行设计。
二、常用指令(一)变量类型:1、局部变量:#1~#33可自由赋值,定义。
但在同一级程序中,同一个符号含义相同。
断电后初始化,清空不起作用,故称局部变量。
Ⅰ类地址宏变量Ⅰ类地址宏变量Ⅰ类地址宏变量A #1 J #5 V #22B #2 K #6 W #23C #3 M #13 X #24D #7 Q #17 Y #25E #8 R #18 Z #26F #9 S #19H #11 T #20I #4 U #21Ⅱ类地址宏变量Ⅱ类地址宏变量Ⅱ类地址宏变量A #1 J1#5 K2#9..B #2 K1#6 .......... #..........C #3 I2#7 J33#33I1#4 J2#8 K33#33使用过程中,Ⅰ类地址和Ⅱ地址可分开使用,也可以混合使用,在应用过程中,以后一个赋值为准,(即后指定的有效)CNC自动识别。
编程时I、J、K后的小数子角码不出现(CNC按顺序自动识别:I30、I50表示I1为30赋值#4,I2为50赋值于#7,即#4=30、#7=50)。
例:G65 P1000 I-3.0 I4.0 D5.0;含义为:调用O1000号子程序,其中的#4=-3.0,#7=5.0,(其中I4.0赋值#7=4.0、D5.0赋值#7=5.0,后一个有效,I4.0失效)。
2、公共变量:#100~#131、#500~#531。
在编程中,尽量避免使用公共变量,即使在不同的程序当中,同一变量含义相同,赋值也相同,在调用当中要千万小心。
3、系统变量:#2001~#2400、#11001~#12400(刀补)#4001~#4130、G、S、M等代码#5001~#5104;G54~G59等公共变量与系统变量一般都不用,重要学习的是基本Ⅰ、Ⅱ类变量的局部变量。
cnc宏程序代码大全(加工中心指令代码大全)

cnc宏程序代码大全(加工中心指令代码大全)UG编程粥2018-9-111.字母在数控程序中的意义o:程序号,设置程序号n:节目段号,设置节目序号。
g:准备功能X/Y/Z:尺寸字符,轴移动指令视听:附加轴移动指令r:圆弧半径I/J/K:圆弧中心坐标(矢量)外宾:喂,设定喂量。
s:主轴速度,设定主轴速度。
t:刀具功能,设置刀具号。
m:辅助功能,开/关控制功能H/D:刀具偏置号,设置刀具偏置号。
P/X:延迟,设置延迟时间。
p:程序号指令,设置子程序号(如子程序调用:M98P1000)L:重复,设置子程序或固定循环的重复次数(如M98 P1000 L2,L1省略L)P/W/R/Q:参数,固定周期使用的参数(如敲击G98/(G99)G84 X_ Y_ R_ Z_ P_ F_)2.通用g代码解释G00:定位或快速移动G01:线性插值G02:圆弧插补/螺旋插补CWG03:圆弧插补/螺旋插补G04:停留时间或延迟时间例如:G04 X1000(或G04 X1.0)G04 P1000表示停留1秒。
G09:准确停止检查或准确停止检查(检查是否在目标范围内)G10:可编程数据输入G17:选择XPYP平面XP: x轴或其平行轴。
G18:选择ZPXP平面的YP: Y轴或其平行轴。
G19:选择YPZP平面ZP: Z轴或其平行轴。
G20:英寸输入G21:毫米输入G28:返回参考点检测格式:G91/(G90) G28 X__ Y__ Z__通过中间点X _ _ _ _ _ Y _ _ _ _ _ Z _ _(绝对值/增量值指令)返回参考点G29:从参考点返回G91/(G90) G29 X__ Y__ Z__通过参考点从起点到目标点X__ Y__ Z__的指令(绝对值/增量值指令)。
G30返回第二、第三和第四参考点G91/(G90)G30 P2 X _ _ Y _ _ Z _ _;回到第二个参考点(P2可以省略。
)G91/(G90)G30 P3 X _ _ Y _ _ Z _ _;回到第三个参考点G91/(G90)G30 P4 X _ _ Y _ _ Z _ _;回到第四个参考点。
宏程序基本知识

程序
G54G17G90G40
G00Z30M03S2000 定位于G54上方30mm处
X=R24Y=R25 移动刀具至圆心上方
AA:Z=-R4+1
接近工件
R4=R4+R17
指定当前加工高度
G01Z=-R4F50 下刀至加工位置
L10
调用子程序加工当前层
IF R4<R2-R17 GOTOB AA 如果当前加工深度比预定的还少一个层间距以上时,
G03I=-R8
逆时针走全圆
IF R8<R6-R5 GOTOB BB当当前偏移距离比最大走圆半径还少一个行距以上
时,继续加工
G01X=R24+R6
否则刀具移动到最大圆的走刀起点
G03I=-R6
逆时针走全圆
G00Z=-R4+0.5
提刀0.5mm
X=R24Y=R25
移动至孔的中心位置
RET
子程序结束,返回主程序
运算
控制指令
程序一般是顺序执行,使用控制指令起到控制程序流向的作用,常用的有下列三种: 1、无条件分支 格式:GOTOn 例:GOTO100,含义为程序转向N100程序段处。 2、条件分支 格式:IF[条件表达式]GOTOn 含义:若条件表达式成立,则程序转向段号为n的程序段处,否则继续执行下一句程序。 3、循环 格式:WHILE[条件表达式]DOm(m=1、2、3) ------- ENDm 含义:当条件满足时,招待WHILE与END之间的程序段,否则执行ENDm下一句程序段。
关量,电源关时不消失。 (3)系统变量(#2000~):如刀具补偿值#2000~#2200,工件偏置#5201~#5326. 3、变量的使用 在地址符(O、N、G、L、P及/除外)后接变量,如: F#1:如果#1=100.0,则表示F100 Z-#26:如果#26=3.0,则表示Z-3.0
新代系统常用小MACRO

常用简单MACRO使用G20,G21做公英制转换:G20:更改文件名为G0020,存放在C:CNC\MACRO MACRO内容:%@MACROG70;M99;G21:更改文件名为G0021,存放在C:CNC\MACRO MACRO内容:%@MACROG71;M99;全自动和半自动切换:M91:更改文件名为M0091,存放在C:CNC\MACRO MACRO内容:%@MACROWAIT();IF @11024=0THENM99;END_IF;M99P#16;配合使用PLC部分:新代系统宏程序格式1.%@MACRO起头当标题行含有关键字@MACRO时,整个档案就会以MACRO语法处理,如果该行无@MACRO时此档案就会被视为一般ISO档案格式处理,无法使用MACRO语法。
且@MACRO关键字必须是大写字母!! 2.每一行结束需加“;”3.程式最后需加M99,才能返回到主程式,当前编辑的正是主程式不用跳转的话就可以直接M30结尾4.指定变量需使用“:=”符号,不可仅用“=”符号,新代系统中等号=只是用来进行比较两值大小时所用。
对变量赋值一律使用“:=”5.档名储存需依以下原则:a)扩充G码撰写 G100 之MACRO,需将该MACRO 程序存在C:\CNC\MACRO目录底下,且文件名需为G0100,不需扩展名。
撰写 G100.1 之MACRO,需将该MACRO 程序存在C:\CNC\MACRO 目录底下,且文件名需为G100001,不需扩展名。
b)非扩充G码此时如果为主程式的话随意命名即可,如果是主程式中有调用副程式,那么例如:G65P10如上那么我们副程式需命名为O0010,保存路径为C:\CNC\NCFILES,主程式路径一样。
6.系统在执行加工时对于MACRO程式会事先预解,因此MACRO 执行速度会超前G。
Mcode指令,因此变量指定或资料读取时须与G。
Mcode指令发出时间相同时,请对变量指定或资料读取前加WAIT()指令,否则该变量指定或资料读取无法与G、MCODE同步。
宏程序编程代码

宏程序编程代码常见宏程序符号与代码归类2.1 A类宏程序的运算和转移指令表指令 H 码功能定义 G65 H01 定义、替换 #i=#jG65 H02 加 #i=#j+#k G65 H03 减 #i=#j-#k G65 H04 乘#i=#j×#k G65 H05 除 #i=#j?#k G65 H11 逻辑或 #i=#jOR#k G65 H12 逻辑与 #i=#jAND#k G65 H13异或 #i=#jXOR#k G65 H21 平方根 # i,?# j G65 H22 绝对值 # i,|# j| G65 H23 求余 # i,# j-trunc,# j/# k,? # k G65 H24 十进制码变二进制 # i,BIN,# j,G65 H25 二进制码变十进制 # i,BCD,# j, G65 H26 复合乘/除# i,,# i × # j,?# k G65 H27 复合平方根1 # i,?# j2,# k2 G65 H28 复合平方根2 # i,?#j2-# k2 G65 H31 正弦 # i,# j ? SIN ,# k, G65 H32 余弦 # i,# j ? COS ,# k, G65 H33 正切 # i,# j ? TAN,# k, G65 H34 反正切 # i,ATAN,# j/# k, G65 H80 无条件转移 GO TO n G65 H81 条件转移1(EQ) IF # j,# k,GOTOn G65 H82 条件转移2(NE) IF # j?# k,GOTOn G65 H83 条件转移3(GT) IF # j,# k,GOTOn G65 H84 条件转移4(LT) IF # j,# k,GOTOn G65 H85 条件转移5(GE) IF # j?# k,GOTOn G65 H86 条件转移6(LE) IF # j?# k,GOTOn G65 H99 产生P/S报警 PS报警号500,n出现2.2 B类宏程序的运算和转移指令表功能格式备注与示例定义、转换 #i=#j #100=#1,#100=30.0 加#i=#j+#k #100=#1+#2#100=100.0-#2 减 #i=#j-#k#100=#1*#2 乘 #i=#j*#k#100=#1/30 除 #i=#j/#k正弦 #i=SIN[#j] #100=SIN[#1]#100=COS[#36.3+#2] 反正弦 #i=ASIN[#j]#100=ATAN[#1]/[#2] 余弦 #i=COS[#j]反余弦 #i=ACOS[#j]正切 #i=TAN[#j]反正切 #i=ATAN[#j]/[#k]平方根 #i=SQRT[#j] #100=SQRT[#1*#1-100]#100=EXP[#1] 绝对值 #i=ABS[#j]舍入 #i=ROUND[#j]上取整 #i=FIX[#j]下取整 #i=FUP[#j]自然对数 #i=LN[#j]指数函数 #i=EXP[#j]或 #i=#j OR #k 逻辑运算一位一位地按二进制执行异或 #i=#j XOR #k与 #i=#j AND #kBCD转BIN BIN #i=BIN[#j] 用于与PMC的信号交换 BIN转BCD BCD #i=BCD[#j]数控车床加工中常用的B类宏程序分析3.1 双曲线程序曲线方程编程原点曲线方程原点#1#101 为方程中Z坐标(起点Z=72)#102 为方程中X坐标(起点半径X=3.5) #103 为工件坐标系中Z坐标,#103=#101-72.0 #104 为工件坐标系中 X坐标,#104=R2*2; 精加工程序如下: O001……G00 X9.0 Z2.0; 宏程序起点 #101=72.0;#102=3.5;N100 #103=#101-72.0; 跳转目标程序段 #104=#102*2;G01 X#104 Z#103;#101=#101-0.2; Z坐标每次增量为-0.2 mm#101=36/#101+3; 变量运算出X坐标 IF[#101GE2.0] GOTO100; 有条件跳转G28 U0 W0 M303.2正弦曲线程序正弦曲线#101 为正弦曲线角度变量#102 为正弦曲线各点X坐标#103 为正弦曲线各点Z坐标O0001……#101=90.0; 正弦曲线角度赋初值 #103=-20; 曲线Z坐标赋初值N100#102=34+6*SIN[#101] 变量X坐标值 G01X#102 Z#103 F0.15; 直线段拟合曲线 #101=#101-0.5 角度增量为-0.5度 #103=#103-0.05 Z坐标增量为-0.05mmIF[#101GE-630.0]GOTO100 条件判断M303.3 椭圆曲线程序椭圆方程椭圆中点#101 为椭圆长轴值#102 为椭圆短轴值#103 为椭圆Z坐标起点O001……#101=90;#102=48;#103=90;WHILE[#103GE0.0]DO1; 条件判断 #104=#102*SQRT[#101*#101-#103*#103]/#101; X函数值变量 G01 X[2*#104] Z#103;#103=#103-0.2; Z坐标增量-0.2mmEND1;……M303.4抛物线程序抛物线方程O001……#101=0 抛物线Z轴起始值-20*#101 ,;X函数值变量 N100#102=2*SQRT,G01 X[2*#2] Z#1;Z坐标增量-0.5mm #101=#101-0.5;IF,#1GE-10,GOTO100; 条件判断……M30数控加工宏程序实例在第三章中分析了在数控车床加工中常遇到的宏程序编程方式问题,在本章将进行实例对B类宏程序的两种不同的语句(IF GOTO和WHILE DO)进行说明.程序以FAUNC-Oi系统的格式编写4.1 IF语句实例1、程序计算说明: 2由抛物线方程Z=-X/10得X=10 ,故直线段起点X坐标值X=20。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
宏程序的常用符号和含义
符号含义符号含义
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。
正六边形
图形 详解。