變量/信號:
?如果對象是在SRC文件中定義的:
它在定義它的程序例程中有效,即在DEF和END(主程序或本地子程序)之間。SRC文件中定義的變量稱為“運行時變量”。
?如果對象是在DAT文件中定義的:它在屬于DAT文件的SRC文件中有效。
常數:在聲明數據列表所屬的模塊中有效。
用戶定義的數據類型:?如果數據類型是在SRC文件中定義的:它在定義它的程序級別上是有效的。
?如果數據類型在DAT文件中定義:它在屬于DAT文件的SRC文件中有效。
次級方案在共享SRC文件的主程序中有效。
作用在共享SRC文件的主程序中有效。
打斷從聲明它的程序級別起有效。以下內容始終有效:
?SRC文件中的第一個程序。默認情況下,它使用SRC文件的名稱。
? 預定義數據類型
KRL系統變量
?在$CONFIG.DAT中定義的可變變量和信號。在“本地”下提到的數據對象可以全局訪問。
如果一個本地對象和一個全局對象具有相同的名稱,那么編譯器將在其有效范圍內使用本地對象。
子程序、功能、中斷可全局使用。在約定時使用關鍵字GLOBAL。
子程序示例:
...
END
-------------------------------
GLOBAL DEF MY_SUBPROG
...
示例功能:
...
END
-------------------------------
GLOBAL DEFFCT INT MY_FCT(my_var:IN)
...
中斷示例
GLOBAL INTERRUPT DECL 23 WHEN $IN[12]==TRUE DO UP1(20,VALUE)
變量、常量、信號、用戶數據類型可全局使用
變量、信號和用戶定義的數據類型可以通過數據列表或$CONFIG.DAT全局訪問。
Konstanten必須始終在數據列表中聲明并同時初始化。因此,它們只能通過全局數據列表進行全局訪問。
使對象在全球范圍內可訪問數據列表:
在程序頭部的數據列表中添加關鍵字PUBLIC:
DEFDAT MY_PROG PUBLIC
2. 在協議中使用GLOBAL關鍵字。
示例(變量約定):
DEFDAT MY_PROG PUBLIC
EXTERNAL DECLARATIONS
DECL GLOBAL INT counter
...
ENDDAT
當在數據列表中達成一致時,GLOBAL可用于變量、信號和自定義數據類型編號。
PUBLIC專門用于此處描述的目的,即使某些數據對象與GLOBAL一起在數據列表中全局可用。
PUBLIC本身沒有效果。
$CONFIG.DAT
?$CONFIG中的對象。
在USER GLOBALS部分聲明DAT。
關鍵字GLOBAL不是必需的,也不能在此處使用。
在帶有關鍵字GLOBAL的數據列表中定義的數據類型可以在$CONFIG中輸入。
不應使用DAT。
例子:
在DEFDAT PROG()中,枚舉類型SWITCH_TYP是用關鍵字GLOBAL定義的:
DEFDAT PROG()
GLOBAL ENUM SWITCH_TYP ON, OFF
...
如果此數據類型在$CONFIG中。
如果使用DAT,編譯器會報告錯誤“類型未知:**DECL SWITCH _Type MY_VAR”
DEFDAT $CONFIG
DECL SWITCH_TYP MY_VAR
...
CONST:常數
在初始化后的程序運行過程中,不能更改常量的值。
常量可用于防止在程序運行過程中意外更改值。
常量必須在數據列表中聲明,同時的關鍵字CONST必須位于數據類型的前面。
DECL<GLOBAL>CONST數據類型變量name=We
審核編輯:黃飛
-
編譯器
+關注
關注
1文章
1655瀏覽量
49890 -
KUKA機器人
+關注
關注
4文章
144瀏覽量
9485
原文標題:KUKA機器人8.7: 重要的 KRL 概念-有效性領域
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
評論