导航:首页 > 软件知识 > 宏程序为什么不能走一边

宏程序为什么不能走一边

发布时间:2023-05-18 09:03:09

1. 法那科宏程序两重嵌套怎么不能走

1 可能存在程序错误或逻辑问题,导致无法举孝走到嵌套语句的执行步骤。

2 责任可能在两重嵌套的代码中存在语法错误或者逻辑错误,需要检查和调试。

3 另外,可能与运行环境有关,需要检查代码友衫所在的编程语言和操作系统等因素。
建议通过日志、调试工具等方式正告稿来定位问题所在,进一步找到解决办法。

2. 西门子840D系统,宏程序咋用

这个在西门子中叫R参数,具体的用法和宏程序一样,先要赋值,我也不是经常用,这个就是凡是能用数学表达式辩物消的几何图形都可以:比如说椭圆吧
r1=35 赋值长半轴35
r2=15 短半轴15
r3=0 变量的起始点
g0 x=r1+r10 y=r11 这个就是下刀点,也可以不赋值,采用具体的数值。
g1 z-5 f100 最终深度
AAA: 表示条件循环的指令,
r4=r1*cos(r3)+r10 用变量表携知示新的变量,相当于函数。其中r10,r11表示的刚才的下刀点。
r5=r2*sin(r3)+r11
g1 x=r4 y=r5 f100 工部走新的变量。
r3=r3+1 参数赋值,计算出新的节点
if r3<=360 gotob AAA 条件跳转。
g0 z200 抬刀
m02 程序结束。如果是圆的话只需r1=r2不过现在很少用蚂悔这个了,应为计算机编程,加上有u盘或软盘,程序也比较快,慢慢的这个已经比遗忘了。

3. 宏程序与子程序调用与区别

1.在汇编后产生的.obj文件中,子程序定义依然存在,而宏定义却不复存在。
2.子程序调用是在执行时通过CALL指令完成的,而宏调用是在汇编时进行宏展开,被相应宏体所取代。
3.将多次调用的一段代码定义为宏指令,与使用子程序相比,其执行速度要快(因为过程需要调用和返回),但目标代码长。
4.宏指令的参数是在汇编时进行形实替换的,而子程序的参数是在执行时通过寄存器或堆栈等方式传递的。

大概想到这些,供参考

4. 数控铣削宏程序

数控铣削加工宏程序的编制与应用

在数控编程中,宏程序编程灵活、高效、快捷。宏程序不仅可以实现象子程序那样,对编制相同加工操作的程序非常有用,还可以完成子程序无法实现的特殊功能,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等。

一、FANUC宏程序的理论基础

(一)FANUC宏程序的构成

1)包含变量

2)包含算术或逻辑运算(=)的程序段

3)包含控制语句(例如:GOTO,DO,END)的程序段

4)包含宏程序调用指令(G65,G66,G67或其他G代码,M代码调用宏程序)的程序段

(二)FANUC宏程序的变量

FANUC数控系统变量表示形式为# 后跟1~4位数字,变量有四种:

1、FANUC宏程序的变量Ⅰ

变量号

变量类型

功能

#0

空变量该变量总是空

没有任何值能赋给该变量

2、FANUC宏程序的变量Ⅱ

变量号

变量类型

功能

#1——#33

局部变量

局部变量只能用在宏程序中存储数据,例如运算结果。当断电时局部变量被初始化为空,调用宏程序时自变量对局部变量赋值。

3、FANUC宏程序的变量Ⅲ

变量号

变量类型

功能

#100—#199

#500—#999

公共变量

公共变量在不同的宏程序中的意义相同当断电时变量#100 #199初始化为空变量

#500 #999 的数据保存即使断电也不丢失

4、FANUC宏程序的变量Ⅳ

变量号

变量类型

功能

#1000——

系统变量

系统变量用于读和写CNC 运行时各种数据的变化例如刀具的当前位置和补偿值等

(三)刀具补偿存储器C用G10指令进行设定

H代码的几何补偿值

G10L10P R ;

D代码的几何补偿值

G10L12P R ;

H代码的磨损补偿值

G10L11P R ;

D代码的磨损补偿值

G10L13P R ;

P:刀具补偿号

R:绝对值指令(G90)方式时的刀具补偿值。增量值指令(G91)方式时的刀具补偿值为该值与指定的刀具补偿号的值相加。

用G10改变工件坐标系零点偏移值

格式:G10L12PpIP ;

P=0:外部工件零点偏移值

P=1:工件坐标系G54的零点偏移值

P=2:工件坐标系G55的零点偏移值

P=3:工件坐标系G56的零点偏移值

P=4:工件坐标系G57的零点偏移值

P=5:工件坐标系G58的零点偏移值

P=5:工件坐标系G59的零点偏移值

IP: 对于绝对值指令(G90),为每个轴的工件零点偏移值。

对于增量值指令(G91),为每个轴加到设定的工件零点偏移值。

(四)FANUC宏程序运算符Ⅰ

1、FANUC宏程序运算符Ⅰ

功能

格式

备注

定义

#i=#j

加法

#i=#j+#k

减法

#i =#j- #k

乘法

#i =#j*#k

除法

#i=#j/#k

2、FANUC宏程序运算符Ⅱ

功能

格式

备注

正弦

#i=SIN[#j]

角度以度指定,如90º30’表示为90.5度

反正弦

#i=ASIN[#j]

余弦

#i=COS[#j]

反余弦

#i=ACOS[#j]

正切

#i=TAN[#j]

反正切

#i=ATAN[#j]

3、FANUC宏程序运算符Ⅲ

功能

格式

备注

平方根

#i=SQRT[#j]

绝对值

#i=ABS[#j]

舍入

#i=ROUND[#j]

上取整

#i=FIX[#j]

下取整

#i=FUP[#j]

自然对数

#i=LN[#j]

指数函数

#i=EXP[#j]

4、FANUC宏程序运算符Ⅳ

功能

格式

备注



#i=#j OR #k

逻辑运算一位一位的按二进制数执行

异或

#i=#j XOR #k



#i=#j AND #k

从BCD转为BIN

#i=BIN[#j]

用于与PMC的信号交换

从BIN转为BCD

#i=BCD[#j]

(五)FANUC宏程序的转移和循环

1、FANUC宏程序的转移和循环Ⅰ

无条件转移:GOTOn

(n为顺序号,1——99999)

例:GOTO10为转移到N10程序段

2、FANUC宏程序的转移和循环Ⅱ

条件转移:(IF语句)

IF [条件表达式] GOTOn

当指定的条件表达式满足时,转移到标有顺序号n的程序段,如果指定的条件表达式不满足时,执行下个程序段

3、FANUC宏程序的转移和循环Ⅲ

条件转移:(IF语句)

IF [条件表达式] GOTOn

如果变量#1的值大于10,转移到顺序号N20的程序段。

