法拉克数控系统宏程序ifthen语句

法拉克数控系统宏程序ifthen语句,第1张

if后加个条件语句then后加个控制语句。

例如:AA: 程序

if X<0 then goto AA

就是如果程序中给个变量,然后这个变量在满足X<0这个条件时,程序自动从AA:语句后自动运行。不知道我说的明白不明白!

程序段为宏程序语句:

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

• 包含控制语句(例如,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三个赋值(椭圆的长轴和短轴的长度),即可加工任意椭圆。

function jieguo(canshu)

for i=1 to 1000

for j=1 to 7

if cells(i,j)<canshu then

jieguo=j

j=8

i=1001

end if

next j

next i

end function

你要是不懂我认栽。。

以上就是关于法拉克数控系统宏程序if then语句全部的内容,包括:法拉克数控系统宏程序if then语句、谁能告诉我在宏程序if语句中总有一句类似于#3=#3-0.5的语句是什么意思、excel 宏程序的比较语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10220332.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存