1 基本RAPID编程
1.1.5 程序 续前页
','
26
? 版权所有 2004-2015 ABB。保留所有权利。
技术参考手册 - RAPID语言概览
3HAC050947-010 修订: B
1 基本RAPID编程
1.2.1 数据类型
1.2 程序数据 1.2.1 数据类型
简介
有三种数据类型:
? 显然从意义上讲,基本类型就是不是基于其他任意类型定义且不能再分为多个 部分的基本数据,如num。 ? 记录数据类型就是含多个有名称的有序部分的复合类型,如pos。其中任意部分 可能由基本类型构成,也可能由记录类型构成。 可用聚合表示法表示记录数值,如[ 300, 500, depth ] pos记录聚合值。 通过某部分的名称可访问数据类型的对应部分,如pos1.x:=300;pos1的x部分 赋值。
? 从定义上来讲,alias数据类型等同于其他类型。Alias类型可对数据对象进行分 类。
非值数据类型
一个有效数据类型要么是数值数据类型,要么是非值数据类型。简而言之,数值数据 类型仅代表部分数值形式。在数值导向操作中不能用非值数据: ? 初始化; ? 赋值(:=);
? 等于(=)和不等于(<>)检查; ? TEST指令;
? 程序调用中的IN(访问模式)参数; ? 有返回值程序(返回)数据类型。
输入数据类型(signalai、signaldi和signalgi)都由数据类型 半值构成。在数值导向 操作(除初始化和赋值外)中,可用这些数据。
在数据类型说明中,仅对何时是半值数据类型及何时是非值数据类型作了规定。
同等(alias)数据类型
alias根据定义,数据类型等同于另一类型。数据可用另一含相同数据类型的数据替 代。
例子:
VAR num level;
VAR dionum high:=1; level:= high;
由于dionum是num的一种alias数据类型,因此这样可行。
语法
[LOCAL] (
下一页继续
技术参考手册 - RAPID语言概览
3HAC050947-010 修订: B
? 版权所有 2004-2015 ABB。保留所有权利。
27
1 基本RAPID编程
1.2.1 数据类型 续前页
ALIAS
28
? 版权所有 2004-2015 ABB。保留所有权利。
技术参考手册 - RAPID语言概览
3HAC050947-010 修订: B
1 基本RAPID编程
1.2.2 数据声明
1.2.2 数据声明
简介
数据包括三种:
? 程序执行期间,可赋予一个变量一个新值。
? 一个数据可被称为永久变量。这点通过如下方式实现,即更新永久数据对象数 值自发导致待更新的永久声明数值初始化。(保存程序的同时,任意永久声明 的初始化值反映的都是对应永久数据对象的当前值。) ? 各常量代表各个静态值,不能赋予其新值。
数据声明通过将名称(标识符)与数据类型联系在一起,引入数据。除了预定义数据 和循环变量外,必须声明所用的其他所有数据。
数据的范围
数据的范围是指可获得数据的区域。除非数据声明的可选局部命令将数据归为局部数 据(在模块内),不然则为全局数据。注意局部命令仅限用于模块级,不能用在程序 内。
示例
LOCAL VAR num local_variable; VAR num global_variable;
程序数据
程序外声明的数据被称为程序数据。程序数据适用的范围规则如下: ? 预定义程序数据或全局程序数据的范围可能包括任何模块; ? 局部程序数据的范围由其所处模块构成;
? 在范围内,局部程序数据会隐藏名称相同的所有全局数据或程序(包括指令、 预定义程序和预定义数据)。 同一模块中,程序数据的名称与其他数据或程序的名称不一定相同。全局程序数据的 名称与另一模块中的全局数据或程序的名称不一定相同。
程序数据
程序内声明的数据被称作程序数据。注意程序参数也同样按程序数据处理。程序数据 适用的范围规则如下:
? 程序数据的范围由其所处程序构成;
? 在范围内,程序数据会隐藏名称相同的其他所有程序或数据。 程序数据的名称与同一程序中其他数据或标号的名称不一定相同。
示例
在该示例中,可从程序e中调用下述数据: ? 模块1:数据c和d; ? 模块2:数据a、f、g和e1。 可从程序h中调用下述数据: ? 模块1:数据d;
? 模块2:数据a、f、g、h1和c。
下一页继续
技术参考手册 - RAPID语言概览
3HAC050947-010 修订: B
? 版权所有 2004-2015 ABB。保留所有权利。
29
1 基本RAPID编程
1.2.2 数据声明 续前页
xx1100000554
变量声明
可通过变量声明引入变量。同时也可作系统全局、任务全局或局部变量声明。 例子:
VAR num globalvar := 123;
TASK VAR num taskvar := 456; LOCAL VAR num localvar := 789;
通过在声明中添加阶数信息,可赋予任一类变量一种数组(1阶、2阶和3阶)形式。 阶数是大于0的整数值。 例子:
VAR pos pallet{14, 18};
可初始化含各类数值的变量(赋予一个初始值)。程序变量初始化所用的表达式必须 为常量表达式。注意,也可用未初始化变量的数值,只是该值不明确,即将其设为零。 例子:
VAR string author_name := \VAR pos start := [100, 100, 50];
VAR num maxno{10} := [1, 2, 3, 9, 8, 7, 6, 5, 4, 3];
出现如下状况时,即设置初始化值: ? 开启程序;
? 从程序开始处执行程序。
永久数据对象声明
只能在模块级进行永久数据对象声明,在程序内不能。可作系统全局、任务全局或局 部永久数据对象声明。 例子:
PERS num globalpers := 123;
TASK PERS num taskpers := 456; LOCAL PERS num localpers := 789;
名称相同的所有系统全局永久数据对象共享当前值。任务全局和局部永久数据对象不 会与其他永久数据对象共享当前值。
下一页继续
30
? 版权所有 2004-2015 ABB。保留所有权利。
技术参考手册 - RAPID语言概览
3HAC050947-010 修订: B