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結尾 ? ?生成枚舉數據類型 ①枚舉變量和常量的定義,如下圖所示。 ②工作變量的聲明,如下圖所示。 ③工作變量的初始化,如下圖所示。 ④工作變量的值比較,如下圖所示。
? ?
編輯:黃飛
?
評論
查看更多