- 3
- 0
- 约5.39千字
- 约 9页
- 2019-08-24 发布于安徽
- 举报
.
.
宏程序跳转及重复指令
GOTOS:
跳回到程序开始
GOTOB:
以程序开始方向的带跳转目标的跳转指令。
GOTOF:
以程序末尾方向的带跳转目标的跳转指令。
GOTO:
带跳转目标查找的跳转指令。 查找先向程序末尾方向进行,然后再从程序开始处进行查找。
GOTOC:
与 GOTO 有区别的是,报警 14080“跳转目标未找到”被抑制。这表示,在跳转目标查找没有结果情况下不中断程序加工,而以指令 GOTOC 下面的程序行继续进行。
跳转条件允许使用所有的比较运算和逻辑运算(结果: TRUE 或者FALSE)。 如果这种
运算的结果为TRUE,则执行程序跳转。TRUE(真实、准确) FALSE(错误)
特殊情况
一般情况
IF <跳转条件>=TRUE GOTOB <跳转目标>
IF <跳转条件>= GOTOB <跳转目标>
IF <跳转条件>=TRUE GOTOF <跳转目标>
IF <跳转条件>= GOTOF <跳转目标>
IF <跳转条件>=TRUE GOTO <跳转目标>
IF <跳转条件>= GOTO <跳转目标>
IF <跳转条件>=TRUE GOTOC <跳转目标>
IF <跳转条件>= GOTOC <跳转目标>
程序分支(CASE ... OF ... DEFAULT ...)
CASE 功能可以检测一个变量或者一个计算函数当前值 (类型: INT),
根据结果跳转到程序中的不同位置。
句法:CASE(表达式) OF 常量_1 GOTOF 跳转目标_1 常量_2 GOTOF 跳转目标_2 ... DEFAULT GOTOF 跳转目标_n
常量:
变量或者计算函数首先规定的恒定值
DEFAULT:
对于变量或者计算函数没有采用规定值的情况,可以用DEFAULT 指令确定跳转目标。
N20 DEF INT VAR1 VAR2 VAR3
N30 CASE(VAR1+VAR2-VAR3) OF 7 GOTOF Label_1 9 GOTOF Label_2 DEFAULT GOTOF Label_3
N40 Label_1: G0 X1 Y1
N50 Label_2: G0 X2 Y2
N60 Label_3: G0 X3 Y3
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=n
...
2.重复跳转标记和 REPEAT指令之间的程序段落:
跳转标记: ...
...
REPEAT 跳转标记 P=n
...
3.重复两个跳转标记间的段落:
起始跳转标记: ...
...
结束跳转标记: ...
...
REPEAT 起始跳转标记 结束跳转标记 P=n
...
说明
REPEAT 指令不能被括在这两个跳转标记之间。 如果在REPEAT 指令前找到了起始跳转标记,但在REPEAT 指令前没有找到结束跳转标记,则重复起始跳转标记和REPEAT 指令之间的程序段落。
4.重复跳转标记和 ENDLABEL 间的段落:
跳转标记: ...
...
ENDLABEL: ...
...
REPEAT 跳转标记 P=n
...
说明
REPEAT 指令不能被括在跳转标记和ENDLABEL 之间。 如果在REPEAT 指令前找到了跳转标记,但在REPEAT 指令前没有找到ENDLABEL,则重复跳转标记和
REPEAT 指令之间的程序段落。
示例 1: 重复单个程序行
N10 POSITION1: X10 Y20
N20 POSITION2: CYCLE(0,,9,8) ; 位置循环
N30 ...
N40 REPEATB POSITION1 P=5 ; 执行程序段 SATZ N10 五次
N50 REPEATB POSITION2 ; 执行程序段 N20 一次
N60 ...
N70 M30
示例 2: 重
原创力文档

文档评论(0)