KRL中數(shù)據(jù)的保存
?使用KRL以變量工作
使用KRL對機器人進行編程時,在程序中使用的數(shù)據(jù)會有相應(yīng)的類型來處理這些數(shù)據(jù),變量就是用來保存這些數(shù)據(jù)的容器,每個變量都屬于一個專門的數(shù)據(jù)類型,在使用前必須聲明數(shù)據(jù)類型。在KRL中變量有局部變量和全局變量之分。
局部:局部變量可以分為程序文件(.src)中的局部變量或局部數(shù)據(jù)列表(*.dat)中的局部變量。如果變量是在.src文件中定義的,則該變量僅在程序運行時存在。我們將此稱為“運行時間變量”。如果變量是在.dat文件中被定義為局部變量,并且僅在相關(guān)程序文件中已知,則其值在關(guān)閉程序后保持不變。
全局:如果變量為全局變量,則隨時都可以顯示。在這種情況下,變量必須保存在系統(tǒng)文件或者局部數(shù)據(jù)列表中作為全局變量。
?變量的命名規(guī)范
在選擇變量名稱時,務(wù)必遵守以下規(guī)定:
1)KRL中的名稱最多允許24個字符
2)KRL中的名稱允許含有字母(A-Z)、數(shù)字(0-9)以及特殊字符“_”和“$”
3)KRL中的名稱不允許為關(guān)鍵詞
4)KRL中的名稱不允許以數(shù)字開頭
5)大小寫無關(guān)緊要
?KRL中的數(shù)據(jù)類型
1)預(yù)定義的標(biāo)準(zhǔn)數(shù)據(jù)類型
2)數(shù)組/Array
3)枚舉類型
4)負(fù)荷數(shù)據(jù)類型/結(jié)構(gòu)
?變量的有效性和生存期
KRL中變量的生存期
1)生存期是為變量預(yù)留存儲位置的時間
2)運行時間變量在退出程序或功能時將其存儲位置重又空出
3)而數(shù)據(jù)列表中的變量將當(dāng)前(上一個)值永久性保存在其存儲位置中
KRL中變量的有效性
1)局部聲明的變量僅在其被聲明的程序中可用并可見
2)而全局變量則建立在一個中央(全局)數(shù)據(jù)列表中
3)全局變量也可建立在一個局部數(shù)據(jù)列表中,聲明時冠以關(guān)鍵詞global(全局)
涉及到簡單數(shù)據(jù)類型的工作
使用簡單的數(shù)據(jù)類型有以下幾種:
1)整數(shù)(INT):用于計數(shù)循環(huán)或件數(shù)計數(shù)器的經(jīng)典計數(shù)變量
2)實數(shù)(REAL):為了避免四舍五入出錯的運算結(jié)果
3)布爾數(shù)(BOOL):經(jīng)典式“是”/“否”結(jié)果
4)單個字符(CHAR):僅是一個字符,字符串或者文本只能作為CHAR數(shù)組來實現(xiàn)
?變量的聲明
變量在使用前必須先總是進行聲明,每一個變量均劃歸一種數(shù)據(jù)類型,聲明的關(guān)鍵詞為DECL。
變量的聲明以不同的形式進行:
1)在SRC文件中聲明
2)在局部DAT文件中聲明
3)在$CONFIG.DAT中聲明
4)在局部DAT文件中配上關(guān)鍵詞“全局”聲明,因為從中得出相應(yīng)變量的生存期和有效性
創(chuàng)建常量,要用關(guān)鍵詞CONST建立,只允許在數(shù)據(jù)列表中建立
?變量聲明的原理
SRC文件中的程序結(jié)構(gòu),在聲明部分必須聲明變量,初始化部分從第一個賦值開始,通常從“INI”行開始,在指令部分會賦值或更改值。
為了在使用某些模塊時于INI行前進入聲明部分,必須更改為專家模式使DEF行顯示。
計劃變量聲明,要規(guī)定生存期,對于SRC文件程序運行結(jié)束時,運行時間變量“死亡”,對于DAT文件在程序運行結(jié)束后變量還保持著,也要規(guī)定有效性/可用性,變量僅在局部DEF和END行之間可用。
?聲明簡單數(shù)據(jù)類型變量時的操作步驟
1.在SRC文件中創(chuàng)建變量
進入專家用戶組模式
使DEF行顯示出來
在編輯器中打開SRC文件
聲明變量,如下圖所示。
關(guān)閉并保存程序
2. 在DAT文件中創(chuàng)建變量
①進入專家用戶組模式
②在編輯器中打開DAT文件
③聲明變量,如下圖所示
④關(guān)閉并保存數(shù)據(jù)列表
3. 在$CONFIG.DAT中創(chuàng)建變量
進入專家用戶組模式
在編輯器中打開SYSTEM(系統(tǒng))文件夾中的$CONFIG.DAT,出現(xiàn)下圖所示的界面
選擇Fold“USERCLOBALS”,然后用軟鍵“打開/關(guān)閉Fold”將其打開
聲明變量,如下圖所示
關(guān)閉并保存數(shù)據(jù)列表
4. 在DAT文件中創(chuàng)建全局變量
①進入專家用戶組模式
②在編輯器中打開DAT文件
③通過關(guān)鍵詞PULIC擴展程序頭中的數(shù)據(jù)列表,如圖所示。
④聲明變量,如圖所示。
⑤關(guān)閉并保存數(shù)據(jù)列表
?簡單數(shù)據(jù)類型變量的初始化
在聲明后變量都只預(yù)留了一個存儲位置,其值總是無效值。在SRC文件中聲明和初始化始終在兩個獨立的行中進行。在DAT文件中聲明和初始化始終在一行中進行。常量僅可以在數(shù)據(jù)列表中聲明并且必須當(dāng)時立即初始化,初始化部分以第一次賦值開始。
?整數(shù)的初始化方法
1)初始化為十進制數(shù),如下圖所示
2)初始化為二進制數(shù),如下圖所示
3)初始化為十六進制數(shù),如下圖所示
?使用KRL初始化時的操作步驟
1.在SRC文件中聲明和初始化
①在編輯器中打開SRC文件
②已聲明完畢
③執(zhí)行初始化,如下圖所示
④關(guān)閉并保存程序
2. 在DAT文件中聲明和初始化
①在編輯器中打開DAT文件
②已聲明完畢
③執(zhí)行初始化,如下圖所示
④關(guān)閉并保存數(shù)據(jù)列表
3. 在DAT文件中聲明和在SRC文件中初始化
①在編輯器中打開DAT文件
②進行聲明,如下圖所示
③關(guān)閉并保存數(shù)據(jù)列表
④在編輯器中打開SRC文件
⑤執(zhí)行初始化,如下圖所示
⑥關(guān)閉并保存程序
KRLArrays/數(shù)組
數(shù)組即Arrays,可為具有相同數(shù)據(jù)類型并借助下標(biāo)區(qū)分的多個變量提供存儲位置,數(shù)組的存儲位置是有限的,即最大數(shù)組的大小取決于數(shù)據(jù)類型所需的存儲空間大小。
聲明時,數(shù)組大小金額數(shù)據(jù)類型必須已知,KRL中的起始下標(biāo)始終從1開始,初始化始終可以逐個進行,在SRC文件中的初始化也可以采用循環(huán)方式進行。
數(shù)組的維數(shù)有1維數(shù)組,2維數(shù)組,3維數(shù)組,但KRL不支持4維及4維以上的數(shù)組。
?使用數(shù)組時的關(guān)聯(lián)
1.數(shù)組變量的生存期和有效性與使用簡單數(shù)據(jù)類型的變量時相同。
2.數(shù)組的聲明和初始化可以通過以下幾種方式進行:
①在SRC文件中建立數(shù)組聲明,如下圖所示
②在數(shù)據(jù)列表(即$CONFIG.DAT)中建立數(shù)組聲明,如下圖所示。
③在SRC文件中對數(shù)組進行聲明并初始化,通過調(diào)用索引單獨對每個數(shù)組進行聲明和初始化,如下圖所示。
另外,也可以用合適的循環(huán),如下圖所示。
④在數(shù)據(jù)列表中初始化數(shù)組,在每一個數(shù)組的數(shù)據(jù)列表中通過調(diào)用索引單獨進行,接著將值顯示在數(shù)據(jù)列表中,如下圖所示。
但在數(shù)據(jù)列表中不允許進行如下圖所示的聲明和初始化 ?
⑤在數(shù)據(jù)列表中對數(shù)組進行聲明并在SRC文件中進行初始化,夾入數(shù)組是如此建立在數(shù)據(jù)列表中,則不能在數(shù)據(jù)列表中查看當(dāng)前值,只能通過變量顯示檢查當(dāng)前值,如下圖所示。
并且,我們要借助循環(huán)初始化組,如下圖所示,進行1維數(shù)組、2維數(shù)組和3維數(shù)組的初始化。 假如數(shù)組是如此建立在數(shù)據(jù)列表中的,則不能在數(shù)據(jù)列表中查看當(dāng)前值只能通過變量顯示檢查當(dāng)前值。 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 借助于循環(huán)進行初始化
1 維數(shù)組
DECL INT parts[15]
DECL INT x
FOR x = 1 TO 15
parts[x]= 4 ENDFOR 2 維數(shù)組 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 維數(shù)組 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時的操作步驟 ①確定數(shù)組的數(shù)據(jù)類型 ②確定數(shù)組的有效性和生存期 ③進行數(shù)組聲明 ④初始化數(shù)組元素 ⑤在程序運行中,即始終在SRC文件中對數(shù)組進行操作 ⑥關(guān)閉并保存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 ... ? 枚舉數(shù)據(jù)類型 枚舉數(shù)據(jù)類型由一定量的常量(例如紅、黃或藍)組成。常量是可自由選擇的名稱,由編程員自己確定。一種枚舉數(shù)據(jù)類型必須首先經(jīng)過定義,然后才能繼續(xù)使用。 ?枚舉數(shù)據(jù)類型的應(yīng)用 枚舉數(shù)據(jù)類型只能使用已知常量,并可任意擴展多次及任意使用,如下圖所示。也可嵌入結(jié)構(gòu)中。
?
枚舉數(shù)據(jù)類型的有效性和生存期規(guī)定為,創(chuàng)建的局部枚舉類型在到達END行便無效,在多個程序中使用的枚舉類型必須在$CONFIG.DAT中進行聲明。為了便于辨認(rèn),自定義的枚舉類型應(yīng)以TYPE結(jié)尾 ? ?生成枚舉數(shù)據(jù)類型 ①枚舉變量和常量的定義,如下圖所示。 ②工作變量的聲明,如下圖所示。 ③工作變量的初始化,如下圖所示。 ④工作變量的值比較,如下圖所示。
? ?
編輯:黃飛
?
評論
查看更多