用户宏程序

合集下载

第十章用户宏程序

第十章用户宏程序

二、变量





1、变量的表示: 一个变量由符号#和变量序号组成,如: #100、#200等。还可以用表达式进行表示, 但其表达式必须全部写入“[]”中,如: # [#1+#2+10],当#1=10,#2=100时,该变 量表示#120( #—变量符号。 120—变量 号。) 2、变量的引用: 引用变量也可以采用表达式。 例:G01X[#100-30.0]Y-#101F[#101+#103]; 当#100=100.0; #101=50.0、#103=80.0时, 上式即表示为G01X70.0Y-50.0F130.
功能 或 异或 与 BCD转BIN 格式 #i=#jOR#k #i=#jXOR#k #i=#jAND#k #i=BIN[#j] 备注与示例 逻辑运算一位一 位地按二进制执 行 用于与PMC的信 号交换
BID转BCD
#i=BCD[#j]




注意: 1、函数SIN、COS是度,分和秒要换算成度。 如90°30’表示为90.5°,30°18’表示为 30.3°。 2、宏程序数学计算的次序依次为:函数运算 (SIN、COS、ATAN等),乘和除运算(*、/、 AND等),加和减运算(+、—、OR、XOR 等)。例:#1=#2=#3*SIN[#4]; 运算次序为: (1)函数SIN[#4]。 (2)乘和除运算#3*SIN[#4];




3、变量的赋值: 1)直接赋值。变量可以在操作面板上用MDI方式直接 赋值,也可以在程序中以等式方式赋值,但等号左边不 能用表达式。 例:#100=100.0; #100=30.0+20.0; 2)引数赋值。宏程序以子程序方式出现,所用的变量 可在宏程序调用时赋值。 例:G65 P1000 X100.0 Y30.0 Z20.0 F100.0; 该处的P为宏程序的名,X、Y、Z不代表坐标字,F也 不代表进给字,而是对应于宏程序中的变量号,变量的 具体数值由引数后的数值决定。引数宏程序体中的变量 对应关系有两种,见表1及表2所列,这两种方法可以混 用,其中G、L、N、O、P不能作为引数代替变量赋值。

第五章 用户宏程序

第五章 用户宏程序

第五章用户宏程序在数控编程加工中,经常遇到由椭圆、抛物线、双曲线等非圆曲线组成的零件轮廓和三位曲面轮廓,用一般的插补指令难以编程和加工,可以采用编制宏程序的方法。

所谓宏就是一组命令的集合。

在数控编程中,将一组编程指令组合在一起就是数控宏程序,使用时用一个指令调用即可。

像固定循环指令、多重循环指令就是用宏程序编写的,这些宏程序是由生产厂家开发的,并且固化在数控系统中,用户只能使用,不能编辑。

一些宏程序是对用户开放的,用户根据系统提供的编程格式进行编写、存储,这类宏程序就是用户宏程序。

通常说的宏程序就是指用户宏程序。

宏程序的主体类似子程序体,但是,子程序中使用的具体的数值,不能使用变量,宏程序主体中,能使用变量,可以给变量赋值、运算等。

FANUC系统的宏程序有两种,一种是A类宏程序,一种是B类宏程序。

在一些老的系统中,如FANUC 0TD系统,由于它的MDI键盘上没有公式符号,因此使用A类宏程序。

A类宏程序由G代码和H代码组成,这些代码不容易记忆,用户使用很不方便,逐渐被淘汰。

现在数控系统多数使用B类宏程序,B类宏程序直接用公式和语言进行编写,用户使用很方便。

第一节 A类宏程序一、变量在常规的主程序和子程序内,总是将一个具体的数值赋给一个地址。

为了使程序更具通用性、更加灵活,在宏程序中设置了变量,即将变量赋给一个地址。

1、变量的表示变量可以用“#”号和跟随其后的变量序号来表示:#i(i=1,2,3......)例:#5, #109, #501。

2、变量的引用将跟随在一个地址后的数值用一个变量来代替,即引入了变量。

例:对于F#103,若#103=50时,则为F50;对于Z-#110,若#110=100时,则Z为-100;对于G#130,若#130=3时,则为G03。

3、变量的类型系统的变量分为局部变量、公共变量和系统变量三类。

(1)、局部变量所谓局部变量就是宏程序中局部使用的变量。

也就是说,在某一程序中使用的变量#i和另一程序中使用的变量#i是不同的,局部变量的序号为:#1~#33。

用户宏程序编程说明

用户宏程序编程说明

