abb工业机器人RAPID语言概览(中文)(5)

2018-12-08 20:43

1 基本RAPID编程

1.1.5 程序

1.1.5 程序

简介

程序(子程序)分为无返回值程序、有返回值程序和软中断程序这三类。 ? 无返回值程序不会返回数值。该程序用于指令中。

? 有返回值程序会返回一个特定类型的数值。该程序用于表达式中。

? 软中断程序提供了一种中断应对方式。一个软中断程序只对应一次特定中断。 一旦发生中断,则将自动执行对应软中断程序。但不能从程序中直接调用软中 断程序。

程序的范围

程序的范围是指可获得程序的区域。除非程序声明的可选局部命令将程序归为局部程 序(在模块内),不然则为全局程序。 例子:

LOCAL PROC local_routine (... PROC global_routine (...

程序适用的范围规则如下:

? 全局程序的范围可能包括任务中的任意模块; ? 局部程序的范围由其所处模块构成;

? 在范围内,局部程序会隐藏名称相同的所有全局程序或数据;

? 在范围内,程序会隐藏名称相同的所有指令、预定义程序和预定义数据。

xx1100000551

以上示例中,可从程序h中调用下述程序: ? 模块1:程序c和d; ? 模块2:所有程序。

同一模块中,某一程序的名称与另一程序、数据或数据类型的名称不一定相同。全局 程序的名称与对应模块或另一模块中的全局程序、全局数据或全局数据类型的名称不 一定相同。

参数

程序声明中的参数列表明确规定了调用程序时必须或能提供的参数(实参)。

下一页继续

技术参考手册 - RAPID语言概览

3HAC050947-010 修订: B

? 版权所有 2004-2015 ABB。保留所有权利。

21

1 基本RAPID编程

1.1.5 程序 续前页

参数包括四种(按访问模式区分):

? 正常情况下,参数仅用作输入,同时被视作程序变量。改变此变量,不会改变 对应参数; ? INOUT参数规定,对应参数必须为变量(整体、元素或部分)或对应参数必须 为可为程序所改变的完整的永久数据对象; ? VAR参数规定,对应参数必须为可为程序所改变的变量(整体、元素或部分); ? PERS参数规定,对应参数必须为可为程序所改变的完整的永久数据对象。 更新INOUT、VAR或PERS参数事实上就等同于更新了参数本身,借此可用参数将多个 数值返回到调用程序。 例子:

PROC routine1 (num in_par, INOUT num inout_par, VAR num var_par, PERS num pers_par)

此类参数是可选的,在程序调用的参数列表中可忽略。可选参数用反斜线(\\)+参数 表示。 例子:

PROC routine2 (num required_par \\num optional_par)

不可引用程序调用时会忽略的可选参数值,也就是说,在使用可选参数前,必须要检 查程序调用的可选参数。

两个或多个可选参数之间可能会互相排斥(声明互相排斥),也就是说同一程序调用 中只可能出现其中一个。这一情况通过在存疑参数之间加竖线(|)表明。 例子:

PROC routine3 (\\num exclude1 | num exclude2)

特殊类型switch可能(只能)属于可选参数,提供了一种运用转换参数(只能通过名 称—而非数值—确定)的方式。数值不能转为switch参数。要运用switch参数的唯 一方式就是运用预定义函数Present检查其存在。 例子:

PROC routine4 (\\switch on | switch off) ...

IF Present (off ) THEN ...

ENDPROC

数组可能会以参数的形式通过。数组参数的范围必须与相应形参的范围相符。数组参 数的阶数一致(带*标记)。因此实际阶数取决于程序调用中相应参数的阶数。程序借 用预定义函数 Dim可确定参数的实际阶数。 例子:

PROC routine5 (VAR num pallet{*,*})

程序终止

通过RETURN指令明确无返回值程序执行终止,或在到达无返回值程序末端(ENDPROC、 BACKWARD、ERROR或UNDO)时,即暗示执行终止。 有返回值程序求值必须通过RETURN指令终止。

运用RETURN指令明确软中断程序执行终止,或在到达软中断程序末端(ENDTRAP、 ERROR或UNDO)时,即暗示执行终止。下次会从中断点处开始继续执行。

下一页继续

22

? 版权所有 2004-2015 ABB。保留所有权利。

技术参考手册 - RAPID语言概览

3HAC050947-010 修订: B

1 基本RAPID编程

1.1.5 程序

续前页

程序声明

程序包含程序声明(包括参数)、数据、正文主体、反向处理器(仅限无返回值程 序)、错误处理器和撤销处理器。不能套入程序声明,也就是说,不能在程序中声明 程序。

xx1100000553

无返回值程序声明

如,用数值数组中的各元素乘以:

PROC arrmul( VAR num array{*}, num factor) FOR index FROM 1 TO dim( array, 1 ) DO array{index} := array{index} * factor; ENDFOR ENDPROC

有返回值程序声明

有返回值程序可返回任意数据类型的数值,但不能返回数组数值。 如,可返回矢量长度。

FUNC num veclen (pos vector)

RETURN Sqrt(Pow(vector.x,2)+Pow(vector.y,2)+Pow(vector.z,2)); ENDFUNC

软中断声明

如,对“给料机空载”所致中断的反应:

TRAP feeder_empty wait_feeder; RETURN; ENDTRAP

过程调用

调用一个过程时,应使用与该过程的参数对应的参数: ? 必须明确强制性参数,同时还须按正确顺序列出. ? 可选参数可忽略.

? 可用条件式参数,将参数从一个程序调用转到另一程序调用。 请参阅 第39页的运用表达式中的函数调用。

下一页继续

技术参考手册 - RAPID语言概览

3HAC050947-010 修订: B

? 版权所有 2004-2015 ABB。保留所有权利。

23

1 基本RAPID编程

1.1.5 程序 续前页

可用标识符(前期绑定)以静态方式指定过程名称或在串类型表达式运行时间内(后 期绑定)求得程序名称的值。前期绑定应被视作正常的过程调用形式,但有时后期绑 定却能提供极有效的紧凑编码。通过在代表过程名称的字符串前后添加百分比符号, 定义后期绑定。 例子:

! early binding TEST products_id CASE 1:

proc1 x, y, z; CASE 2:

proc2 x, y, z; CASE 3: ...

! same example using late binding

% “proc” + NumToStr(product_id, 0) % x, y, z; ...

! same example again using another variant of late binding VAR string procname {3} :=[“proc1”, “proc2”, “proc3”]; ...

% procname{product_id} % x, y, z; ...

注意后期绑定仅适用于过程调用,不适合函数调用。若要用后期绑定引用一个未知过 程,则将系统变量ERRNO设为ERR_REFUNKPRC;若要引用过程调用错误(语法,而 非过程),则将系统变量ERRNO设为ERR_CALLPROC。

语法 程序声明

::=

[LOCAL] ( | | ) | |

参数

::=

{ } ::= | |

::= ',' | | ',' | ','

::=

'\\' ( | ) { '|' ( | ) }

下一页继续

24

? 版权所有 2004-2015 ABB。保留所有权利。

技术参考手册 - RAPID语言概览

3HAC050947-010 修订: B

1 基本RAPID编程

1.1.5 程序

续前页

::=

[ VAR | PERS | INOUT]

[ '{' ( '*' { ',' '*' } ) | ] '}' | 'switch'

无返回值程序声明

::= PROC '(' [ ] ')'

[ BACKWARD ] [ ERROR ] [ UNDO ] ENDPROC

::=

::= {}

有返回值程序声明

::= FUNC '(' [ ] ')'

[ ERROR ] [ UNDO ] ENDFUNC

::=

软中断程序声明

::= TRAP

[ ERROR ] [ UNDO ] ENDTRAP

::=

过程调用

::= [ ] ';' ::=

| '%' '%'

::= {

}

::= | | |

下一页继续

技术参考手册 - RAPID语言概览

3HAC050947-010 修订: B

? 版权所有 2004-2015 ABB。保留所有权利。

25


abb工业机器人RAPID语言概览(中文)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:工商业并离网储能系统典型设计方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: