机器人
KRL中数据的保存
•使用KRL以变量工作
使用KRL对机器人进行编程时,在程序中使用的数据会有相应的类型来处理这些数据,变量就是用来保存这些数据的容器,每个变量都属于一个专门的数据类型,在使用前必须声明数据类型。在KRL中变量有局部变量和全局变量之分。
局部:局部变量可以分为程序文件(.src)中的局部变量或局部数据列表(*.dat)中的局部变量。如果变量是在.src文件中定义的,则该变量仅在程序运行时存在。我们将此称为“运行时间变量”。如果变量是在.dat文件中被定义为局部变量,并且仅在相关程序文件中已知,则其值在关闭程序后保持不变。
全局:如果变量为全局变量,则随时都可以显示。在这种情况下,变量必须保存在系统文件或者局部数据列表中作为全局变量。
•变量的命名规范
在选择变量名称时,务必遵守以下规定:
1)KRL中的名称最多允许24个字符
2)KRL中的名称允许含有字母(A-Z)、数字(0-9)以及特殊字符“_”和“$”
3)KRL中的名称不允许为关键词
4)KRL中的名称不允许以数字开头
5)大小写无关紧要
•KRL中的数据类型
1)预定义的标准数据类型
2)数组/Array
3)枚举类型
4)负荷数据类型/结构
•变量的有效性和生存期
KRL中变量的生存期
1)生存期是为变量预留存储位置的时间
2)运行时间变量在退出程序或功能时将其存储位置重又空出
3)而数据列表中的变量将当前(上一个)值永久性保存在其存储位置中
KRL中变量的有效性
1)局部声明的变量仅在其被声明的程序中可用并可见
2)而全局变量则建立在一个中央(全局)数据列表中
3)全局变量也可建立在一个局部数据列表中,声明时冠以关键词global(全局)
涉及到简单数据类型的工作
使用简单的数据类型有以下几种:
1)整数(INT):用于计数循环或件数计数器的经典计数变量
2)实数(REAL):为了避免四舍五入出错的运算结果
3)布尔数(BOOL):经典式“是”/“否”结果
4)单个字符(CHAR):仅是一个字符,字符串或者文本只能作为CHAR数组来实现
•变量的声明
变量在使用前必须先总是进行声明,每一个变量均划归一种数据类型,声明的关键词为DECL。
变量的声明以不同的形式进行:
1)在SRC文件中声明
2)在局部DAT文件中声明
3)在$CONFIG.DAT中声明
4)在局部DAT文件中配上关键词“全局”声明,因为从中得出相应变量的生存期和有效性
创建常量,要用关键词CONST建立,只允许在数据列表中建立
•变量声明的原理
SRC文件中的程序结构,在声明部分必须声明变量,初始化部分从第一个赋值开始,通常从“INI”行开始,在指令部分会赋值或更改值。
为了在使用某些模块时于INI行前进入声明部分,必须更改为专家模式使DEF行显示。
计划变量声明,要规定生存期,对于SRC文件程序运行结束时,运行时间变量“死亡”,对于DAT文件在程序运行结束后变量还保持着,也要规定有效性/可用性,变量仅在局部DEF和END行之间可用。
•声明简单数据类型变量时的操作步骤
1.在SRC文件中创建变量
进入专家用户组模式
使DEF行显示出来
在编辑器中打开SRC文件
声明变量,如下图所示。
关闭并保存程序
2. 在DAT文件中创建变量
①进入专家用户组模式
②在编辑器中打开DAT文件
③声明变量,如下图所示
④关闭并保存数据列表
3. 在$CONFIG.DAT中创建变量
进入专家用户组模式
在编辑器中打开SYSTEM(系统)文件夹中的$CONFIG.DAT,出现下图所示的界面
选择Fold“USERCLOBALS”,然后用软键“打开/关闭Fold”将其打开
声明变量,如下图所示
关闭并保存数据列表
4. 在DAT文件中创建全局变量
①进入专家用户组模式
②在编辑器中打开DAT文件
③通过关键词PULIC扩展程序头中的数据列表,如图所示。
④声明变量,如图所示。
⑤关闭并保存数据列表
•简单数据类型变量的初始化
在声明后变量都只预留了一个存储位置,其值总是无效值。在SRC文件中声明和初始化始终在两个独立的行中进行。在DAT文件中声明和初始化始终在一行中进行。常量仅可以在数据列表中声明并且必须当时立即初始化,初始化部分以第一次赋值开始。
•整数的初始化方法
1)初始化为十进制数,如下图所示
2)初始化为二进制数,如下图所示
3)初始化为十六进制数,如下图所示
•使用KRL初始化时的操作步骤
1.在SRC文件中声明和初始化
①在编辑器中打开SRC文件
②已声明完毕
③执行初始化,如下图所示
④关闭并保存程序
2. 在DAT文件中声明和初始化
①在编辑器中打开DAT文件
②已声明完毕
③执行初始化,如下图所示
④关闭并保存数据列表
3. 在DAT文件中声明和在SRC文件中初始化
①在编辑器中打开DAT文件
②进行声明,如下图所示
③关闭并保存数据列表
④在编辑器中打开SRC文件
⑤执行初始化,如下图所示
⑥关闭并保存程序
KRLArrays/数组
数组即Arrays,可为具有相同数据类型并借助下标区分的多个变量提供存储位置,数组的存储位置是有限的,即最大数组的大小取决于数据类型所需的存储空间大小。
声明时,数组大小金额数据类型必须已知,KRL中的起始下标始终从1开始,初始化始终可以逐个进行,在SRC文件中的初始化也可以采用循环方式进行。
数组的维数有1维数组,2维数组,3维数组,但KRL不支持4维及4维以上的数组。
•使用数组时的关联
1.数组变量的生存期和有效性与使用简单数据类型的变量时相同。
2.数组的声明和初始化可以通过以下几种方式进行:
①在SRC文件中建立数组声明,如下图所示
②在数据列表(即$CONFIG.DAT)中建立数组声明,如下图所示。
③在SRC文件中对数组进行声明并初始化,通过调用索引单独对每个数组进行声明和初始化,如下图所示。
另外,也可以用合适的循环,如下图所示。
④在数据列表中初始化数组,在每一个数组的数据列表中通过调用索引单独进行,接着将值显示在数据列表中,如下图所示。
但在数据列表中不允许进行如下图所示的声明和初始化
⑤在数据列表中对数组进行声明并在SRC文件中进行初始化,夹入数组是如此建立在数据列表中,则不能在数据列表中查看当前值,只能通过变量显示检查当前值,如下图所示。
并且,我们要借助循环初始化组,如下图所示,进行1维数组、2维数组和3维数组的初始化。 假如数组是如此建立在数据列表中的,则不能在数据列表中查看当前值只能通过变量显示检查当前值。 DEFDAT MY_PROG EXTERNAL DECLARATIONS DECL BOOL error[10] DEF MY_PROG ( ) INI error[1]=FALSE error[2]=FALSE error[3]=FALSE ... error[10]=FALSE 或 DEF MY_PROG ( ) INI FOR x = 1 TO 10 error[x]=FALSE ENDFOR 借助于循环进行初始化
1 维数组
DECL INT parts[15]
DECL INT x
FOR x = 1 TO 15
parts[x]= 4 ENDFOR 2 维数组 DECL INT parts_table[10,5] DECL INT x, y FOR x = 1 TO 10 FOR y = 1 TO 5 parts_table[x, y]= 6 ENDFOR ENDFOR 3 维数组 DECL INT parts_palette[5,4,3] DECL INT x, y, z FOR x = 1 TO 5 FOR y = 1 TO 4 FOR z = 1 TO 3 parts_palette[x, y, z]= 12 ENDFOR ENDFOR ENDFOR •使用Arrays时的操作步骤 ①确定数组的数据类型 ②确定数组的有效性和生存期 ③进行数组声明 ④初始化数组元素 ⑤在程序运行中,即始终在SRC文件中对数组进行操作 ⑥关闭并保存SRC文件,程序举例如下图所示。 DEF MY_PROG ( ) DECL REAL palette_size[10] DECL INT counter INI ;初始化 FOR counter = 1 TO 10 palette_size[counter] = counter * 1.5 ENDFOR ... ;单个更改值 palette_size[8] = 13 ... ;值比较 IF palette_size[3] > 4.2 THEN ... 枚举数据类型 枚举数据类型由一定量的常量(例如红、黄或蓝)组成。常量是可自由选择的名称,由编程员自己确定。一种枚举数据类型必须首先经过定义,然后才能继续使用。 •枚举数据类型的应用 枚举数据类型只能使用已知常量,并可任意扩展多次及任意使用,如下图所示。也可嵌入结构中。
枚举数据类型的有效性和生存期规定为,创建的局部枚举类型在到达END行便无效,在多个程序中使用的枚举类型必须在$CONFIG.DAT中进行声明。为了便于辨认,自定义的枚举类型应以TYPE结尾 •生成枚举数据类型 ①枚举变量和常量的定义,如下图所示。 ②工作变量的声明,如下图所示。 ③工作变量的初始化,如下图所示。 ④工作变量的值比较,如下图所示。
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !