• 沒有找到結果。

ii 执行错误(参见第17页的错误分类)。

在文檔中 技术参考手册 (頁 87-93)

X

参数inout pers

i 比如,FOR循环变量(参见第81页的For语句)、errno、intno。

ii 执行错误(参见第17页的错误分类)。

PROC glue ( \switch on | switch off, ... ! switch parameters ...

IF Present(off ) THEN

! check presence of optional parameter 'off' ...

ENDPROC

glue\off, pos2; ! argument use

数组

! num-matrix parameter

技术参考手册 - RAPID语言内核 87

5.2 参数声明 续前页

5.3 程序的范围规则

定义

对象的范围表示名称显示范围。预定义程序的范围包括RAPID模块。下列范围规则对 用户程序有效:

• 局部用户程序的范围包含其所处模块。

• 全局用户程序的范围还包括任务缓冲区的其他模块。

• 在范围之内,用户程序隐藏了同名的预定义对象。

• 在范围之内,局部用户程序隐藏了同名的全局模块对象。

• 同一模块中声明的两个模块对象不可同名。

• 任务缓冲区中,两个不同模块中声明的两个全局对象不可同名。

• 全局用户程序和模块不可共享同一名称。

其他范围规则

参数方面的范围规则与程序变量方面的范围规则相符。有关程序变量范围的信息,请 参见第42页的数据对象的范围规则。

有关任务模块的信息,请参见第115页的任务模块。

88 技术参考手册 - RAPID语言内核

5.3 程序的范围规则

5.4 无返回值程序声明

定义

无返回值程序声明为程序定义绑定一个标识符。

<procedure declaration> ::=

PROC <procedure name>

'(' [ <parameter list> ] ')'

<data declaration list>

<statement list>

[ BACKWARD <statement list> ]

[ ERROR [ <error number list> ] <statement list> ] [ UNDO <statement list> ]

ENDPROC

<procedure name> ::= <identifier>

<data declaration list> ::= { <data declaration> } 数据声明表可包含注释,请参见第28页的备注。

求值和终止

将以return语句(参见第73页的Return语句)来明确终止对无返回值程序的求值,或 在到达无返回值程序末尾(ENDPROC、BACKWARD、ERROR或UNDO)时,即暗示着其 执行终止。

比如,让num数组中的所有元素乘以:

PROC arrmul( VAR num array{*}, num factor) FOR index FROM 1 TO Dim( array, 1 ) DO

array{index} := array{index} * factor;

ENDFOR

ENDPROC ! implicit return

预定义Dim有返回值程序将返回数组的维度。

后期绑定

后期绑定调用中将用到的无返回值程序将被视作一个特例。即,(从同一后期绑定语 句调用的)无返回值程序的参数在可选/必要参数和模式方面应匹配,并且无返回值程 序的参数也应为同一基本类型。举例而言,如果需要一个无返回值程序的第二个参数,

并将该参数声明为VAR num,那么,被同一后期绑定语句调用的其他无返回值程序的 第二个参数,应具备第二个基本num型的必要VAR参数。这些无返回值程序也应具备同 样的参数号。如果存在相互排斥的可选参数,那么,这些可选参数也必须在同等意义 上匹配。

技术参考手册 - RAPID语言内核 89

5.4 无返回值程序声明

5.5 有返回值程序声明

定义

有返回值程序声明为有返回值程序定义绑定一个标识符。

<function declaration> ::=

FUNC <data type>

<function name>

'(' [ <parameter list> ] ')'

<data declaration list>

<statement list>

[ ERROR [ <error number list> ] <statement list> ] [ UNDO <statement list> ]

ENDFUNC

<function name> ::= <identifier>

有返回值程序可具备(返回)任意值数据类型(包括任何可用的安装数据类型)。有 返回值程序无法具备维度,即,有返回值程序无法返回数组值。

求值和终止

必须以return语句来终止有返回值程序的求值,参见第73页的Return语句。

如,可返回矢量长度。

FUNC num veclen(pos vector)

RETURN sqrt(quad(vector.x) + quad(vector.y) + quad(vector.z));

ERROR

IF ERRNO = ERR_OVERFLOW THEN RETURN maxnum;

ENDIF

! propagate "unexpected" error RAISE;

ENDFUNC

90 技术参考手册 - RAPID语言内核

5.5 有返回值程序声明

5.6 软中断程序声明

定义

软中断程序声明为软中断程序定义绑定一个标识符。软中断程序可用connect语句与 中断(编号)关联起来,请参见第78页的Connect语句。请注意,一个软中断程序可 与许多(或不与任何)中断关联起来。

<trap declaration> ::=

TRAP <trap name>

<data declaration list>

<statement list>

[ ERROR [ <error number list> ] <statement list> ] [ UNDO <statement list> ]

ENDTRAP

<trap name> ::= <identifier>

求值和终止

将利用return语句(参见第73页的Return语句)来明确终止软中断程序的求值,或者,

在到软中断程序的末尾(endtrap、error或undo)时,即暗示着终止软中断程序的 求值。将从中断点继续执行程序。

比如,响应低压中断。

TRAP low_pressure open_valve\slow;

! return to point of interrupt RETURN;

ENDTRAP

比如,响应高压中断。

TRAP high_pressure close_valve\fast;

! return to point of interrupt RETURN;

ENDTRAP

技术参考手册 - RAPID语言内核 91

5.6 软中断程序声明

在文檔中 技术参考手册 (頁 87-93)

相關文件