CWRITE
CWRITE 將數(shù)據(jù)寫(xiě)入打開(kāi)的串行接口或加載的 LD_EXT_OBJ 類型的外部模塊。在加載的 LD_EXT_FCT 類型的外部模塊中,CWRITE 調(diào)用一個(gè)函數(shù)。
CWRITE 將命令寫(xiě)入命令通道。
CWRITE 觸發(fā)提前運(yùn)行停止。
CWRITE ( Handle or $CMD, State, Mode, Format, Var1 <, ..., Var10>)
Handle/$CMD
類型:INT
句柄:由 COPEN 傳輸?shù)?WRITE 的變量,用于標(biāo)識(shí)通道
$CMD:用于寫(xiě)入命令通道的預(yù)定義變量
State:Type: STATE_T
自動(dòng)返回到 WRITE 的狀態(tài)
Mode : Type: INT
類型:MODUS_T
寫(xiě)入模式, 必須初始化模式。
Format: Type: CHAR[]
在將 Var 變量寫(xiě)入字符串之前轉(zhuǎn)換它們。必須為每個(gè) Var 變量指定格式.
Var:
其數(shù)據(jù)寫(xiě)入字符串的變量。每個(gè)語(yǔ)句最多可以有 10 個(gè)變量。
寫(xiě)模式Mode
寫(xiě)入模式由 MODUS_T 類型的變量確定。MODUS_T 是一個(gè)預(yù)定義的枚舉類型:
ENUM MODUS_T SYNC, ASYNC, ABS, COND, SEQ 對(duì)于 CWRITE,只有 SYNC 和 ASYNC 相關(guān):
SYNC同步
一旦伙伴控制器從接收緩沖區(qū)中取出傳輸?shù)臄?shù)據(jù),則認(rèn)為該語(yǔ)句已執(zhí)行。
ASYNC異步
寫(xiě)入 LD_EXT_FCT 類型的外部模塊時(shí),不允許 ASYNC 模式!
以下適用于所有其他通道:一旦數(shù)據(jù)到達(dá)伙伴控制器的接收緩沖區(qū),則認(rèn)為該語(yǔ)句已執(zhí)行。
優(yōu)于 SYNC:程序執(zhí)行速度更快。
與 SYNC 相比的缺點(diǎn):可能會(huì)丟失數(shù)據(jù)。
其他價(jià)值
如果模式具有 SYNC 或 ASYNC 以外的值,則默認(rèn)在 SYNC 模式下執(zhí)行寫(xiě)入。
例如:
CWRITE($CMD,STAT,MODE,"RUN /R1/CELL ()")程序執(zhí)行CELL程序
$CMD
通過(guò)命令通道$ CMD進(jìn)行通信
CWRITE可以通過(guò)命令通道將語(yǔ)句傳輸?shù)匠绦蚪忉屍?。示例:通過(guò)RUN啟動(dòng)程序并使用STOP將其停止。
與命令通道$ CMD通信
命令通道:?jiǎn)?dòng)、停止和取消選擇程序
程序 A6.SRC 將通過(guò)命令通道啟動(dòng)、停止和取消選擇。這是通過(guò) SUB 文件中的以下程序行來(lái)完成的。
DECL STATE_T STAT
DECL MODUS_T MODE
MODE=#SYNC
...
;select program A6()
;to start the program the START-button or
;an external start-signal is needed
IF $FLAG[1]==TRUE THEN
CWRITE($CMD,STAT,MODE,"RUN/R1/A6()")運(yùn)行程序
$FLAG[1]=FALSE
ENDIF
;stop program A6()
IF $FLAG[2]==TRUE THEN
CWRITE($CMD,STAT,MODE,"STOP 1")程序停止
$FLAG[2]=FALSE
ENDIF
;cancel program A6()
IF $FLAG[3]==TRUE THEN
CWRITE($CMD,STAT,MODE,"CANCEL 1") 退出程序
$FLAG[3]=FALSE
ENDIF
轉(zhuǎn)換示例:
例子1
整數(shù)變量 VI 的值以十進(jìn)制和十六進(jìn)制 ASCII 表示法傳輸。第一個(gè) CWRITE 語(yǔ)句傳輸字符 123。第二個(gè) CWRITE 語(yǔ)句傳輸字符 7B。
INT VI
VI=123
CWRITE(HANDLE,SW_T,MW_T,"%d",VI)
CWRITE(HANDLE,SW_T,MW_T,"%x",VI)
例子2
整數(shù)變量 VI 的值以二進(jìn)制表示法傳輸:
INT VI
VI=123
CWRITE(HANDLE,SW_T,MW_T,"%r",VI)
例子3
傳輸數(shù)組的所有數(shù)組元素:
REAL VR[10]
CWRITE(HANDLE,SW_T,MW_T,"%r",VR[])
使用“%r”格式時(shí),系統(tǒng)不會(huì)檢查變量或數(shù)組元素是否已初始化。為尚未初始化的數(shù)組元素傳輸隨機(jī)值。
例子4
數(shù)組的前五個(gè)數(shù)組元素以二進(jìn)制表示法傳輸:
REAL VR[10]
CWRITE(HANDLE,SW_T,MW_T,"%.5r",VR[])
20 個(gè)字節(jié)以二進(jìn)制表示法傳輸。
例子5
傳輸直到第一個(gè)未初始化元素的所有數(shù)組元素:
CHAR VS[100]
CWRITE(HANDLE,SW_T,MW_T,"%s",VS[])
例子6
傳輸前 50 個(gè)數(shù)組元素:
CHAR VS[100]
CWRITE(HANDLE,SW_T,MW_T,"%s",VS[])
例子7
ENUM 常量的內(nèi)部值以 ASCII 符號(hào)傳輸。對(duì)應(yīng)號(hào)碼轉(zhuǎn):
DECL ENUM_TYP E
CWRITE(HANDLE,SW_T,MW_T,"%d",E)
例子8
兩個(gè) REAL 值與附加文本一起傳輸:
REAL V1,V2
V1=3.97
V2=-27.3
CWRITE(...,...,...,"value1=%+#07.3f value2=+#06.2f",V1,V2)
傳輸以下數(shù)據(jù):
value1=+03.970
value2=-27.30
審核編輯:劉清
-
機(jī)器人
+關(guān)注
關(guān)注
211文章
28423瀏覽量
207141 -
VaR
+關(guān)注
關(guān)注
0文章
39瀏覽量
11342 -
KUKA
+關(guān)注
關(guān)注
3文章
217瀏覽量
16535 -
KUKA機(jī)器人
+關(guān)注
關(guān)注
4文章
143瀏覽量
9081
原文標(biāo)題:KUKA機(jī)器人高級(jí)編程CWRITE的用法
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論