宏程序应用指令.docx

上传人:b****5 文档编号:8226856 上传时间:2023-01-30 格式:DOCX 页数:11 大小:19.12KB
下载 相关 举报
宏程序应用指令.docx_第1页
第1页 / 共11页
宏程序应用指令.docx_第2页
第2页 / 共11页
宏程序应用指令.docx_第3页
第3页 / 共11页
宏程序应用指令.docx_第4页
第4页 / 共11页
宏程序应用指令.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

宏程序应用指令.docx

《宏程序应用指令.docx》由会员分享,可在线阅读,更多相关《宏程序应用指令.docx(11页珍藏版)》请在冰豆网上搜索。

宏程序应用指令.docx

宏程序应用指令

宏程序应用指令

宏程序跳转及重复指令

GOTOS:

跳回到程序开始

GOIOB:

以程序开始方向的带跳转目标的跳转指令。

GOTOF:

以程序末尾方向的带跳转目标的跳转指令。

GOTO

带跳转目标查找的跳转指令。

查找先向程序末尾方向进行,

然后再从程序开始处进行查找。

GOTOC:

与GOTO有区别的是,报警14080“跳转目标未找到”被抑制。

这表示,在跳转目标查找没有结果情况下不中断程序加工,而以指令GOTOC下面的程序行继续进行。

跳转条件允许使用所有的比较运算和逻辑运算(结果:

TRUE或者FALSE。

如果这种

运算的结果为TRUE则执行程序跳转。

TRUE真实、准确)FALSE(错误)

特殊情况

一般情况

IFV跳转条件〉=TRUEGOTOIB跳转目标〉

IFV跳转条件〉=GOTOV跳转目标二

IFV跳转条件〉=TRUEGOTOV跳转目标〉

IFV跳转条件〉=GOTOFV跳转目标二

IFV跳转条件〉=TRUEGOTV跳转目标〉

IFV跳转条件〉=GOTOV跳转目标〉

IFV跳转条件〉=TRUEGOTOV跳转目标〉

IFV跳转条件〉=GOTOCV跳转目标二

CASE功能可以检测一个变量或者一个计算函数当前值(类型:

INT),

根据结果跳转到程序中的不同位置。

句法:

CASE(表达式>)OF<常量_1>GOTOF跳转目标_1><常量_2>GOTOF跳转目标

常量:

变量或者计算函数首先规定的恒定值

2>...DEFAULTGOTOF<跳转目标n>

DEFAULT:

对于变量或者计算函数没有采用规定值的情况,可以用DEFAULT指

令确定跳转目标。

N20DEFINTVAR1VAR2VAR3

N30CASE(VAR1+VAR2-VAR3)OF7GOTOFLabel_19GOTOFLabel_2DEFAULTGOTO

Label3

N40Label1:

GOX1Y1

N50Label2:

GOX2Y2

N60Label3:

G0X3Y3

CASE指令由N30定义下列程序分支可行性:

1.如果计算函数值VAR1+VAR2-VAR3=7则跳转到带有跳转标记定义的程序段

"Label_1"(—N40)。

2.如果计算函数值VAR1+VAR2-VAR3=9则跳转到带有跳转标记定义的程序段

"Label_2"(—N50)。

3.如果计算函数VAR1+VAR2-VAR3勺值既不等于7也不等于9,则跳转到带有跳转标

记定义的程序段“Label_3”(—N60)。

程序部分重复(REPEAT,REPEATB,ENDLABEL,P)

功能:

程序部分重复是指在一个程序中,可以任意组合重复已经编写的程序部分。

需要重复的程序行或程序段落带有跳转标记(标签)。

REPEATB:

重复程序行的指令

REPEAT:

重复程序段落的指令

1、重复单个程序行

<跳转标记>:

...

REPEATB跳转标记>P=vn>

2.重复跳转标记和REPEAT!

令之间的程序段落:

<跳转标记>:

...

REPEAT跳转标记>P=vn>

3.重复两个跳转标记间的段落:

