一、流程控制指令- WHILE WHILE - 只要...便重复 只要给定条件表达式评估为TRUE值,当重复一些指令时,使用WHILE。 以下实例介绍了指令WHILE: 例 1 WHILE reg1
< reg2 DO !只要变量1小于变量1 ... reg1 := reg1 +
1; !便重复reg1加1赋值给reg1 ENDWHILE !结束循环 只要reg1 < reg2,则重复WHILE块中的指令。 说明:ABB机器人中的reg1代表一个寄存器。在ABB机器人的标准指令中,reg1可以作为一个变量使用,类似于其他编程语言中的变量。 例 2 WHILE
Condition DO ... ENDWHILE !只要条件为真,便重复 Condition 数据类型:bool !条件 必须评估为TRUE的条件为用以满足待执行WHILE块中指令的值。 程序执行 评估条件表达式。如果表达式评估为TRUE值,则执行WHILE块中的指令。 随后,再次评估条件表达式,且如果该评估结果为TRUE,则再次执行WHILE块中的指令。 该过程继续,直至表达式评估结果成为FALSE。 随后,终止迭代,并在WHILE块后,根据本指令,继续程序执行。 如果表达式评估结果在开始时为FALSE,则不执行WHILE块中的指令,且程序控制立即转移至WHILE块后的指令。 二、流程控制指令-FOR 如果可能确定重复的数量,则可以使用FOR指令。 FOR - 重复给定的次数 当一个或多个指令重复多次时,使用FOR 例 1 FOR i FROM 1
TO 10 DO routine1; !例行程序1 ENDFOR !结束重复 注释:重复routine1无返回值程序10次。 FOR Loop
counter FROM Start value TO End value [STEP Step value] DO
... ENDFOR Loop counter !循环计数器 Identifier !识别字(可用以进入程序或其中的数据集) 将包含当前循环计数器数值的数据名称。 自动声明该数据。 如果循环计数器名称与实际范围中存在的任意数据相同,则将现有数据隐藏在FOR循环中,且在任何情况下均不受影响。 Start value 数据类型:Num 循环计数器的期望起始值(通常为整数值)。 End value 数据类型:Num 循环计数器的期望结束值(通常为整数值)。 Step value 数据类型:Num 循环计数器在各循环的增量(或减量)值(通常为整数值)。 如果未指定该值,则自动将步进值设置为1(或者如果起始值大于结束值,则设置为-1)。 例 2 FOR i FROM 10
TO 2 STEP -2 DO a{i} :=
a{i-1}; ENDFOR 将数组中的数值向上调整,以便a{10}:=a{9}、a{8}:=a{7}等等。 程序执行条件 评估起始值、结束值和步进值的表达式。 向循环计数器分配起始值。 检查循环计数器的数值,以查看其数值是否介于起始值和结束值之间,或者是否等于起始值或结束值。如果循环计数器的数值在此范围之外,则FOR循环停止,且程序继续执行紧接ENDFOR的指令。 执行FOR循环中的指令。 按照步进值,使循环计数器增量(或减量)。 重复FOR循环,从点3开始。 限制条件 仅可在FOR循环内评估循环计数器(数据类型为num),随之隐藏其他具有相同名称的数据和路径。其仅可通过FOR循环中的指令来进行读取(未更新)。 无法使用起始值、结束值或停止值的小数值,以及FOR循环的确切终止条件(不确定最后的循环是否在运行中)。 语法 FOR <loop
variable> FROM <expression> TO <expression> [ STEP
<expression> ] DO <statement
list> ENDFOR 三、TEST - 根据表达式的值... 根据表达式或数据的值,当有待执行不同的指令时,使用TEST。 如果并没有太多的替代选择,则亦可使用IF..ELSE指令。 以下实例介绍了指令TEST: 例 1 TEST reg1 !根据变量1的值,执行不同的指令 CASE 1,2,3 : !如果该值为1、2或3时 routine1; !则执行routine1 CASE 4 : !如果该值为4 routine2; !则执行routine2 DEFAULT : !否则 TPWrite
'Illegal choice'; !打印出错误消息 Stop; !停止执行 ENDTEST 根据reg1的值,执行不同的指令。如果该值为1、2或3时,则执行routine1。如果该值为4,则执行routine2。否则,打印出错误消息,并停止执行。 TEST Test data
{CASE Test value {, Test value} : ...} [ DEFAULT: ...] ENDTEST Test data 数据类型:所有 用于比较测试值的数据或表达式。 Test value 数据类型:与test data相同 测试数据必须拥有的值,以供执行相关的指令。 将测试数据与第一个CASE条件中的测试值进行比较。如果对比真实,则执行相关指令。此后,通过ENDTEST后的指令,继续程序执行。 如果未满足第一个CASE条件,则对其他CASE条件进行测试等。如果未满足任何条件,则执行与DEFAULT相关的指令(如果存在)。 TEST
<expression> { CASE
<test value> { ',' <test value> } ':' <statement
list> } [ DEFAULT ':' <statement
list> ] ENDTEST -结束- ![]() 不要在意别人在背后怎么说你, 如果你太在意了,你的心就乱了, 心要是乱了,那就什么事都乱了。 守住这四个秘密,免灾祸,远是非: 1.不说自己的错事 2.不说自己的目标 3.不说自己的钱财, 4.不说自己的家事。 同时,不和重要的人计较不重要的事,不和不重要的人计较重要的事。 ![]() |
|