1 基本RAPID编程
1.3.1 表达式类型 续前页
串表达式
串表达式用于执行字符串相关运算。 如,“IN” + “PUT”给出结果“INPUT”
运算符 +
操作 串连接
运算元类型 string + string
结果类型 string
36
? 版权所有 2004-2015 ABB。保留所有权利。
技术参考手册 - RAPID语言概览
3HAC050947-010 修订: B
1 基本RAPID编程
1.3.2 运用表达式中的数据
1.3.2 运用表达式中的数据
简介
变量、永久数据对象或常量整体可作为表达式的组成部分。 例子:
2*pi*radius
数组
整个数组或单一元素中可引用声明为数组的变量、永久数据对象或常量。
运用元素的索引号引用数组元素。索引号为大于0的整数值,不会违背所声明的阶数。 索引值1对应的是第一个元素。索引表中的元素量必须与声明的数组阶数(1阶、2阶 或3阶)相配。 例子:
VAR num row{3}; VAR num column{3}; VAR num value;
! get one element from the array value := column{3};
! get all elements in the array row := column;
记录
整个记录或单一部分中可引用声明为记录的变量、永久数据对象或常量。 运用部分名称引用记录部分。 例子:
VAR pos home; VAR pos pos1; VAR num yvalue; ..
! get the Y component only yvalue := home.y; ! get the whole position pos1 := home;
技术参考手册 - RAPID语言概览
3HAC050947-010 修订: B
? 版权所有 2004-2015 ABB。保留所有权利。
37
1 基本RAPID编程
1.3.3 运用表达式中的聚合体
1.3.3 运用表达式中的聚合体
简介
聚合体可用于记录或数组数值中。 例子:
! pos record aggregate pos := [x, y, 2*x];
! pos array aggregate
posarr := [[0, 0, 100], [0,0,z]];
操作前提
必须根据上下文确定范围内聚合项的数据类型。各聚合项的数据类型必须等于类型确 定的相应项的类型。
示例(通过p1确定的聚合类型pos - ):
VAR pos pl; p1 :=[1, -100, 12];
不允许存在(由于任意聚合体的数据类型都不能通过范围决定,因此不允许存在)的 示例:
VAR pos pl;
IF [1, -100, 12] = [a,b,b,] THEN
38
? 版权所有 2004-2015 ABB。保留所有权利。
技术参考手册 - RAPID语言概览
3HAC050947-010 修订: B
1 基本RAPID编程
1.3.4 运用表达式中的函数调用
1.3.4 运用表达式中的函数调用
简介
通过函数调用,求特定函数的值,同时接收函数返回的值。 例子:
Sin(angle)
变元
运用函数调用的参数将数据传递至所调用的函数(及也可从调用的函数中调动数据)。 参数的数据类型必须与相应函数参数的类型相同。可选参数可忽略,但(当前)参数 的顺序必须与形参的顺序相同。此外,声明两个及两个以上可选参数相互排斥,在此 情况下,同一参数列表中只能存在一个可选参数。
用逗号“,”将必要(强制性)参数与前一参数隔开。形参名称既可列入其中,也可忽略。
示例
Polar(3.937, 0.785398) Polar(Dist:=3.937,
Angle:=0.785398) Cosine(45)
Cosine(0.785398\\Rad) Dist(p2)
Dist(\\distance:=pos1, p2)
描述
两个含或不含参数名称的必要参数。
一个含或不含一个开关的必要参数。 一个含或不含一个可选参数的必要参数。
可选参数前必须加一反斜线“\\”和形参名称。开关型参数具有一定的特殊性,可能不含 任何参数表达式。而且此类参数就只有“存在”或“不存在”两种情况。
运用条件式参数,支持可选参数沿程序调用链平稳延伸。若存在指定的(调用函数的) 可选参数,则可认为条件式参数“存在”,反之则可认为已忽略。注意指定参数必须为 可选参数。 例子:
PROC Read_from_file (iodev File \\num Maxtime) ..
character:=ReadBin (File \\Time?Maxtime);
! Max. time is only used if specified when calling the routine ! Read_from_file ..
ENDPROC
参数
函数参数列表为各个参数指定了一种访问模式。访问模式包括in、inout、var或pers: ? 一个IN参数(默认)允许参数成为任意表达式。所调用的函数将该参数视作常 量。
? 一个INOUT参数要求相应参数为变量(整体、数组元素或记录部分)或一个永 久数据对象整体。所调用的函数可全面(读/写)接入参数。
? 一个VAR参数要求相应参数为变量(整体、数组元素或记录部分)。所调用的函 数可全面(读/写)接入参数。
? 一个PERS参数要求相应参数为永久数据对象整体。所调用的函数可全面(读/更 新)接入参数。
技术参考手册 - RAPID语言概览
3HAC050947-010 修订: B
? 版权所有 2004-2015 ABB。保留所有权利。
39
1 基本RAPID编程
1.3.5 运算符之间的优先级
1.3.5 运算符之间的优先级
优先级规则
相关运算符的相对优先级决定了求值的顺序。圆括号能够覆写运算符的优先级。下述 规则暗示了如下运算符优先级:
优先级 最高
操作员 * / DIV MOD + -
< > <> <= >= = AND
最低
XOR OR NOT
先求解优先级较高的运算符的值,然后再求解优先级较低的运算符的值。优先级相同 的运算符则按从左到右的顺序挨个求值。
示例表达式 a + b + c a + b * c a OR b OR c
a AND b OR c AND d a < b AND c < d
求值顺序 (a + b) + c a + (b * c) (a OR b) OR c
备注
从左到右的规则 *高于+
从左到右的规则
(a AND b) OR (c AND d) AND高于OR (a < b) AND (c < d)
<高于AND
40
? 版权所有 2004-2015 ABB。保留所有权利。
技术参考手册 - RAPID语言概览
3HAC050947-010 修订: B