请注意,半值对象(类型)可拒绝“按值”读取或更新。
比如,由于sig1表示一项输入器件,因此,sig1拒绝下列赋值。
VAR signaldi sig1;
... 程序参数:inout var
-X 程序参数:inout pers
i 有关目标的更多信息,请参见第69页的赋值语句和第78页的Connect语句。
ii 采用关联型(值)。
iii 参数var或ref的调用参数 iv 表达式中采用的对象
技术参考手册 - RAPID语言内核 37
2.16 数据类型的值类型 续前页
2.17 Equal型
定义
如果两个对象的结构(阶数、维度和分量数)相同并且满足下列任一条件,那么,这 两个对象的类型等同
• 两个对象具备同样的类型名(所包含的任意别名类型名称首先被定义类型所替 代)。
• 其中一个对象为一个聚合(数组或记录),(所有)相应元素/分量的类型都等 同。
• 其中一个对象为值型,另一个对象为半值型,第一个对象的类型和半值对象的 关联型等同。请注意,仅在值上下文中,这点方有效。
38 技术参考手册 - RAPID语言内核
2.17 Equal型
2.18 数据声明
<data declaration> ::=
[LOCAL] ( <variable declaration> | <persistent declaration> |
<constant declaration> )
| TASK ( <variable declaration> | <persistent declaration>
| <comment>
| <DDN>
关于永久数据对象
示例
描述 示例
变量的声明 LOCAL VAR num counter;
常量的声明 CONST num maxtemp := 39.5;
永久数据对象的声明 PERS pos refpnt := [100.23, 778.55,
1183.98];
永久数据对象的声明 TASK PERS num lasttemp := 19.2;
声明占位符
<DDN>
40 技术参考手册 - RAPID语言内核
2.18 数据声明 续前页
2.19 预定义数据对象
定义
预定义数据对象由系统提供,一直可供使用。预定义数据对象自动进行声明,可从任 何模块对其进行引用。请参见第133页的内置数据对象。
技术参考手册 - RAPID语言内核 41
2.19 预定义数据对象
2.20 数据对象的范围规则
定义
数据对象的范围表示对象的显示范围,取决于其声明的位置和上下文。
预定义数据对象的范围包括任何RAPID模块。
模块数据对象
在程序外声明的数据对象被称作模块数据对象(模块变量、模块常量或模块永久数据 对象)。下列范围规则对模块数据对象有效:
• 局部模块数据对象的范围包括其所处模块。
• 全局模块数据对象的范围还包括任务缓冲区的其他模块。
• 在范围之内,模块数据对象隐藏了同名的预定义对象。
• 在范围之内,局部模块数据对象隐藏了同名的全局模块对象。
• 同一模块中声明的两个模块对象不可同名。
• 任务缓冲区中,两个不同模块中声明的两个全局对象不可同名。
• 全局数据对象和模块不可共享同一名称。
程序数据对象
在程序内声明的数据对象被称作程序数据对象(程序变量、程序常量)。请注意,本 上下文中的程序数据对象概念也包括程序参数(参见第86页的参数声明)。
下列范围规则对程序数据对象有效:
• 程序数据对象的范围包括其所处程序。
• 在范围之内,程序数据对象隐藏了同名的预定义对象或用户定义对象。
• 同一程序中声明的两个程序数据对象不可同名。
• 程序数据对象不可与同一程序中声明的标签同名。
• 有关程序和任务模块的信息,请参见第85页的程序声明和第115页的任务模块。
42 技术参考手册 - RAPID语言内核
2.20 数据对象的范围规则
2.21 存储类别
定义
数据对象的存储类别决定了系统为数据对象分配内存和解除内存分配的时间。数据对 象的存储类别本身取决于数据对象的种类及其声明的上下文,既可为静态存储,也可 为易失存储。
常量、永久数据对象和模块变量为静态存储。当声明对象的模块(参见第115页的任务
模块)被加载后,将分配储存静态数据对象的值所需的内存。这意味着,为永久数据
对象或模块变量分配的值将一直保持不变,直至下一次赋值。程序变量(以及参数,请参见第86页的参数声明)属于易失存储类。在调用含变量声 明的程序后,将首次分配储存易失对象的值所需的内存。随后,在返回程序调用器时,
将解除内存分配。这也就是说,在程序调用前,程序变量的值一直都不明确,且在程 序执行结束时,常常会遗失该值(即,该值变为不明确)。
在递归程序调用(程序直接或间接调用自身)链中,针对“同一程序变量”,各个程序 实例均收到了自己的内存位置 - 即,生成了含相同变量的若干实例。
技术参考手册 - RAPID语言内核 43
2.21 存储类别
2.22 变量声明
定义
变量由变量声明引入。
<variable declaration> ::=
VAR <data type> <variable definition> ';'
<variable definition> ::=
<identifier> [ '{' <dim> { ',' <dim> } '}' ] [ ':=' <constant expression> ]
<dim> ::= <constant expression>
例如, VAR pos pallet{14, 18};
声明值型变量
值型变量(参见第36页的数据类型的值类型)可进行初始化(被赋予初始值)。用于 对变量进行初始化的常量表达式的数据类型必须等同于变量类型。
例如,
VAR string author_name := "John Smith";
VAR pos start := [100, 100, 50];