如果条件不满足 IF [#1 GT 10] GOTO 2

如果条件满足

程 序

程程序序

N20 G00 G90 X100. Y20.

:

4、FANUC宏程序的转移和循环Ⅳ

IF [条件表达式] THEN

当指定的条件表达式满足时,执行预先决定的宏程序语句。

例:IF [#1EQ #2] THEN #3=0;

(六)FANUC宏程序的循环

FANUC宏程序循环Ⅰ

WHILE [条件表达式] Dom;

(m=1,2,3)

条件不满足 条件满足

ENDm

注:循环允许嵌套,最多3层,但不允许交叉;

FANUC宏程序循环Ⅱ

FANUC宏程序循环Ⅲ

(七)FANUC宏程序的条件表达式运算符

运算符

含义

EQ

等于

NE

不等于

GT

大于

GE

大于或等于

LT

小于

LE

小于或等于

(九)FANUC宏程序的调用Ⅰ

FANUC宏程序的调用Ⅰ

非模态调用G65:

格式: G65PpLl<自变量指定>

其中

p:要调用的程序号

L:调用次数(默认为1)

自变量:数据传递到宏程序

FANUC宏程序的调用Ⅱ

模态调用(G66):

G66PpLl<自变量指定>;

程序点

G67;(取消模态)

其中

p:要调用的程序号

L:调用次数(默认为1)

自变量:数据传递到宏程序

(十)FANUC宏程序的自变量指定

1、FANUC宏程序的自变量指定I

地址

变量

地址

变量

地址

变量

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

#11

S

#19

Z

#26

2、FANUC宏程序的调用II

地址

变量

地址

变量

地址

变量

A

#1

K3

#12

J7

#23

B

#2

I4

#13

K7

#24

C

J4

#14

I8

#25

I

#4

K4

#15

J8

#26

J

#5

I5

#16

K8

#27

K

#6

J5

#17

I9

#28

I2

#7

K5

#18

J9

#29

J2

#8

I6

#19

K9

#30

K2

#9

J6

#20

I10

#31

I3

#10

K6

#21

J10

#32

J3

#11

I7

#22

K10

#33

二、FANUC宏程序的应用

(一)宏程序示例(铣圆)

#1=圆心坐标X值

#2=圆心坐标Y值

#3=园孔最终Z值

#4=圆孔直径

#5=刀具直径

#6=[#4+#5]/4 (进刀半径)

#7= #3+50 (进刀高度)

#8= [#1+#4]/2-#6(进刀圆弧起点X值)

#9 = #2 - #6 (进刀圆弧起点Y值)

#10= #1+#4/2 (铣圆起点X值)

#11= -#4/2 (I矢量)

#12= #2+#6(退刀圆弧Y值)

%

O100

M03S1000

G00G90G54G43H01Z100.

X#1Y#2

Z#7

G01Z#3 F100

G41D02X#8Y#9

G03X#10Y#2R#6

G03X#10Y#2I#11J0

G03X#8Y#12R#6

G01G40X#1Y#2

G00Z100.

M30

%

(二)宏程序示例(铣半圆球)

自上而下等角度水平圆弧环绕球面精加工

#1=(A)球面的圆弧半径

#2=(B)球头铣刀刀具半径

#3=(C)球面的起始角度

#4= (I)球面的终止角度,#4≤90°

#17=(Q)Z坐标每次递减量

#24=(X)球心坐标X值

#25=(Y)球心坐标Y值

#26=(Z)球心坐标Z值

%

O200

M03S1000

G00G90G541Z100.

G00X0Y0

G65P1912X Y Z A B C I Q

M30

%

O1912 (宏程序)

G52X#24Y#25Z#26

G00X0Y0Z[#1+30]

#12=#1+#2

WHILE [#3LT#4]DO1

#5 = #12*COS[#3]

#6 = #12*SIN[#3]

X[#5+#2] Y#2

G03X#5Y0R#2F1000

G02 I-#5

G03X[#5+#2]Y-#2R#2

G00Z[#7+1]

Y#2

#3 = #3 + #17

END 1

GOO Z[#1+30]

G52 X0 Y0 Z0

M99

%

注释说明

(主程序)

调用宏程序O1912

(空格处为变量赋值)

在球心处建立局部坐标

球心与刀心连线距离

如果#3<#4,循环1继续

任意角度刀心X坐标值

任意角度刀心Y坐标值

G00定位于下刀点

圆弧进刀

沿球面切削

圆弧退刀

提刀1

移到进刀点

角度#3每次递增#17

循环1结束

提刀

恢复G54坐标

宏程序结束返回

(三) 宏程序示例Ⅰ

采用Φ20R4铣刀加工SR30的球,已知球心坐标为(X0Y0Z-5.)

宏程序示例Ⅱ

1、分析:铣球程序一般采用自动编程来实现,但是,利用宏程序强大的功能同样也可以实现,而且程序更加简洁。

2、编程思路:

铣球可以认为是多个铣圆的组合。

3、排刀分布:

有两种方案,一是按Z向分布,二是按圆心角分布。从保证表面质量来看,最佳方案为按圆心角分布。

圆弧起点计算,从X正向开始起刀。

刀具根部R4的圆心在XZ平面的运动轨迹为与R30等距的圆R34(见图示中红色轨迹),刀尖点上4mm处的轨迹(即褐色轨迹)为红色轨迹沿X正向平移6毫米,刀尖点坐标为褐色轨迹沿Z轴向下平移4mm(即绿色轨迹)。

起始角度=ARCSIN((5+4)/34)=15.349º

起始位置X值=34*COS(15.349)+6=38.787

起始位置Z值=0 (通用表达式=34*sin(15.349)-5-4)

4、变量定义:

#1为圆心角,范围由(15.349,90)

#2为刀尖中心X值,#2=34*COS[#1]+6

#3为刀尖中心Z值,#3=34*SIN[#1]-5-4

%

O300

M03S3000;

G00G90G54Z100.;

#1=15.349

X50.Y0;

Z10.;

WHILE[#1 LE 90] DO1;

#2=34*COS[#1]+6;

#3=34*SIN[#1]-5-4;

G01Z#3F900;

X#2;

G02X#2Y0I-#2J0;

#1=#1+1;

END1;

G00Z100.;

M30;

%

(四)宏程序示例II

用Φ20R10铣刀加工轮廓处R5圆角

下面为铣外形的一段程序,采用刀具半径补偿

G00X2.5Y26.664

G01G41D01X-8.991Y2.023

G03X2.5Y-3.336I11.491J9.641

X32.969Y-.208I0.J150.

G02X44.955Y-10.952I2.031J-9.792

G03Y-49.048I199.09J-19.048

G02X33.452Y-59.88I-9.955J-.952

G03X-28.452I-30.952J-197.59

G02X-39.922Y-48.75I-1.548J9.88

G03Y-11.25I-148.823J18.75

G02X-27.969Y-.208I9.922J1.25

G03X2.5Y-3.336I30.469J146.872

X13.991Y2.023I0.J15.

G40G01X2.5Y26.664

编程思路:

利用G10指令修改刀具半径偏置值来实现倒圆角。

G10格式为G10L12P1R ,其中,P1表示修改D01,R后为刀具半径偏置值。

设定倒角的圆心角为变量#1,取值范围为0-90º

设定#2为刀具半径偏置值,取值=COS[#1]*15-5

设定#3为Z值,取值=SIN[#1]*[5+10]-5-10

%

O400

M03S3000

G00G90G54Z100.

#1=0

X2.5Y26.64

Z5.

WHILE [#1 LE 90] DO1

#2= COS[#1]*15-5

#3= SIN[#1]

*[5+10]-5-10

G10L12P1R#2

G01Z#3F900

G00X2.5Y26.664

G01G41D01X-8.991Y2.023

G03X2.5Y-3.336I11.491J9.641

X32.969Y-.208I0.J150.

G02X44.955Y-10.952I2.031

J-9.792

G03Y-49.048I199.09J-19.048

G02X33.452Y-59.88I-9.955J-.952

G03X-28.452I-30.952J-197.59

G02X-39.922Y-48.75I-1.548J9.88

G03Y-11.25I-148.823J18.75

G02X-27.969Y-.208I9.922J1.25

G03X2.5Y-3.336I30.469J146.87

X13.991Y2.023I0.J15.

G40G01X2.5Y26.664

#1=#1+5

END1

G00Z100.

M30

%

三、小结

随着现代制造技术的发展和数控机床的日益普及,数控加工得到广泛应用。对于加工形状简单的零件,计算比较简单,程序不多,采用手工编程较容易完成。因此,在点定位加工及由直线与圆弧组成的轮廓加工中,手工编程仍广泛应用。但对于形状复杂的零件,特别是具有非圆曲线、列表曲线及曲面的零件,用一般的手工编程就有一定的困难,且出错机率大,有的甚至无法编出程序。在CAD/CAM软件普遍应用的今天,手工编程的应用空间日趋缩小。但手工编程是自动编程的基础。宏程序的运用,其最大的特点就是将有规律的形状或尺寸用最短的程序段表示出来,具有极好的易读性和易修改性。

阅读全文

与宏程序为什么不能走一边相关的资料

热点内容
仓库需提供哪些数据示意图 浏览:231
宣城开辅导班怎么考察市场 浏览:116
环保代理商有哪些 浏览:624
上海哪里有卖古铜香炉市场 浏览:741
职业技术学院为什么有公办和民办 浏览:232
除疤产品都有哪些 浏览:772
南京糖酒展会主要展览什么产品 浏览:108
荣耀9x数据漫游是什么 浏览:72
软件清除数据怎么恢复 浏览:436
现在有什么小程序 浏览:247
省级代理什么产品好 浏览:420
彩票代理点怎么办理 浏览:673
起诉对方信息怎么处理 浏览:176
淘宝危及交易怎么解冻 浏览:821
关掉手动代理服务器有什么影响 浏览:537
玉石一般市场在哪个地方呀 浏览:17
长沙砍价小程序开发多久时间 浏览:667
带着技术和老板怎么谈 浏览:640
电商交易管理是干什么 浏览:665
聊城加盟代理面馆有哪些 浏览:940