实训项目:宏程序椭圆铣削加工
• 椭圆的解析方程
x2 y2 2 1 2 a b
• 椭圆的参数方程:
y
b t
x a cos(t ) y b sin(t )
a
x
实训项目:宏程序椭圆铣削加工
假定椭圆长轴(X向)、短轴(Y向)半长分别为A和B。 编程条件:编程原点在椭圆中心,长轴A=50,短轴B=30,椭圆轮廓为外轮廓,下 刀点在椭圆右极限点,刀具直径φ18,加工深度10mm。
位置信息
局部变量的级别
模态调用(G66)
用G代码调用宏程序的参数号和程序号之间的对应关系
用M代码调用宏程序的参数号和程序号之间的对应关系
用M代码调用子程序的参数号和程序号之间的对应关系
加工时间输入
用户宏程序应用实例①
【例1】圆周等份孔加工:在半径I的圆周上钻削H个等分孔,已知加工第一个 孔的起始角度为A,相邻两孔之间角度的增量为B,圆 #4000~21 #4107 #4109 #4111 #4113 #4114 功能 G 代码明细 D 代码 F 代码 H 代码 M 代码 顺序号 变量号 #4115 #4119 #4120 功能 程序号 S 代码 T 代码
例如 : #100 = #4120 ( 储存刀具号码至变量 #100 )
工件零点偏移值
G54 (P1) G55 (P2) G56 (P3) G57 (P4) G58 (P5) G59 (P6) External (P0) #5221 ~ #5223 #5241 ~ #5243 #5261 ~ #5263 #5281 ~ #5283 #5301 ~ #5303 #5321 ~ #5323 #5201 ~ #5203 X, Y, Z X, Y, Z X, Y, Z X, Y, Z X, Y, Z X, Y, Z X, Y, Z

用户宏程序

用户宏程序

用户宏程序FS16,18,20,21,Power Mate i-D/H/F,i系列大致都相同,FS15除追加的功能外(FS15i),FS10/11/12也相同.由于变量号不同,可能有的功能不能用.以FS-16i为准.使用注意事项:1)。

变更参数时,把原来值记录下来,用后再将参数恢复为原来值.2).不要删除他人编制的程序,可事先附上程序名和制作者名字.3).FS15-A时,再自动运行前,要返回参考点.一.设定参数:1.FS16I系列:1).MDI方式.2).紧急停止状态.3).多次按OFFSET键,直至显示处SETTING的画面.SETTING4).光标移到”写入参数”上,按1 INPUT键.(出现100#报警).5).连续按SYSTEM键,选择参数画面.6).输入参数号,按Search键,移动光标.(也可用页面键↓↑和光标键↓↑检索).7).位形参数用ON: 1OFF: 0, 数值参数用+输入和输入.(位参数若按光标→键,光标以位为单位移动.8).连续按OFFSET键返回SETTING的Handy(初始)画面.9).将光标移到”写入参数”上,按0 INPUT,关闭写入开关.10).按RESET键,解除100#报警.2.FS15i系列:1).MDI方式.2).按∠软键,显示功能菜单.3).按SETTING软键,显示SETTING画面.4).按Chapter(章节)软键.5).按General(一般)软键.6).输入8000再按No.INPUT,光标在8000号上.7).按1 INPUT软键,把”PWE”置为1. (出现报警可继续作业)8)按∠软键,显示功能菜单。

9)按SETTING软键,显示SETTING画面。

10)输入参数号后,按NO。

INPUT软键。

11)按设定值,按INPUT。

12)按∠软键,显示功能菜单。

13)按SETTING软键(光标应在8000号上)。

14)按0,软键INPUT后,将“PWE“设置为0。

FUNAC用户宏程序概要

