• 沒有找到結果。

数据声明

在文檔中 技术参考手册 (頁 29-34)

请参阅 第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 数据声明 续前页

在文檔中 技术参考手册 (頁 29-34)