CWRITE
CWRITE 將數(shù)據(jù)寫入打開的串行接口或加載的 LD_EXT_OBJ 類型的外部模塊。在加載的 LD_EXT_FCT 類型的外部模塊中,CWRITE 調(diào)用一個函數(shù)。
CWRITE 將命令寫入命令通道。
CWRITE 觸發(fā)提前運行停止。
CWRITE ( Handle or $CMD, State, Mode, Format, Var1 <, ..., Var10>)
Handle/$CMD
類型:INT
句柄:由 COPEN 傳輸?shù)?WRITE 的變量,用于標識通道
$CMD:用于寫入命令通道的預(yù)定義變量
State:Type: STATE_T
自動返回到 WRITE 的狀態(tài)
Mode : Type: INT
類型:MODUS_T
寫入模式, 必須初始化模式。
Format: Type: CHAR[]
在將 Var 變量寫入字符串之前轉(zhuǎn)換它們。必須為每個 Var 變量指定格式.
Var:
其數(shù)據(jù)寫入字符串的變量。每個語句最多可以有 10 個變量。
寫模式Mode
寫入模式由 MODUS_T 類型的變量確定。MODUS_T 是一個預(yù)定義的枚舉類型:
ENUM MODUS_T SYNC, ASYNC, ABS, COND, SEQ 對于 CWRITE,只有 SYNC 和 ASYNC 相關(guān):
SYNC同步
一旦伙伴控制器從接收緩沖區(qū)中取出傳輸?shù)臄?shù)據(jù),則認為該語句已執(zhí)行。
ASYNC異步
寫入 LD_EXT_FCT 類型的外部模塊時,不允許 ASYNC 模式!
以下適用于所有其他通道:一旦數(shù)據(jù)到達伙伴控制器的接收緩沖區(qū),則認為該語句已執(zhí)行。
優(yōu)于 SYNC:程序執(zhí)行速度更快。
與 SYNC 相比的缺點:可能會丟失數(shù)據(jù)。
其他價值
如果模式具有 SYNC 或 ASYNC 以外的值,則默認在 SYNC 模式下執(zhí)行寫入。
State.RET1=#DATA_OK:函數(shù)成功執(zhí)行 State.RET1=#CMD_ABORT:功能已取消,但出現(xiàn)錯誤
例如:
CWRITE($CMD,STAT,MODE,"RUN /R1/CELL ()")程序執(zhí)行CELL程序
$CMD
通過命令通道$ CMD進行通信
CWRITE可以通過命令通道將語句傳輸?shù)匠绦蚪忉屍鳌J纠和ㄟ^RUN啟動程序并使用STOP將其停止。
與命令通道$ CMD通信
命令通道:啟動、停止和取消選擇程序
程序 A6.SRC 將通過命令通道啟動、停止和取消選擇。這是通過 SUB 文件中的以下程序行來完成的。
DECL STATE_T STAT
DECL MODUS_T MODE
MODE=#SYNC
...
;選擇程序A6()
;要啟動程序,請單擊“開始”按鈕或
;需要外部啟動信號
IF $FLAG[1]==TRUE THEN
CWRITE($CMD,STAT,MODE,"RUN/R1/A6()")運行程序
$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
哪個變量的格式?
一方面,CREAD和SREAD以及CWRITE和SWRITE的格式使用相同。
對于大多數(shù)數(shù)據(jù)類型,有幾種允許的格式,例如CHAR數(shù)組的“%s”和“%1.
對于數(shù)組,規(guī)范“Z”可用于定義要考慮的數(shù)組元素的數(shù)量。如果沒有為“Z”指定值,則考慮所有數(shù)組元素。進程在第一個未初始化的值處被中止。格式r是一個例外。在這種情況下,進程不會中止。相反,為尚未初始化的變量或數(shù)組元素輸出隨機值。
CREAD或SREAD的格式規(guī)范具有以下結(jié)構(gòu):“%
CWRITE/SWRITE的“格式”變量
CWRITE或SWRITE的格式規(guī)范具有以下結(jié)構(gòu):“%
數(shù)據(jù)類型BOOL
每個不等于零的值都轉(zhuǎn)換為TRUE
數(shù)據(jù)類型ENUM
系統(tǒng)檢查該值是否為允許的ENUM值。如果不是,讀取將中止。第一個ENUM常量的值為1。
陣列的格式規(guī)范
如果沒有足夠的數(shù)據(jù)可用于滿足格式規(guī)范(例如“%2.5r”,但只有7個字節(jié)),則此格式不讀取任何內(nèi)容,CREAD語句將中止。忽略的數(shù)據(jù)仍然可以讀取。
Format %r
只能讀取變量所能容納的字節(jié)數(shù)。其余的仍然可以閱讀。如果數(shù)組足夠大,但字節(jié)數(shù)不是數(shù)組元素大小的倍數(shù),則冗余字節(jié)仍可用于讀取(對于以下格式或下一個CREAD語句)。
轉(zhuǎn)換示例:
例子1
整數(shù)變量 VI 的值以十進制和十六進制 ASCII 表示法傳輸。第一個 CWRITE 語句傳輸字符 123。第二個 CWRITE 語句傳輸字符 7B。
INT VI
VI=123
CWRITE(HANDLE,SW_T,MW_T,"%d",VI)
CWRITE(HANDLE,SW_T,MW_T,"%x",VI)
例子2
整數(shù)變量 VI 的值以二進制表示法傳輸:
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”格式時,系統(tǒng)不會檢查變量或數(shù)組元素是否已初始化。為尚未初始化的數(shù)組元素傳輸隨機值。
例子4
數(shù)組的前五個數(shù)組元素以二進制表示法傳輸:
REAL VR[10]
CWRITE(HANDLE,SW_T,MW_T,"%.5r",VR[])
20 個字節(jié)以二進制表示法傳輸。
例子5
傳輸直到第一個未初始化元素的所有數(shù)組元素:
CHAR VS[100]
CWRITE(HANDLE,SW_T,MW_T,"%s",VS[])
例子6
傳輸前 50 個數(shù)組元素:
CHAR VS[100]
CWRITE(HANDLE,SW_T,MW_T,"%s",VS[])
例子7
ENUM 常量的內(nèi)部值以 ASCII 符號傳輸。對應(yīng)號碼轉(zhuǎn):
DECL ENUM_TYP E
CWRITE(HANDLE,SW_T,MW_T,"%d",E)
例子8
兩個 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
CWRITE和命令界面
CELL.SRC可通過CWRITE語句和RUN從SPS.SUB程序中選擇。呼叫僅在冷啟動時生效。
CWRITE可以通過命令通道$CMD將語句傳輸?shù)浇忉屍鳌3?a href="http://www.zgszdi.cn/soft/data/42-101/" target="_blank">機器人口譯員和系統(tǒng)提交外,擴展提交也可在多提交模式下用于此目的。
與單一提交模式相比,以下命令的含義發(fā)生了變化:
RUN[口譯員ID]
STOP[口譯員ID]
重置[口譯員ID]
取消[口譯員ID]
口譯員ID:
0:所有提交口譯員
1:機器人翻譯
2:系統(tǒng)提交解釋器
3:擴展提交解釋器1
4:擴展提交解釋器2
…
9:擴展提交解釋器7
此外,RUN還擴展了可選元素[>口譯員ID]。
CWRITE ($CMD, STAT, MODE, "RUN/R1/CELL()")
單次提交模式下的行為: 啟動程序CELL()。由于CELL()是一個SRC程序,因此它在機器人解釋器中啟動。
多提交模式下的行為: 與單次提交模式相同。該程序行可用于系統(tǒng)提交或擴展提交。
CWRITE ($CMD, STAT, MODE, "RUN/R1/SPS()") 單次提交模式下的行為: 啟動程序SPS()。
由于SPS()是一個SUB程序,它在系統(tǒng)提交解釋器中啟動(=僅在單次提交模式下提交解釋器)。
多提交模式下的行為: 啟動程序SPS()。由于SPS()是SUB程序,它在系統(tǒng)提交解釋器中啟動。
CWRITE ($CMD, STAT, MODE, "STOP 0")
這個程序行只在機器人程序中有意義。 單次提交模式下的行為: 停止系統(tǒng)提交解釋器。 多提交模式下的行為: 停止所有正在運行的提交解釋器。
CWRITE ($CMD, STAT, MODE, "CANCEL 0")
單次提交模式下的行為: 取消選擇系統(tǒng)提交解釋器。 多提交模式下的行為: 取消選擇所有提交的口譯員。
CWRITE ($CMD, STAT, MODE, "RUN/R1/MySubProg() > 5")
在單次提交模式下不允許使用此語句。
多提交模式下的行為: 如果MySubProg()是SUB程序,它將從擴展的submit 3開始。
該程序行可用于其他提交解釋器或機器人程序。
審核編輯:劉清
-
控制器
+關(guān)注
關(guān)注
112文章
16445瀏覽量
179454 -
ABS
+關(guān)注
關(guān)注
2文章
162瀏覽量
34707 -
FCT
+關(guān)注
關(guān)注
1文章
9瀏覽量
9848 -
KUKA機器人
+關(guān)注
關(guān)注
4文章
143瀏覽量
9179
原文標題:KUKA機器人高級編程CWRITE的用法V3.10
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
KUKA機器人高級編程SWRITE的用法案例
KUKA機器人問題解答
KUKA焊接機器人伺服電機常見故障及維修處理
工業(yè)機器人組成結(jié)構(gòu)相關(guān)資料分享
庫卡機器人MGV電源模塊維修
KUKA機器人伺服驅(qū)動模塊維修
沒有有前輩用LabVIEW控制kuka機器人c2的經(jīng)驗?通訊是怎么做到的?
KUKA機器人高級編程CWRITE的用法
KUKA機器人高級編程CWRITE的用法
教你如何去使用KUKA機器人高級編程CWRITE
KUKA機器人高級編程CWRITE的用法V3.1
淺談KUKA機器人CWRITE編程用法
![淺談<b class='flag-5'>KUKA</b><b class='flag-5'>機器人</b><b class='flag-5'>CWRITE</b><b class='flag-5'>編程</b><b class='flag-5'>用法</b>](https://file1.elecfans.com/web2/M00/82/99/wKgZomRZ7vSAJrb4AAAiLQ30ydM910.png)
評論