用 VARSTATE() 可以詢問變量的狀態。
VARSTATE() 是帶有 VAR_STATE 類型返還值的函數。VAR_STATE 是在系統中如
下定義的計數類型:
ENUM VAR_STATE DECLARED(已聲明), INITIALIZED(初始化), UNKNOWN(未發布)
VARSTATE 在系統中如下定義:
VAR_STATE VARSTATE(CHAR VAR_STR[80]:IN)
示例 1:
DEF PROG1()
INT MYVAR
...
IF VARSTATE("MYVAR")==#UNKNOWN THEN
$OUT[11]=TRUE
ENDIF
第一個 IF 條件為假,因為 MYVAR 已聲明。不設定輸出端 11。
...
IF VARSTATE("MYVAR")==#DECLARED THEN
$OUT[12]=TRUE
ENDIF
第二個 IF 條件為真,因為 MYVAR 已聲明。設定輸出端 12。
...
IF VARSTATE("ANYVAR")==#UNKNOWN THEN 變量未發布
$OUT[13]=TRUE
ENDIF
在 $CONFIG.DAT 中沒有名稱為 ANYVAR 的變量的情況下,第三個 IF 條件為真。設定輸出端 13。
...
MYVAR=9
...
IF VARSTATE("MYVAR")==#DECLARED THEN 變量已經發布
$OUT[14]=TRUE
ENDIF
第四個 IF 條件為假,因為 MYVAR 不僅已聲明,而且在該位置上已初始化。不設定輸出端 14。
...
IF VARSTATE("MYVAR")==#INITIALIZED THEN 變量在初始化狀態
$OUT[15]=TRUE
ENDIF
第五個 IF 條件為真,因為 MYVAR 已初始化。設定輸出端 15。
...
END
DEF PROG2()
INT MYVAR
INT YOURVAR
DECL VAR_STATE STATUS
...
STATUS=VARSTATE("MYVAR")
UP()
...
STATUS=VARSTATE("YOURVAR")
UP()
...
END
在該示例中,間接即通過附加的變量詢問狀態。附加的變量必須為 VAR_STATE 類型。對于聲明,不允許省略關鍵詞 DECL。附加變量的名稱為任意名稱。在該示例中,名稱為 STATUS。
在VASS標準中的使用-----例1
DEFFCTINT MAKRO0(ADV :IN)
IF VARSTATE ("ADV")<> #INITIALIZED THEN
如果變量"ADV"沒有之行初始化,就讓ADV=FALSE
ADV=FALSE
ENDIF
IF(NOT ADV)THEN 如果ADV=FALSE則開始執行MAKRO0里面的程序
;ENDFOLD
;ENDFOLD
…..
ENDIF
在VASS標準中的使用-----例2
USER程序中的一段
IF($softplcint[1]>0) AND $OUT[O_SZ1_FRG] AND (Varstate("act_P1")==#initialized)THEN
$softplcint[1]=7焊鉗外部軸基數=7,A715焊槍控制,act_P1激活的軌跡步變量如果被初始化
IF($softplcint[1]==7)THEN焊鉗外部軸基數=7
$FLAG[F_SZ1_Oeff_iO]=(act_P1.E1>=$COUNT_I[60])
E1值大于I60的值F745偏差合格
ENDIF
IF($softplcint[1]==8)THEN焊鉗外部軸基數=8
$FLAG[F_SZ1_Oeff_iO]=(act_P1.E2>=$COUNT_I[60])
E2值大于I60的值F745偏差合格
ENDIF
ELSE 如果沒有激活的話就關閉F745
$FLAG[F_SZ1_Oeff_iO]=FALSE
ENDIF
IF Varstate("SZNr")==#initialized then 如果SZNr焊鉗號變量已經初始化賦值
SWITCH SZNr 選擇焊鉗是多少進行選擇程序
CASE 1 鉗號1
Par[1] = { Par_type #Value , Par_int 1 }
………
ELSE如果SZNr焊鉗號變量沒賦值
Par[1]= { Par_type #Value, Par_txt[] " " }
編輯:jq
-
VaR
+關注
關注
0文章
39瀏覽量
11336 -
庫卡
+關注
關注
0文章
80瀏覽量
14222
原文標題:KUKA 機器人C4 中VARSTATE()函數的作用-w
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論