FUNAC用户宏程序概要
#10=20 X#10 不表示X20
… …
断电后清空,调用宏程序时代入变量值
2. 公共变量#100~#149,#500~#531
各用户宏程序内公用的变量
例:上例中#10改用#100时,B宏程序中的
X#100表示X20
#100~#149 断电后清空
7) 括号为中括号,最多5重,园括号用于注释语句 例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)
一. 转移与循环指令
1.无条件的转移
格式: GOTO 1;
GOTO #10;
2.条件转移
格式: IF[<条件式>] GOTO n
条件式:
#j EQ#k 表示=
#j NE#k 表示≠
#j GT#k 表示>
#j LT#k 表示<
#j GE#k 表示≥
#j LE#k 表示≤
例: IF[#1 GT 10] GOTO 100;

N100 G00 691 X10;
例:求1到10之和
O9500;
#1=0
#2=1
FUNAC用 户 宏 程 序
用 户 宏 程 序
能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。
l 所存入的这一系列指令——用户宏程序
l 调用宏程序的指令————宏指令
l 特点:使用变量
一. 变量的表示和使用
#500~#531保持型变量(断电后不丢失)
3. 系统变量
固定用途的变量,其值取决于系统的状态
例:#2001值为1号刀补X轴补偿值

用户宏程序

用户宏程序

系统变量可读、可写,用于保存NC的各种数据项,如:当 前位置、刀具补偿值等。
2、宏指令G65
3、宏功能指令
3、宏功能指令
3、宏功能指令
4、使用注意5、举例5、举例三、B类宏功能应用
三、B类宏功能应用
三、B类宏功能应用
三、B类宏功能应用
三、B类宏功能应用
三、B类宏功能应用
全局变量 Common variabl es
全局变量可在不同宏程序之间共享,当电源关闭时, #100~#149被清空,而#500~#531的值仍保留。在某一 运算中,#150~#199,#532~#999的变量可被使用,但 存储器磁带长度不得小于8.5m。
#1000~#9999
系统变量 System variabl es
用户宏程序
一、概念
用户宏程序(Custom macro)是以变量的组合,通过各种算术和 逻辑运算、转移和循环等命令,而编制的一种可以灵活运用 的程序,只要改变变量的值,即可完成不同的加工操作。 二、特点 ■用户宏功能主体是一系列指令,相当于子程序体。 ■宏指令是代表一系列指令的总指令,相当于子程序调用指令。 ■用户宏功能的最大特点是,可以对变量进行运算,使程序应 用更加灵活、方便。。 ■用户宏功能有A、B两类。
(3)变量的类型
变量号 #0 变量类型 空变量 功 能
该变量通常为空(null),该变量不能赋值
#1~#33
局部变量 Local Variabl es
局部变量只能在宏程序内部使用,用于保存数据,如运算 结果等。当电源关闭时,局部变量被清空,而当宏程 序被调用时,(调用)参数被赋值给局部变量。
#100~#149(#199) #500~#531(#999)

数控车床华中系统用户宏程序编程

数控车床华中系统用户宏程序编程

如图2,Z坐标为自变量#2,则X坐标为因变量#1,那么X用Z表示为:
分别用宏变量#1、#2代替上式中的X、Z,即得因变量#1相对于自变量#2的宏表达式:
如图1,Z坐标为自变量#2,则X坐标为因变量#1,那么X用Z表示为:
3、如何进行函数变换,确定因变量相对于自变量的宏表达式

如图3,X坐标为自变量#1,因Z坐标为因变量#2,那么Z用X表示为:
IF 条件表达式 IF 条件表达式
02
… …
ELSE ENDIF

05
ENDIF
格式:WHILE 条件表达式

ENDW
5、循环语句WHILE,ENDW
二、公式曲线宏程序编程模板的具体应用实例
运用以上公式曲线宏程序模板,结合粗加工循环指令,就可以快速准确实现零件公式曲线轮廓的编程和加工。具体应用示例如下: 例1:如图1所示零件的外轮廓粗精加参考程序如下(设毛坯为直径25毫米的棒料): %0001(程序头) T0101(调用01号外圆刀及01号刀具偏置补偿) G90 M03 S700(绝对值编程;主轴以700转/分正转) G00 X33 Z2(快速定位到粗加工循环起点) G71 U1 R0.5 P10 Q20 X0.6 F100(外径粗车循环) N10 G01 X10 F60 S1000(精加工起始程序段) Z-10 X24 Z-22(公式曲线起点) #2=8(设Z为自变量#2,给自变量#2赋值8:Z1=8) WHILE #2 GE [-8](自变量#2的终止值-8:Z2=-8) (因变量#1: 用#1、#2代替X、Z) #11=-#1+15(工件坐标系下的X坐标值#11:编程使用的是负轮廓,#1前冠以负;ΔX=15) #22=#2-30(工件坐标系下的Z坐标值#22:ΔZ=-30) G01 X[2*#11] Z[#22](直线插补,X为直径编程) #2=#2-0.5(自变量以步长0.5变化) ENDW(循环结束) N20 G01 Z-50(精加工终止程序段) G00 X100 Z80(快速定位到退刀点) M30(程序结束)

FANUC用户宏程序编程操作说明

FANUC用户宏程序编程操作说明

FANUC用户宏程序编程操作说明一、宏程序的概念和作用宏程序是一种FANUC机器人控制器中的编程语言,用于定义和执行一系列操作指令。

宏程序可以通过使用特定的编程语法,实现自动化的工作过程。

在机器人控制器上创建和调用宏程序可以有效提高生产效率,减少人力成本。

4.确认并保存宏程序。

确保没有语法错误,并将其保存在机器人控制器的内存中。

三、宏程序的调用和执行1.在主程序中调用宏程序。

可以使用特定的指令来调用已创建的宏程序,以便在工作流程中执行相关的任务。

2.配置宏程序的输入参数。

在调用宏程序之前,可以设置相关的输入参数,以便宏程序能够根据不同的情况执行不同的动作。

3.执行宏程序。

一旦宏程序被调用和配置完成,机器人控制器将根据宏程序中定义的指令序列依次执行相应的动作。

4.检查宏程序执行结果。

可以通过监视机器人、制作运动轨迹的视觉效果或通过输出信号检查机器人执行宏程序后的运动状态,确保宏程序的执行效果符合预期。

四、宏程序的调试和优化1.进行宏程序的语法和逻辑检查。

在调用和执行宏程序之前,可以使用FANUC机器人控制器提供的调试工具对宏程序进行语法和逻辑检查,以确保程序的正确性。

2.调整宏程序的时间和空间复杂度。

根据实际应用需求和机器人控制器的性能,可以对宏程序进行适当的优化,以减少程序执行时间和占用的内存空间。

3.进行宏程序的场景仿真。

在实际生产环境之前,可以使用机器人控制器提供的仿真工具对宏程序进行虚拟场景的测试,以确保宏程序的执行效果满足预期,同时减少实际生产中的错误和故障。

五、宏程序的应用示例1.示教和运动控制:通过将示教动作转化为相应的宏指令,可以实现机器人在特定位置和角度上的运动控制,以完成精确的操作。

2.任务自动化:将一系列任务步骤组织成宏程序,可以实现从物料处理到产品组装等一系列任务的自动化执行。

3.智能感应:通过编写合适的宏指令,可以实现机器人对环境的感知和判断,并根据实际情况自动调整动作和运动轨迹。

广数 A类用户宏程序

广数 A类用户宏程序

h
12
5)G65 H84 Pn Q#J R#K; 例 G65 H84 P1000 Q#101 R#102; 当#101 < #102 时,转移到N1000 程序段;当#101≥#102 时,程序继续执行。 6)G65 H85 Pn Q#J R#K; 例 G65 H85 P1000 Q#101 R#102; 当#101≥#102 时,转移到N1000 程序段;当#101 < #102 时,程序继续执行。
h
8
指令所代表的意义为:#i = #j ○ # k;○代表运算符号, 它由Hm指定。
如: G65 H02 P #100 Q #101 R #102 ;表示#100 = #101 + #102 ; G65 H03 P #100 Q #101 R15; 表示#100 = #101 -15 ; G65 H04 P #100 Q -100 R #102; 表示#100 = -100 × #102; G65 H05 P#100 Q -100 R #102; 表示#100 = -100 ÷ #102。
h
10
(2)宏程序的转移指令 1)G65 H80 Pn; (n:目标程序段号,以下相同) 例 G65 H80 P120; 该程序段指令无条件转移到N120程序段。 2)G65 H81 Pn Q#J R#K; 例 G65 H81 P1000 Q # 101 R # 102; 当#101 = #102 时,转移到N1000程序段,当#101≠#102 时,程序继续执行。
#I=(#i ×#j)÷#k
G65 H27 复合平方根1
#I= # j2#k2
G65 H28 复合平方根2
#I= # j2#k2
G65 H31 正弦

