打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于ABB机器人常用流程控制指令WHILE、FOR、TEST的准确含义
userphoto

2024.06.20 天津

关注

一、流程控制指令- WHILE

WHILE - 只要...便重复

只要给定条件表达式评估为TRUE值,当重复一些指令时,使用WHILE

以下实例介绍了指令WHILE

1

WHILE reg1 < reg2 DO 只要变量1小于变量1

...

reg1 := reg1 + 1; 便重复reg11赋值给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 : !如果该值为123

routine1; !则执行routine1

CASE 4 : !如果该值为4

routine2; !则执行routine2

DEFAULT : !否则

TPWrite 'Illegal choice'; !打印出错误消息

Stop; !停止执行

ENDTEST

根据reg1的值,执行不同的指令。如果该值为123时,则执行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.不说自己的家事。 

同时,不和重要的人计较不重要的事,不和不重要的人计较重要的事。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ABB机器人赋值指令
CHAPTER 8 使用指令 - Velocity空间 - BlogJava
5.3功能指令-计数器指令
FANUC机器人循环指令介绍 | 机器人程序加注解流程
Python 的 and-or 技巧
verilog中的repeat的用法和例子
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服