• 包含算术或逻辑运算(=)的程序段。
• 包含控制语句(例如,GOTO,DO,END)的程序段。
• 包含宏程序调用指令(例如,用G65,G66,G67 或其它G 代码,M 代码
调用宏程序)的程序段。
除了宏程序语句以外的任何程序段都为NC 语句。
说明
• 即使置于单程序段运行方式, 机床也不停止。但是, 当参数
N06000#5SBM 设定为1 时,在单程序段方式中,机床停止。
• 与NC 语句的不同
• 在刀具半径补偿方式中宏程序语句段不做为不移动程序段处理(见Ⅱ-
157 节)。
如果NPS(参数N03450#4)为1,满足以下条件时程序段中的NC 语句
可认为与宏程序语句性质相同。
• 与宏程序语句有相
同性质的NC 语句
• 含有子程序调用指令(例如,用M98 或其它M 代码或用T 代码调用子
程序)但没有除O,N 或L 地址之外的其它地址指令的NC 语句其性质
与宏程序相同。
• 不包含除O,N,P 或L 以外的指令地址的程序段其性质与宏程序语句
相同。
1552 IF 之后指定条件表达式。
条件转移
(IF 语句)
IF[<条件表达式>] GOTO n
如果指定的条件表达式满足时,转移到标有顺序号n 的程序段。如果指定
的条件表达式不满足,执行下个程序段。
如果变量#1 的值大于10,转移到顺序号N2 的程序段。
IF[#1GT10]GOTO2;
如果条件满足
程序
如果条件不满足
N2 G00 G91 X100;
IF[<条件表达式
>]THEN
如果条件表达式满足,执行预先决定的宏程序语句。只执行一个宏程序语
句。
如果#1 和#2 的值相同,0 赋给#3。
IF〔#1 EQ #2〕THEN #3=0;
说明
·条件表达式 条件表达式必须包括算符。算符插在两个变量中间或变量和常数中间,并
且用括号 (〔,〕)封闭。表达式可以替代变量。
运算符由2 个字母组成,用于两个值的比较,以决定它们是相等还是一个
值小于或大于另一个值。注意,不能使用不等符号。
·运算符
表1552 运算符
运算符 含义
EQ 等于(=)
NE 不等于(≠)
GT 大于(>)
GE 大于或等于(≥)
LT 小于(<)
LE 小于等于(≤)
·示例程序 下面的程序计算数值1~10 的总和
〇9500
#1=0;⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯存储和数变量的初值
#2=1;⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯被加数变量的初值
N1 IF〔#2 GT 10〕GOTO2;⋯⋯当被加数大于10 时转移到N2
#1=#1+#2;⋯⋯⋯⋯⋯⋯⋯⋯⋯计算和数
#2=#2+#1;⋯⋯⋯⋯⋯⋯⋯⋯⋯下一个被加数
GOTO1;⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯转到N1
N2 M30;⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯程序结束
功能 格式 备注
定义 #i=#j
加法 #i=#j+#k;
减法 #i=#j-#k;
乘法 #i=#j#k;
除法 #i=#j/#k;
正弦 #i=SIN[#j];
反正弦 #i=ASIN[#j];
余弦 #i=COS[#j];
反余弦 #i=ACOS[#j];
正切 #i=TAN[#j];
反正切 #i=ATAN[#j]/[#k];
角度以度指定。90°30′
表示为905 度。
平方根 #i=SQRT[#j];
绝对值 #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 #k;
逻辑运算一位一位地按
二进制数执行。
从BCD 转为BIN #i=BIN[#j];
从BIN 转为BCD #i=BCD[#j]; 用于与PMC 的信号交换
转移和循环
在程序中,使用GOTO 语句和IF 语句可以改变控制的流向。有三种转移
和循环 *** 作可供使用:
转移和循环 GOTO 语句(无条件转移)
IF 语句(条件转移:IF⋯THEN⋯)
WHILE 语句(当⋯时循环)
转移到标有顺序号n 的程序段。当指定1 到99999 以外的顺序号时,出现
P/S 报警No128。可用表达式指定顺序号。
1551
无条件转移
(GOTO 语句)
GOTOn;n:顺序号(1~99999)
例:
GOTO1;
GOTO#10;
1553 循环
(WHILE 语句)
在WHILE 后指定一个条件表达式,当指定条件满足时,执行从DO 到END
之间的程序。否则,转到END 后的程序段。
WHILE [条件表达式]DO m;(m=1,2,3)
∶
如果条件不满足
END m;
如果条件满足程序
当指定的条件满足时,执行WHILE 从DO 到END 之间的程序。否则,
转而执行END 之后的程序段。这种指令格式适用于IF 语句。DO 后的号
和END 后的号是指定程序执行范围的标号,标号值为1,2,3。若用1,
2,3 以外的值会产生P/S 报警No126。用下面的方法调用宏程序:
156
宏程序调用
宏程序调用 非模态调用(G65)
—— 模态调用(G66,G67)
—— 用G 代码调用宏程序
—— 用M 代码调用宏程序
—— 用M 代码调用子程序
—— 用T 代码调用子程序
限制
• 宏程序调用和子程 宏程序调用(G65)不同于子程序调用(M98),如下所述。
序调用之间的差别 • 用G65,可以指定自变量(数据传送到宏程序)。M98 没有该功能。
• 当M98 程序段包含另一个NC 指令(例如,G01 X1000 M98Pp)时,在指
令执行之后调用子程序。相反,G65 无条件地调用宏程序。
• M98 程序段包含另一个NC 指令(例如,G01 X1000 M98Pp)时,在单程
序段方式中,机床停止。相反,G65 机床不停止。
• 用G65,改变局部变量的级别。用M98,不改变局部变量的级别。
说明
• 呼调 • 在G65 之后,用地址P 指定用户宏程序的程序号。
• 当要求重复时,在地址L 后指定从1 到9999 的重复次数。省略L 值时,
认为L 等于1。
• 使用自变量指定,其值被赋值到相应的局部变量。
可用两种形式的自变量指定。自变量指定I 使用除了G,L,O,N 和P 以
外的字母,每个字母指定一次。自变量指定Ⅱ使用A,B,C 和Ii,Ji 和
Ki(i 为1~10)。根据使用的字母,自动地决定自变量指定的类型。
• 自变量指定
自变量指定I
地址 变量号
T #20
U #21
V #22
W #23
X #24
Y #25
Z #26
地址 变量号
I #4
J #5
K #6
M #13
Q #17
R #18
S #19
地址 变量号
A #1
B #2
C #3
D #7
E #8
F #9
H #11
• 地址G,L,N,O 和P 不能在自变量中使用。
• 不需要指定的地址可以省略,对应于省略地址的局部变量设为空。
• 地址不需要按字母顺序指定。但应符合字地址的格式。但是,I,J 和
K 需要按字母顺序指定。
例:
B_A_D_⋯⋯J_K_ 正确
B_A_D_⋯⋯J_I_ 不正确
调用宏程序的主程序 O0003;
G50 X1000 Z2000;
S1000 M03;
G66 P9110 U50 F05;
G00 X600 Z800
Z500
Z300
G67;
G00 X000 Z2000 M05;
M30;
• 宏程序 O9110;
(被调用的程序) G01U-=#21F#9⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯加工
G00U#21⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯撤回刀具
M99;
有一椭圆,长轴b=25,短轴a=18,现在加工其右半部分,工件坐标系设在右端面。
主程序:
N10 G98 G21 F60
N20 T0101
N30 M03 S600
N40 G00 X40 Z5;设毛坯为φ38mm
N50 #105=38
N60 IF #105 GT 0
N70 G65 P1015 A18 B25 C25 D0 K1;A--#1,B--#2,C--#3,D--#7,K--#6
N80 G00 X40 Z5
N90 #105=#105-1
N100 GOTO 60
N110 G00 X80 Z80
N120 M05
N130 M30
子程序:
O1015
N10 #5=[#1+#1]SQRT[1-#2#2/#3/#3];[X=2a ]
N20 G01 X[#5+#105] Z[#2-#3]
N30 #2=#2-#6;Z轴方向切削的步长为1
N40 IF [#2 GE #7] GOTO 10
N60 M99
注意:这是一个通用的椭圆加工宏程序,只要改变起刀点的坐标和G65指令中的A、B、C三个赋值(椭圆的长轴和短轴的长度),即可加工任意椭圆。
你用的是FANUC系统吧?这些变量是有分类的,其中:
#1~#33是局部变量,局部变量只能在宏中使用,以保持 *** 作的结果,关闭电源时,局部变量被初始化成“空”。宏调用时,自变量分配给局部变量。
#100~#149(#199)和#500~#531(#999)是公共变量,公共变量可在不同的宏程序间共享。关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据。公共变量#150~#199和#532~#999可以选用,但是当这些变量被使用时,纸带长度减少了85米。
#1000~ 是系统变量,系统变量用于读写各种NC数据项,如当前位置、刀具补偿值等。譬如你所提到的#4001表示目前的插补模态是G00、G01、G02、G03、还是G33,而#4002则表示当前平面选择的状态是G17、G18、还是G19。其他系统变量可以查阅手册。
在右面的加工刀路上右击鼠标,点选后置处理-生成G代码,会出现一个对话框如图所示,点选FANUC数控系统
文件,修改代码文件的储存路径,以便调用程序,将要生成的后置代码文件后缀改为NC,之后点击确定。选择加工轮廓刀具路线,右击鼠标确定,六边形的轮廓粗加工程序生成如下。
%
O0001
T1 M6
G90 G54 G0 X-45 Y-47 S3000 M03
G43 H1 Z100 M08
Z1
G1 Z-5 F30
X45 F300
G17 G3 X47 Y-45 I0 J2
G1 Y-38
X-47
Y-29
X-25057
X-30253 Y-20
(中间略)
G2 Y-305 I-5283 J-305
G1 X22603 Y-3305
G2 X17321 Y-361 I-5283 J305
G1 Z1 F1000
G0 Z100
M05
M30
%
一样
三菱系统和法兰克系统区别如下: 1、外观方面:两者外观上的区别不是很大。 2、内部程序方面:两者内部程序功能区别也不算大,只是 *** 作面板略有不同,对刀程序与功能指令上也有些不同。 3、指令代码方面:三菱系统使用的是指令代码G代码而法兰克系统使用的是M代码。 4、NC控制器:三菱系统一块基板上同时
数控相关名词解释
不知对大家有没有用
1. NC是一种数字化信号进行控制的自动化机床,自动化控制程序由硬件联结保证。
2. CNC是计算机软件控制的数字化信号的自动化机床。(CNC是英文计算机程序控制的简写)
3. AC机床的自适应功能。
4. DNC:是直接控制数控。
5. FMS: 柔性制造系统。
6. LSI: 大规模集成电路。
7. PST程序:将通用的刀具轨迹文件NCI转换成具有特定的数控系统编程指令格式的NC程序。
8. CAD:计算机辅助设计。
9. CAT:计算机辅助刀具设计。
10.脉冲当量:数控机床中,刀具移一步的距离(机床的最小位移量)
11.子程序:当一个程序反复出现时,可以把作为固定程序,并事先储存起来,这个程序叫子程序。
12.宏程序:把一组命令构成的其功能,像子程序那样记录在存储器中,这一组命令称之为宏程序体,简称宏程序。
13.二轴半数控铣床:三座标两联动,第三个坐标只能沿一个方向作等距离的周期移动,称之为二轴半数控铣床。
14.工作原点:在图样上找出设计基准电(一般此点应和工艺基准重合),该基准点称之为工作原点。
15、机床原点(车床):数控车床卡盘端面和主轴线的交点称为数控车床的机床原点。
16、CAM:计算机辅助制造。
17、ATC:刀具自动交换。
18、APC:工件自动交换。
19、CAPP:计算机辅助工艺规程设计。
20、RPM:快速成型制造。
21、CAQC:计算机辅助质量管理。
22、ASR:自动存取。
23、CIMS:计算机集成制造系统。
24、CT:成组技术。
25、ATC:自动换刀装置。
CNC代码:是数控机床本身控制系统的命令代码。
常用机床的G代码和M代码,视机床本身使用的 *** 作系统而有所不同。此外用于宏程序的程序语言(代码)也不尽相同。机床伺服系统接收到对应的代码后执行命令所包含内容。
NC代码:一般由电脑编程软件生成,可以供CNC机床识别并执行;也可以由 *** 作者员自己手动编写。
NC代码要和所用机床使用的代码相同,否则会出现机床无法“破译”代码而作出“报警”的情况。编程软件有对应的程序代码后处理器,以对应不同机床的 *** 作系统。
常用机床控制系统:法兰克(日本),三菱(日本),西门子(德国)
不可以。
运用MasterCAMX5可以模拟加工过程,且能自动生成NC数控代码,这些代码可直接用在数控加工中。
宏程序,其实宏就是用公式来加工零件的,比如说椭圆,如果没有宏,我们要逐点算出曲线上的点,然后慢慢用直线逼近。
以上就是关于谁能告诉我在宏程序if语句中总有一句类似于#3=#3-0.5的语句是什么意思全部的内容,包括:谁能告诉我在宏程序if语句中总有一句类似于#3=#3-0.5的语句是什么意思、加工中心的宏程序中的#****怎么理解、caxa制造工程师2013怎么出宏程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)