法那克用户宏程序

法那克用户宏程序

用户宏程序虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。

可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序。

使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。

1(最多999次)1一、变量1、变量使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用MDI面板上的操作改变。

#1=#2+100;G01 X#1 F300;2、变量的表示计算机允许使用变量名,用户宏程序不行。

变量用变量符号(#)和后面的变量号指定。

表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

例如: #1#[#1+#2-12]3、变量的类型4、变量值得范围局部变量和公共变量可以有0值或下面范围中的值:-1047至-10-29或 10-29至10475、变量的引用为在程序中使用变量值,指定后跟变量号的地址。

当用表达式指定变量时,把表达式放在括号中。

例如:G01 X#1 F#[#2+#3]被引用变量的值根据地址的最小设定单位自动地舍入。

例如: G00 X#1, 以1/1000mm的单位执行时,CNC把12.3456赋值给变量#1,实际指令值为G00 X12.346;。

改变引用变量的值的符号,要把负号(一)放在#的前面。

例如:G00 X-#1;当引用未定义的变量时,变量及地址字都被忽略。

例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1Y#2的执行结果为:G00X0;6、未定义的变量变量值未定义时,这样的变量成为“空”变量。

变量#0总是空变量。

它不能写,只能读。

(1)引用1(2)运算1(3)条件表达式7、限制程序号、顺序号和程序跳转号不能使用变量例如:O#1;N#2G00X100.0/#3Y200.0二、系统变量1、刀具补偿值2、时间信息3、自动运行控制可以改变自动运行的控制状态●当电源接通时,该变量的值为0。

宏程序的基本概念知识讲解

宏程序的基本概念知识讲解

宏程序的基本概念知识讲解精品文档数控铣削宏程序编程(一)一、宏程序的基本概念1、宏程序的定义以一组子程序的形式存储并带有变量的程序称为用户宏程序,简称宏程序;调用宏程序的指令称为“用户宏程序指令”,或宏程序调用指令(简称宏指令)。

宏程序与普通程序相比较,普通的程序字为常量,一个程序只能描述一个几何形状,所以缺乏灵活性和适用性。

而在用户宏程序的本体中,可以使用变量进行编程,还可以用宏指令对这些变量进行赋值、运算等处理。

通过使用宏程序能执行一些有规律变化(如非圆二次曲线轮廓)的动作。

宏程序分A 类和B类两种,FANUCi系统采用B类宏程序进行编程。

2、宏程序中的变量在常规的主程序和子程序内,总是将一个具体的数值赋给一个地址,为了使程序更加具有通用性、灵活性,故在宏程序中设置了变量。

1)、变量的表示:一个变量由符号“#”和变量序号组成,如:#1(1=1,2,……)。

此外,变量还可以用表达式进行表示,但其表达式必须全部写入方括号“ []”中。

例:#100,#500,#5,#[#1+#2+#10];2)、变量的引用:将跟随在地址符后的数值用变量来代替的过程称为引用变量。

同样,引用变量也可以用表达式。

例G01X#100 Y—#101F[#101+#103];精品文档精品文档当#100=100.0、#101=50.0、#103=80.0时,上例即表示为G01 X100.0Y50.0 F130;3)、变量的种类:变量分为局部变量、公共变量(全局变量)和体系变量三种。

在A、B类宏步伐中,其分类均相同。