<起始跳转标记>:

...

<结束跳转标记>:

...

REPEAT起始跳转标记><结束跳转标记>P=<n>

说明

REPEAT指令不能被括在这两个跳转标记之间。

如果在

REPEAT指令前找到了<起始跳转标记>,但在REPEAT指令

4.重复跳转标记和ENDLABEL间的

段落:

<跳转标记>:

...

ENDLABEL:

...

REPEAT跳转标记>P=vn>

说明

REPEAT指令不能被括在<跳转标记>和ENDLABEI之间。

女口果在REPEAT指令前找到了<跳转标记〉,但在

REPEAT指令前没有找至UENDLABEL贝U重复<跳转标记>和

REPEAT指令之间的程序段落。

前没有找到<结束跳转标记>,则重复<起始跳转标记>和REPEAT指令之间的程序段

洛。

示例1:

重复单个程序行

N10P0SITI0N1:

X10Y20

N20P0SITI0N2:

CYCLE(0,,9,8);位置循环

N30...

N40REPEATBP0SITI0N1P=5;执行程序段SATZN10五次

N50REPEATBP0SITI0N2;执行程序段N20一次

N60...

N70M30

示例2:

重复跳转标记和REPEAT指令之间的程序段落

N5R10=15

N10Begin:

R10=R10+1;宽度

N20Z=10-R10

N30G1X=R10F200

N40Y=R10

N50X=-R10

N60Y=-R10

N70Z=10+R10

N80REPEATBEGINP=4;执行N10至UN70程序部分四次

N90Z10

N100M30

示例3:

重复两个跳转标记间的段落

程序代码注释

N5R10=15

N10Begin:

R10=R10+1;宽度

N20Z=10-R10

N30G1X=R10F200

N40Y=R10

N50X=-R10

N60Y=-R10

N70END:

Z=10

N80Z10

N90CYCLE(10,20,30)

N100REPEATBEGINENDP=3;执行N10至UN70程序部分三次

N110Z10

N120M30

示例4:

重复跳转标记和ENDLABEL间的段落

N10G1F300Z-10

N20BEGIN1:

N30X10

N40Y10

N50BEGIN2:

N60X20

N70Y30

N80ENDLABEL:

Z10

N90X0Y0Z0

N100Z-10

N110BEGIN3:

X20

N120Y30

N130REPEATBEGIN3P=3;执行N110到N120程序部分三次

N140REPEATBEGIN2P=2;执行N50至UN80之间的程序部分两次

N150M100

N160REPEATBEGIN1P=2;执行N20至UN80之间的程序部分两次

N170Z10

N180X0Y0

N190M30

示例5:

铣削加工、采用不同的工艺加工钻孔位置

N10ZENTRIERBOHRER()换上定中钻头。

N20POS_1:

;钻孔位置1

N30X1Y1

N40X2

N50Y2

N60X3Y3

N70ENDLABEL:

N80POS_2:

;钻孔位置2

N90X10Y5

N100X9Y-5

N110X3Y3

N120ENDLABEL:

N130BOHRER();更换钻头和钻孔循环。

N140GEWINDE(6);换上螺纹钻M6和螺纹循环。

N150REPEATPOS_1;重复程序部分一次,自POS_1至UENDLABEL,

N160BOHRER();更换钻头和钻孔循环。

N170GEWINDE(8);换上螺纹钻M8和螺纹循环。

N180REPEATPOS_2;重复程序部分一次,自POS_2至UENDLABEL

N190M30

1、程序部分重复可以嵌套调用。

每次调用占用一个子程序级。

2、如果在执行程序重复过程中编程了M17或者RET则程序重复被停止。

程序接着从

REPEA指令行之后的语句开始运行。

3、在当前的程序显示中,程序重复部分作为单独的子程序级显示。

4、如果在执行程序部分重复过程中取消该级别,则在调用程序部分执行之后,继续加工该程序。

1、控制结构和程序部分重复可以组合使用。

示例6

