请参阅 第39页的运用表达式中的函数调用。
1.2 程序数据 .1 数据类型
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语言概览 29
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 := "John Smith";
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 技术参考手册 - RAPID语言概览
1.2.2 数据声明 续前页
必须赋予局部和任务全局永久数据对象一个初始化值。而对于系统全局永久数据对象,
可忽略初始值。初始化值必须为单一值(不含数据引用对象或数据运算对象)或由多 个单一值或单一聚合体构成的单一聚合体。
例子:
PERS pos refpnt := [100.23, 778.55, 1183.98];
通过在声明中添加阶数信息,可赋予任一类永久数据对象一种数组(1阶、2阶和3阶)
形式。阶数是大于0的整数值。
例子:
PERS pos pallet{14, 18} := [...];
注意,永久数据对象的当前值变更时,永久数据对象声明的初始化值(若未忽略)也 会随之更新。但在程序执行期间,因执行问题,不会更新。保存模块(备份
(Backup)、保存模块(Save Module)和保存程序(Save Program))的同时会 更新初始值。另外,在编辑程序时,也会更新。FlexPendant上的程序数据窗口会一 直显示永久数据对象的当前值。
例子:
PERS num reg1 := 0;
...
reg1 := 5;
After module save, the saved module looks like this:
PERS num reg1 := 5;
CONST num pi := 3.141592654;
通过在声明中添加阶数信息,可赋予任一类常量一种数组(1阶、2阶和3阶)形式。
阶数是大于0的整数值。
CONST pos seq{3} := [[614, 778, 1020], [914, 998, 1021], [814, 998, 1022]];
启动数据
!Correct syntax
CONST num ab := a + b;
VAR num a_b := a + b;
PERS num a__b := 5; !
!Faulty syntax
PERS num a__b := a + b;
下一页继续
技术参考手册 - RAPID语言概览 31
1.2.2 数据声明 续前页
通过下表您可了解各种活动(如重启、新程序或程序启动等)中出现的各种情况。 序(Call Routine))
启动程序
(移动 PP to Cursor)
启动程序
(移动 PP to Routine)
启动程序
(移动 PP to Main)
打开、关 SYS_RESET
(有运动
<data declaration> ::=
[LOCAL] ( <variable declaration>
| <persistent declaration>
| <constant declaration> )
| TASK <persistent declaration>
| <comment>
| <DDN>
变量声明
<variable declaration> ::=
VAR <data type> <variable definition> ';'
<variable definition> ::=
<identifier> [ '{' <dim> { ',' <dim> } '}' ] [ ':=' <constant expression> ]
下一页继续
32 技术参考手册 - RAPID语言概览
1.2.2 数据声明 续前页
<dim> ::= <constant expression>
永久数据对象声明
<persistent declaration> ::=
PERS <data type> <persistent definition> ';'
<persistent definition> ::=
<identifier> [ '{' <dim> { ',' <dim> } '}' ] [ ':=' <literal expression> ]
注意
只有系统全局永久数据对象的文字表达式可忽略。
常量声明
<constant declaration> ::=
CONST <data type> <constant definition> ';'
<constant definition> ::=
<identifier> [ '{' <dim> { ',' <dim> } '}' ] ':=' <constant expression>
<dim> ::= <constant expression>
技术参考手册 - RAPID语言概览 33
1.2.2 数据声明 续前页