A、局部变量(#1〜#33)是在宏步伐中局部使用的变量。

当宏步伐C调用宏步伐D而且都有变量#1时,由于变量#1服务于分歧的局部,所以C中的#1与D中的#1不是同一个变量,因而可以赋予分歧得不偿失值,且互不影响。

封闭电源时,局部变量被初始化成“空”。

宏调用时,自变量分派给局部变量。

B、公共变量(#100〜# 1 49/# 1 99;#500〜#549/#599)贯穿于整个程序过程。

用户宏程序及应用

用户宏程序及应用

#I=#J OR #k #I=#J XOR #k #I=#J AND #k #I=BIN[#J] #I=BCD[#J]
逻辑运算一位一位地按二进 制数执行
用于与PMC的信号交换
上一页 返回
表10 运算次序
例:#1=#2+#3*SIN[#4]
1 2 3
1、2、3表示运算次序
返回
表11 括号运算级数
例:#1=SIN[ [ [ #2 + #3 ] * #4 + #5 ] * #6 ]
G65 H01 P#100 Q40000;
#100=40mm
N10
G65 H01 P#101 Q20000;
#101=20 mm
N15
G65 H01 P#102 Q40000;
#102=40mm(初始值)
N20
G65 H28 P#103 Q#100 P#102;
#103=
#1002 #1022
下一页 返回
上一页 下一页 返回
A类宏程序编程

③ 在使用宏程序运算指令时,如果变量以角度形式指定, 其单位是0.001º。 ④ 在各运算中如果必要的Q、R没有指定,系统自动将其 值指定为“0”参与计算。



3. 转移指令
宏程序的转移指令和运算指令相似,是通过指令G65的不 同表达形式来实现的。


4. 编程应用
K9
I10 J10 K10
#30
#31 #32 #33
注:① 任何自变量前必须指定G65;② I、J、K的下标用于确定自变量指定顺序,在 编程中不写。 如:G65 A1.0 I2.3I4.5P1000;表示#1=1.0、#4=2.3、#7=4.5。

法兰克fanuc系统编程用户宏程序教程

法兰克fanuc系统编程用户宏程序教程

法兰克Fanuc系统编程用户宏程序教程一、认识法兰克Fanuc系统法兰克Fanuc系统是数控机床领域中广泛应用的一种控制系统,其强大的编程功能为用户提供了极大的便利。

在本教程中,我们将重点介绍用户宏程序的编写与应用,帮助您更好地掌握法兰克Fanuc系统的编程技巧。

二、宏程序基础知识1. 宏程序概念宏程序是一种简化编程过程的方法,它允许用户将复杂的操作步骤封装成一个程序,以便在后续编程中重复调用。

通过使用宏程序,可以大大提高编程效率。

2. 宏程序分类法兰克Fanuc系统中的宏程序分为两类:系统宏程序和用户宏程序。

本教程主要针对用户宏程序进行讲解。

3. 宏程序编写原则(1)简洁明了:尽量使宏程序结构清晰,便于阅读和维护。

(2)通用性强:编写宏程序时,要考虑其在不同场景下的适用性。

(3)易于扩展:预留接口,方便后期对宏程序进行功能扩展。

三、用户宏程序编写步骤1. 确定宏程序功能在编写宏程序之前,要明确宏程序需要实现的功能。

例如,可以实现一个用于加工圆形轮廓的宏程序。

2. 设计宏程序结构(1)宏程序参数:定义输入输出参数,以便在不同场景下调用。

(2)宏程序主体:实现宏程序功能的代码部分。

(3)宏程序调用:在其他程序中调用宏程序。

3. 编写宏程序代码(1)宏程序参数定义:100 = 圆心X坐标101 = 圆心Y坐标102 = 半径103 = 起始角度104 = 终止角度(2)宏程序主体:200 = 100 + 102 COS[103]201 = 101 + 102 SIN[103]G01 X[200] Y[201]IF [103 LT 104] THEN103 = 103 + 1GOTO 100ENDIF(3)宏程序调用:G65 P1000 A100 B101 C102 D103 E104法兰克Fanuc系统编程用户宏程序教程五、实战演练:编写一个钻孔宏程序在这一部分,我们将通过一个具体的实例,来实践如何编写一个用于钻孔的宏程序。

新代数控车床宏程序说明

新代数控车床宏程序说明

一.用户宏程序的基本概念用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能。

在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏。

其代表指令称为用户宏命令,也称作宏程序调用指令。

用户宏有以下四个主要特征: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 (i=1,2,3,…)。

使用变量可以使用户宏程序具有通用性。

用户宏程序的应用

用户宏程序的应用

用户宏程序的应用作者:韩长军高原来源:《职业·下旬》2011年第04期用户宏程序是FANUC系统提供的一种变量编程方式,它不同于普通的程序,用户宏程序允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。

使用用户宏时的主要方便之处在于可以用变量代替具体数值,因而在加工同一类的零件时,只需将实际的值赋予变量即可,而不需要对每一个零件都编一个程序。

用户宏程序和普通程序的简要对比见表1。

一、用户宏程序的特征用户宏程序的最大特征有以下几个方面:可以在用户宏程序中使用变量;可以进行变量之间的运算;用户宏命令可以对变量进行赋值。

表1用户宏程序和普通程序的简要对比普通程序宏程序只能使用常量可以使用变量,并给变量赋值常量之间不可以运算变量之间可以运算程序只能顺序执行,不能跳转程序运行可以跳转二、户宏程序的应用举例1. 椭圆加工加工如图1所示工件。

图1椭圆加工工件右端部分为椭圆曲线,长半轴40mm,短半轴20mm。

采用线段逼近法编制程序,取工件右端面中心处为工件坐标系原点。

椭圆的参数方程为x=x0+acosθ,y=y0+bsinθ(θ为参数),长半轴为40mm,短半轴为20mm,启始角为0°,终止角为90°。

以θ为自变量每次变化0.5,X、Z值为应变量,通过变量运算计算出相应X、Z的值。

注意:X项为直径量编程。

为了使程序更加通用,本例使用了以下变量进行运算。

编程时使用以下变量进行运算:#110为椭圆曲线起始角;#111为椭圆曲线各点Z轴坐标;#112为椭圆曲线各点X轴坐标。

参考精加工程序如下:G01…(将刀具移至椭圆起点)#110=0(设定自变量的初始值)N20#111=40*COS[#110](变量运算出Z坐标)#112=40*SIN[#110](变量运算出X坐标)G01 X#112 Z#111 F100#110=#110+0.5(自变量每次增量+0.5)IF[#110 LE 90]GOTO 20(有条件跳转)G…(椭圆部分加工结束,继续加工后续部分)2. 抛物线加工加工如图1-2所示工件。

新代数控车床宏程序说明

新代数控车床宏程序说明

一.用户宏程序的基本概念用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能。

在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏。

其代表指令称为用户宏命令,也称作宏程序调用指令。

用户宏有以下四个主要特征: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 (i=1,2,3,…)。

使用变量可以使用户宏程序具有通用性。

广数A类用户宏程序

广数A类用户宏程序
总结词
提高加工效率
详细描述
通过宏程序,数控铣床可以自动调整切削参数和刀具路 径,从而提高加工效率。同时,宏程序还可以优化切削 过程,减少切削时间和材料浪费。
总结词
降低编程难度
详细描述
数控铣床上的宏程序可以降低编程难度。对于一些复杂 的加工任务,使用宏程序可以避免繁琐的编程工作,提 高编程效率。
宏程序在加工中心上的应用
解决方案
解决语法错误的方法是仔细检查代码,确保所有语句和表达式的语法都是正确的。可以 使用编译器的错误提示和调试工具来帮助定位和修复语法错误。
宏程序逻辑错误
总结词
逻辑错误是指程序在执行过程中出现了不符合预期结果的 情况。
详细描述
逻辑错误通常是由于编程逻辑不正确或算法错误导致的。例如 ,条件判断语句的逻辑关系不正确,循环语句的终止条件设置
宏程序在数控车床上的应用
总结词:高效加工
详细描述:在数控车床上,宏程序能够根据不同的加工需求,通过编程实现高效 、高精度的加工。例如,针对不同型号的材料和刀具,宏程序可以自动调整切削 参数,提高加工效率并减少人工干预。
宏程序在数控车床上的应用
总结词:简化操作
详细描述:数控车床上的宏程序可以简化操作步骤,降低操作难度。通过宏程序,可以将一系列复杂的操作步骤整合到一个 程序中,使得操作更加简单、方便。
云计算技术
云计算技术可以为宏程序提供强大的计算和存储能力,实现宏程序 的分布式处理和高效运行。
大数据技术
大数据技术可以用于宏程序的数据分析和挖掘,为宏程序的优化和 改进提供数据支持。
未来宏程序的发展趋势
1 2
多元化
未来宏程序将更加多元化,满足不同领域和行业 的需求,包括制造业、服务业、金融业等。

FANUC系统用户宏程序

FANUC系统用户宏程序
格式:WHILE[条件式]DOm;(m=1,2,3)
……
ENDm;
……说明:①在条件成立期间,执行WHILE之后的DO到END间的程序。条件不成立时,执行END的下一个程序段。条件式和运算符与IF语句相同。DO和END后的m数值是指定执行范围的识别号,可使用1,2,3,非1,2,3时报警。
②嵌套:在DO~END之间的循环识别号(1~3)可使用任意次,但是不能执行交叉循环,否则要报警,如表6-20所示。
宏程序的最大特征有以下几个方面:
(1)可以在宏程序主体中使用变量。
(2)可以进行变量之间的演算。
(3)可以用宏程序命令对变量进行赋值。
使用宏程序时的主要方便之处在于由于可以用变量代替具体数值,因而在加工同一类的工件时,只需将实际的值赋与变量既可,而不需要对每一个零件都编一个程序。
例:a=10,b=20,c=5,d=8时其精加工轨迹运行程序为:
如上述所示,当加工同一类,但只是尺寸不同的工件时,只需改变宏命令的数值即可,而没有必要针对每一个零件都编一个程序。
2.变量在一般的加工程序中,G代码移动距离可直接用数值指令,如G00X100.0。但在用宏程序中,数值可直接指定,也可用变量号指定。因此,变量是指可以在宏主体的地址上代替具体数值,在调用宏主体时再用引数进行赋值的符号:#i(i=1,2,3……)。使用变量可以
条件成立→执行N60G00G91X10.0;
说明:①条件式是由比较的2个变量之间,或一个常量与一个变量之间,写上比较运算符,然后再用方括号[]全部括起来而构成的。不用变量,也可用运算式。
②运算符是由2个英文字母构成,用来判断大、小或相等的,如表6-18所示。
表6-18
运算符运算符意义EQ等于(=)
NE不等于(≠)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

东南大学工业发展与培训中心欢迎您!用户宏程序骆号luohao_seu@用户宏程序作用我们的不同的数控系统给我们提供了基本的G01,G02,G03和一些复合循环指令,但是复合循环指令的基础还是基本的直线和圆弧插补构成,因此当遇到椭圆,抛物线或者二次曲线的时候我们就无法下手,但是不同的数控系统留下一些参数空间给我们用户使用,并且提供了一些三角函数,算术运算符和逻辑关系运算等功能,对这些复杂图形的加工有了很大的帮助,学好用户宏程序比较重要。

A、B类宏程序在fanuc系统中,分为A类和B类宏程序,A类宏程序是用户根据实际需要灵活编制加工程序,而B类宏程序使用G65、G66采用参数值传递的方法传递参数变量,实现对一系列轮廓相似,但是尺寸变化的零件的加工。

两者之间有着很大的相似性,因此这里主要讲解A类宏指令,B类宏指令请参阅机床说明书或编程指导书。

基本概念变量:变量是指在程序的运行过程中随时可以发生变化的量。

变量表示:用#加变量号指定,如#1,表达式也可以用于指定变量,但是必须用[]刮起来。

例如#1=10;#[#1]就表示#10里面的数值。

变量范围:-1047到-10-29,0,10-29到1047。

在变量定义的过程中,小数点可以省略。

基本概念变量类型:空变量#0;局部变量#1-#33;公共变量:#100-#999系统变量:#1000-,主要功能如下:读写CNC 运行的各种数据,如刀具补偿。

系统变量#1000-#100-#199初始化为空,断电消失,#200-#999断电不消失。

公共变量#100-#199#200-#999该变量只能在宏程序中存储数据,调用宏程序时对局部变量赋值,不能跨程序或者循环赋值。

局部变量#1-#33变量为空,不能赋值给该变量空变量#0功能变量类型变量号基本概念变量引用除了O,N,/(斜线)外,全部的地址都可以使用,如:X#1(直接使用);X-#2(变量值补码使用);#3=#4,#5=1000(变量定义);#1=#2+#3-#4-100,X[#2+#3+100](变量算术式定义)同一单节和地址不能定义变量,必须分开定义,如X#1=#3+100要改写成#1=#3+100;X#1;如果变量重复赋值,以最后一次赋值为准,如#1=100,#1=200,#2=200+#1;#3=#1+#2;则最后计算结果为#1=200,#2=400,#3=600。

变量应用后需要使用赋值语句进行赋值,如果不赋值的话,则定义的变量为空值。

且#0总作为空变量使用,切记!基本概念条件式EQ(=),LE(<=),LT(<),GE(>=),GT(>)NE(≠),若条件表达式成立,则为真,否则为假。

算术和逻辑运算运用算术和逻辑运算是为了更好的服务于因自变量的变化而引起的变量的变化。

具体如下页表所示。

基本概念算术和逻辑运算表#i=sqrt[#j];#i=abs[#j];#i=ln[#j];#i=exp[#j];平方根绝对值自然对数指数函数角度单位是度(°),角度数取值范围见备注。

#i=sin[#j];/#i=asin[#j];#i=cos[#j];/#i=acos[#j];#i=tan[#j];/#i=atan[#j]/[#k];正弦/反正弦余弦/反余弦正切/反正切#i=#j+/(-、*、/)#k;加/减/乘/除法置换/赋值#i=#j; / #i=10;定义备注格式功能备注:1.还有诸如或、异或、与、从BCD 至BIN 和从BIN 到BCD 、取整及舍入为列出,见参考书。

2.反正弦取值范围:当No.6004#0的NAT 位设为0是:270°-90°否则为-90°-90°。

反余弦取值范围为180°-0°。

反正切取值范围:当No.6004#0的NAT 位设为0是:0-360°,否则为-180°-180°。

中心的FANUC 系统采用默认设置,即NAT=0。

为了书写方便,一般指定函数前两个字母即可,如sin 可写成si基本概念运算优先级:函数最高,乘除次之,加减最低,运用[]可以改变运算次序,最多可用5级,超过5级会报警。

#1=SIN[[[#2+#3]*#4+#5]*#6]①②③④⑤转移和循环在程序中,主要用GOTO语句,IF语句改变控制流向,用while实现循环功能。

无条件转移GOTO:GOTO n:n为程序段号。

如:N1 g0x100z100;……GOTO1;执行此句后转移和循环条件转移:IF<条件表达式> GOTOn 如果条件满足,则执行转移命令,否则继续向下执行。

N1 G01X25Z2F3;……IF[#1GE10] GOTO1; G00X100Z100;判断YN转移和循环WHILE 循环:功能类似于条件转移,如果表达式满足条件,则执行DO 和END 直接的程序,否则,转到END 后的程序。

WHILE[条件表达式]Dom;(m=1,2,3)程序;ENDm;G00X100Z100;执行一次完成后返回再判断不满足条件满足条件转移和循环WHILE循环的标号m数值只能是1-3,循环不能交叉(例如一个while循环中包含另一个while的一部分),控制可以赚到循环体外面,但是转移不能进入循环体内。

当在GOTO语句中有标号转移语句时,进行顺序号检索,反向检索时间大于正向检索时间,而WHILE循环语句实现了减少处理时间。

宏程序示例—椭圆加工Ⅰ加工路线:粗加工用T0101;精加工用T0202;这里只加工椭圆部分,用#1表示X值(直径),#3为半径X 值;#2为Z值。

宏程序示例—椭圆加工Ⅰ 粗加工阶段O1234;M03;S1;T0101;G95G18; M08;G00X25Z2;准备阶段#1=24;定义直径值WHILE[#1GE0]DO1;G01X[#1]F1;切入1mm;#3=#1/2;变成半径形式;#2=20*SQRT[1-#3*#3/144]-20; G01Z[#2]F0.06;切削U1F2;退刀Z2;回刀#1=#1-2;自变量变化END1;到路估计示意宏程序示例—椭圆加工Ⅰ精加工阶段G00X100Z100;退刀T0202;换刀G00X0Z0.5F3;定刀#1=0;WHILE[#1LE24]DO2;#3=#1/2;变成半径形式;#2=20*SQRT[1-#3*#3/144]-20;G01X[#1]Z[#2]F0.06;切削#1=#1+0.05;自变量变化END2;G01X24Z-20F0.06;不能省略;G00X100Z100;M05M09M30;宏程序示例—椭圆加工Ⅱ宏程序示例—抛物线加工宏程序的几点说明三菱系统的宏程序和FANUC系统如出一辙,但是三菱系统的Dom的m值可以从1取到127。

如果使用宏程序调用子程序,需要传递变量,则需要使用全局变量(公共变量#100-#199,G65/G66等B类宏程序除外)。

编写宏程序的过程中要特别注意边界点的取值,比较椭圆编程的两种方法,体会两种编程的优缺点。

编程过程中尽可能减少运算表达式的复杂性,多用一些中间变量。

华中系统宏程序简介宏变量:#0-#49当前局部变量#50-#199全局变量算术运算符、条件运算符、函数等同fanuc系统,但华中系统采用弧度制编程,而不是角度编程,90°等效于PI/2。

华中系统宏程序简介 条件判断语句:IF条件表达式…ELSE…ENDIF;IF条件表达式……ENDIF华中系统宏程序简介循环语句WHILE,ENDW格式:WHILE条件表达式……ENDW华中系统中,条件表达式不是必须需用[]刮起来,但是如果条件数中有负数,则负数必须用[]刮起来,例如:WHILE[#1GE-10]必须要修改成WHILE#1GE[-10],否则会出错。

西门子R参数编程西门子R参数编程思路和FANUC系统一样,只是西门子采用独特的R参数编程。

R参数有R0-R299工300个参数,R0-R99可以自由使用,R100-R249为加工循环传递参数,R250-R299为加工循环内部计算参数,因此留给用户的R参数只有R0-R99这100个参数。

西门子R参数编程赋值:自由赋值,如R1=100;R1=1.8EX4=18000;如果R1=10,那么G0X=R1等效于G0X10;别的数学运算也等同于FANUC系统,但是条件式不一样,西门子系统的面板上有>,<,=按键,因此就直接输入即可,例如R1>=10就表示R1≥10.西门子系统不用[]而用()代替。

西门子R参数编程程序跳转:西门子系统中,采用标记符来跳转程序,标记符类似于门牌号,跳转需要制定跳转的位置—标记符。

标记符采用2-8个字母或数字组成,但是开头两个符号必须是字母或下划线。

如MARKET1:G1X20;MARKET1为标记符,后面的冒号不能省;TR789:G0X10Z10;TR789为标记符西门子R参数编程绝对跳转:GOTOB LABEL;向后跳转;GOTOF LABEL;向前跳转;LABEL为标记符;MA1:…………GOTOB MA1; GOTOB MA2;……MA2:……向后跳转向前跳转西门子R参数编程有条件跳转:IF条件表达式GOTOB/GOTOF LABEL西门子R参数椭圆编程M03S300G95T1G01X25Z2F3R1=12;MA1:G0X=2*R1R2=-20*SQRT(1-R1*R1/144)-20G01Z=R2F0.15;G0X=(2*R1+1)Z2;R1=R1-1;IF R1>=0 GOTOB MA1; 注意空格!G0X100Z100;T2G0X0Z0.5;R1=0;MA2:R2=-20*SQRT(1-R1*R1/144) G0X=2*R1Z=R2F0.06;R1=R1+0.05;IF R1<=12 GOTOB MA2;G1X24Z-20 不用省略;G0X100Z100M05M09M02西门子G158编程固定格式G158可以实现G73的功能,但是子程序的编写却可以采用绝对坐标编程,大大提高了编程的准确性。

格式:R1=U+精加工余量值MA1:G158X=R1Z0作X向偏移值L009调用子程序,子程序绝对值编程R1=R1-每刀单边切入量IF R1>=精加工余量值GOTOB MA1备注:U相当于G73的第一行的U值,每刀切入量=单边切削厚度/切削次数,可以将厚度略加修改,使得切削次数和单边切入量适中。

三菱系统用户宏程序简介1.变量程序内,地址的数值可以用复数指定,所以执行时,就依对应的变量值来执行,程序的使用就有了很高的灵活性。

指令格式:#**=○○或者#**=[式]变量表示: (A)#m,m为0-9的数字构成,如#99;(B)#[f]……f为下列值指定数值m:123,变量:#123,式,算子,式:#100+#109-(负号)式:-#120;[式]:[#109];函数[式]:SIN[#109]三菱系统用户宏程序简介2.变量的种类固定循环程序内的区域变量1-32固定循环变量系统固定用途1000-系统变量宏程序内可以使用1-33区域变量500-599 100-199200组主、副、宏程序都可以调用共变量1 共变量2共变量技能号码种类三菱系统用户宏程序简介变量的引用除了O,N,/(斜线)外,全部的地址都可以使用,如:X#1(直接使用);X-#2(变量值补码使用);#3=#4,#5=1000(变量定义);#1=#2+#3-#4-100,X[#2+#3+100](变量算术式定义)同一单节和地址不能定义变量,必须分开定义,如X#1=#3+100要改写成#1=#3+100;X#1;如果变量重复赋值,以最后一次赋值为准,如#1=100,#1=200,#2=200+#1;#3=#1+#2;则最后计算结果为#1=200,#2=400,#3=600。

相关文档
最新文档