N10G1F300Z-10

N20BEGIN1:

N30X=10

N40Y=10

N50GOTOFBEGIN2

N60ENDLABEL:

N70BEGIN2:

N80X20

N90Y30

N100ENDLABEL:

Z10

N110X0Y0Z0

N120Z-10

N130REPEATBEGIN1P=2

N140Z10

N150X0Y0

N160M30

说明:

REPEAT指令应位于运行程序段之后。

但是,两者之间不得产生重叠。

一个程序部分重复应该位于一个控制结构分支之内,或者一个控制结构位于一个程序部分重复部分之内。

2、如果跳转和程序重复部分交织在一起,则程序段按次序执行。

比如说,程序重复部分有一个跳跃,则一直进行加工,直至找到编程的程序结束部分。

带选项的程序循环(IF,ELSE,ENDIF)

IF<条件>

ELSE

ENDIF

当查询循环应包含一个可选的程序块时,可使用带IF和

ELSE的结构:

如果满足IF条件,则执行IF内的程序块。

如果IF条件不满足,则执行ELSE内可选的程序块。

说明:

如果不需要选择,则IF循环也可以不带ELSE指令,并对ELSE后的程序块编程。

计数循环(FOR...TO...,ENDFO)

FOR<变量>=<初值>TO<终值>

ENDFOR

示例1:

整数变量作为计数变量:

DEFINTiVARIABLEI

R10=R12-R20*R1R11=6

FORiVARIABLEI=R10TOR11;

计数变量=整数变量

R20=R21*R22+R33

ENDFOR

FOR:

引入计数循环。

ENDFOR一旦还没有得到计数终值,则标记循环结

束处并跳转到循环开头。

<变量>:

计数变量从初值开始向上计数,直到终值

且在每次运行时提高

值“1”。

示例2:

R参数作为计数变量:

R11=6

FORR10=R12-R20*R1TOR11;

计数变量=R参数(实数变量)

R20=R21*R22+R33

ENDFOR

M30

功能:

当一个带有一个确定值的操作程序被循环重复,计数循环就会被运行

M30

示例3:

加工一个固定的零件数

DEFINTSTUECKZAHL

FORSTUECKZAHL=0TO100

G01…

ENDFOR;计数循环结束

用名称“STUECKZAHL定义的INT型变量

引入计数循环。

变量“STUECKZAHL从初值“0”

向上计数,直到终值“100”。

M30

在循环开始处带有条件的程序循环(WHILEENDWHIL)

功能:

WHILE循环的开始是有条件的。

一旦满足条件,

WHILE循环即开始运行。

句法

注释

WHILE<条件>

WHILE:

引入程序循环。

ENDWHILE

<条件>:

必须满足条件,只有这样WHILE循环才能运行

3

・・・

ENDWHILE标记循环结束处并跳转到循环开头。

示例(方法1):

R参数赋值

示例(方法2):

变量赋值

R1=1

WHILE$AA_IW|占削轴]>-10;

WHILER1>-10

调用WHILE循环,当前的钻削轴WKS额定值必须大于

G90G1Z=-R1F169

-10。

R1=R1+1

G1G91F250AX[钻削轴]=-1

ENDWHILE

ENDWHILE

在循环结束处带有条件的程序循环(REPEATUNTIL)

句法

注释

功能

REPEAT;

调用REPEAT循环

REPEAT循环的结束是有条件的。

REPEAT

UNTIL...;

检查是否已满足条件。

循环一旦被执行会不断重复,直到满足条件为止

 

示例:

带层叠控制结构的程序示例

LOOP

IFNOT$P_SEARCH;没有程序段搜索

G01G90X0Z10F1000

WHILE$AA_IM[X]<=100

G1G91X10F500;钻孔图

Z-F100

Z5

ENDWHILE

Z10

ELSE

MSG(“在搜索过程中不钻

孔”)

ENDIF

$A_OUT[1]=1;下一个钻孔板

G4F2

ENDLOOP

M30

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1