0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

KUKA機(jī)器人高級編程CWRITE的用法

機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 來源:機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 2023-04-03 18:00 ? 次閱讀

CWRITE

CWRITE 將數(shù)據(jù)寫入打開的串行接口或加載的 LD_EXT_OBJ 類型的外部模塊。在加載的 LD_EXT_FCT 類型的外部模塊中,CWRITE 調(diào)用一個(gè)函數(shù)。

CWRITE 將命令寫入命令通道。

CWRITE 觸發(fā)提前運(yùn)行停止。

CWRITE ( Handle or $CMD, State, Mode, Format, Var1 <, ..., Var10>)

Handle/$CMD

類型:INT

句柄:由 COPEN 傳輸?shù)?WRITE 的變量,用于標(biāo)識(shí)通道

$CMD:用于寫入命令通道的預(yù)定義變量

State:Type: STATE_T

自動(dòng)返回到 WRITE 的狀態(tài)

Mode : Type: INT

類型:MODUS_T

寫入模式, 必須初始化模式。

Format: Type: CHAR[]

在將 Var 變量寫入字符串之前轉(zhuǎn)換它們。必須為每個(gè) Var 變量指定格式.

Var:

其數(shù)據(jù)寫入字符串的變量。每個(gè)語句最多可以有 10 個(gè)變量。

寫模式Mode

寫入模式由 MODUS_T 類型的變量確定。MODUS_T 是一個(gè)預(yù)定義的枚舉類型:

ENUM MODUS_T SYNC, ASYNC, ABS, COND, SEQ 對于 CWRITE,只有 SYNC 和 ASYNC 相關(guān):

SYNC同步

一旦伙伴控制器從接收緩沖區(qū)中取出傳輸?shù)臄?shù)據(jù),則認(rèn)為該語句已執(zhí)行。

ASYNC異步

寫入 LD_EXT_FCT 類型的外部模塊時(shí),不允許 ASYNC 模式!

以下適用于所有其他通道:一旦數(shù)據(jù)到達(dá)伙伴控制器的接收緩沖區(qū),則認(rèn)為該語句已執(zhí)行。

優(yōu)于 SYNC:程序執(zhí)行速度更快。

與 SYNC 相比的缺點(diǎn):可能會(huì)丟失數(shù)據(jù)。

其他價(jià)值

如果模式具有 SYNC 或 ASYNC 以外的值,則默認(rèn)在 SYNC 模式下執(zhí)行寫入。

State.RET1=#DATA_OK:函數(shù)成功執(zhí)行 State.RET1=#CMD_ABORT:功能已取消,但出現(xiàn)錯(cuò)誤

例如:

CWRITE($CMD,STAT,MODE,"RUN /R1/CELL ()")程序執(zhí)行CELL程序

$CMD

通過命令通道$ CMD進(jìn)行通信

CWRITE可以通過命令通道將語句傳輸?shù)匠绦蚪忉屍鳌J纠和ㄟ^RUN啟動(dòng)程序并使用STOP將其停止。

317458d8-d005-11ed-bfe3-dac502259ad0.png

與命令通道$ CMD通信

命令通道:啟動(dòng)、停止和取消選擇程序

程序 A6.SRC 將通過命令通道啟動(dòng)、停止和取消選擇。這是通過 SUB 文件中的以下程序行來完成的。

DECL STATE_T STAT

DECL MODUS_T MODE

MODE=#SYNC

...

;選擇程序A6()

;要啟動(dòng)程序,請單擊“開始”按鈕或

;需要外部啟動(dòng)信號

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

哪個(gè)變量的格式?

一方面,CREAD和SREAD以及CWRITE和SWRITE的格式使用相同。

對于大多數(shù)數(shù)據(jù)類型,有幾種允許的格式,例如CHAR數(shù)組的“%s”和“%1.r”。需要選擇哪種格式取決于伙伴控制器發(fā)送或接收數(shù)據(jù)的方式。

對于數(shù)組,規(guī)范“Z”可用于定義要考慮的數(shù)組元素的數(shù)量。如果沒有為“Z”指定值,則考慮所有數(shù)組元素。進(jìn)程在第一個(gè)未初始化的值處被中止。格式r是一個(gè)例外。在這種情況下,進(jìn)程不會(huì)中止。相反,為尚未初始化的變量或數(shù)組元素輸出隨機(jī)值。

CREAD或SREAD的格式規(guī)范具有以下結(jié)構(gòu):“%U” 數(shù)組的格式規(guī)范具有以下結(jié)構(gòu):“%>U” W要讀取的最大字符數(shù)??蛇x擇的 Z要寫入的數(shù)組元素?cái)?shù)??蛇x擇的 U轉(zhuǎn)換字符

CWRITE/SWRITE的“格式”變量

CWRITE或SWRITE的格式規(guī)范具有以下結(jié)構(gòu):“%U”

數(shù)據(jù)類型BOOL

每個(gè)不等于零的值都轉(zhuǎn)換為TRUE

數(shù)據(jù)類型ENUM

系統(tǒng)檢查該值是否為允許的ENUM值。如果不是,讀取將中止。第一個(gè)ENUM常量的值為1。

陣列的格式規(guī)范

如果沒有足夠的數(shù)據(jù)可用于滿足格式規(guī)范(例如“%2.5r”,但只有7個(gè)字節(jié)),則此格式不讀取任何內(nèi)容,CREAD語句將中止。忽略的數(shù)據(jù)仍然可以讀取。

Format %r

只能讀取變量所能容納的字節(jié)數(shù)。其余的仍然可以閱讀。如果數(shù)組足夠大,但字節(jié)數(shù)不是數(shù)組元素大小的倍數(shù),則冗余字節(jié)仍可用于讀?。▽τ谝韵赂袷交蛳乱粋€(gè)CREAD語句)。

31988f8c-d005-11ed-bfe3-dac502259ad0.png

31a2caec-d005-11ed-bfe3-dac502259ad0.png

31bde12e-d005-11ed-bfe3-dac502259ad0.png

轉(zhuǎn)換示例:

例子1

整數(shù)變量 VI 的值以十進(jìn)制和十六進(jìn)制 ASCII 表示法傳輸。第一個(gè) CWRITE 語句傳輸字符 123。第二個(gè) 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 的值以二進(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 符號傳輸。對應(yīng)號碼轉(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

CWRITE和命令界面

31cffa12-d005-11ed-bfe3-dac502259ad0.png

CELL.SRC可通過CWRITE語句和RUN從SPS.SUB程序中選擇。呼叫僅在冷啟動(dòng)時(shí)生效。

CWRITE可以通過命令通道$CMD將語句傳輸?shù)浇忉屍?。除?a href="http://ttokpm.com/soft/data/42-101/" target="_blank">機(jī)器人口譯員和系統(tǒng)提交外,擴(kuò)展提交也可在多提交模式下用于此目的。

與單一提交模式相比,以下命令的含義發(fā)生了變化:

RUN[口譯員ID]

STOP[口譯員ID]

重置[口譯員ID]

取消[口譯員ID]

口譯員ID:

0:所有提交口譯員

1:機(jī)器人翻譯

2:系統(tǒng)提交解釋器

3:擴(kuò)展提交解釋器1

4:擴(kuò)展提交解釋器2

9:擴(kuò)展提交解釋器7

此外,RUN還擴(kuò)展了可選元素[>口譯員ID]。

CWRITE ($CMD, STAT, MODE, "RUN/R1/CELL()")

單次提交模式下的行為: 啟動(dòng)程序CELL()。由于CELL()是一個(gè)SRC程序,因此它在機(jī)器人解釋器中啟動(dòng)。

多提交模式下的行為: 與單次提交模式相同。該程序行可用于系統(tǒng)提交或擴(kuò)展提交。

CWRITE ($CMD, STAT, MODE, "RUN/R1/SPS()") 單次提交模式下的行為: 啟動(dòng)程序SPS()。

由于SPS()是一個(gè)SUB程序,它在系統(tǒng)提交解釋器中啟動(dòng)(=僅在單次提交模式下提交解釋器)。

多提交模式下的行為: 啟動(dòng)程序SPS()。由于SPS()是SUB程序,它在系統(tǒng)提交解釋器中啟動(dòng)。

CWRITE ($CMD, STAT, MODE, "STOP 0")

這個(gè)程序行只在機(jī)器人程序中有意義。 單次提交模式下的行為: 停止系統(tǒng)提交解釋器。 多提交模式下的行為: 停止所有正在運(yùn)行的提交解釋器。

CWRITE ($CMD, STAT, MODE, "CANCEL 0")

單次提交模式下的行為: 取消選擇系統(tǒng)提交解釋器。 多提交模式下的行為: 取消選擇所有提交的口譯員。

CWRITE ($CMD, STAT, MODE, "RUN/R1/MySubProg() > 5")

在單次提交模式下不允許使用此語句。

多提交模式下的行為: 如果MySubProg()是SUB程序,它將從擴(kuò)展的submit 3開始。

該程序行可用于其他提交解釋器或機(jī)器人程序。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16111

    瀏覽量

    177083
  • ABS
    ABS
    +關(guān)注

    關(guān)注

    2

    文章

    161

    瀏覽量

    34570
  • FCT
    FCT
    +關(guān)注

    關(guān)注

    1

    文章

    9

    瀏覽量

    9806
  • KUKA機(jī)器人
    +關(guān)注

    關(guān)注

    4

    文章

    143

    瀏覽量

    9032

原文標(biāo)題:KUKA機(jī)器人高級編程CWRITE的用法V3.10

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    KUKA機(jī)器人高級編程SWRITE的用法案例

    ? SWRITE SWRITE 具有與 CWRITE 類似的功能和語法。但是,與 CWRITE 不同的是,SWRITE 不會(huì)將數(shù)據(jù)寫入通道,而是寫入 CHAR 數(shù)組。 SWRITE 可以
    發(fā)表于 07-05 17:39 ?3024次閱讀

    KUKA重型機(jī)器人

    這個(gè)是KUKA重型機(jī)器人處理和測量混凝土軌枕的視頻。處理得相當(dāng)精細(xì)。真心值得愛好機(jī)器者和愛國者研究研究。
    發(fā)表于 02-03 15:18

    KUKA機(jī)器人控制柜三維模型

    尋求KUKA機(jī)器人控制柜三維模型,做方案有時(shí)需要用到,大家誰有可以給我發(fā)一份嗎?先謝謝了
    發(fā)表于 04-18 16:05

    KUKA機(jī)器人問題解答

    1 開機(jī)坐標(biāo)系無效 世界坐標(biāo)系是以槍頭為基點(diǎn),在這種坐標(biāo)系中機(jī)器人所有的動(dòng)作都是按照以槍頭為頂點(diǎn)來完成移動(dòng),XYZ方向切割槍方向不改變,如果機(jī)器人在世界坐標(biāo)系中移動(dòng),槍頭也隨著改變方向,那就是我們在
    發(fā)表于 07-15 07:48

    KUKA焊接機(jī)器人伺服電機(jī)常見故障及維修處理

    KUKA焊接機(jī)器人伺服電機(jī)常見故障及維修處理1、庫卡機(jī)器人伺服電機(jī)的基本檢查由于庫卡機(jī)器人伺服電機(jī)內(nèi)含有精密檢測器,因此,當(dāng)發(fā)生碰撞、沖擊時(shí)可能會(huì)引起故障,在對庫卡
    發(fā)表于 09-26 16:51

    工業(yè)機(jī)器人組成結(jié)構(gòu)相關(guān)資料分享

    工業(yè)機(jī)器人是近兩年機(jī)械行業(yè)最熱的字眼,隨著企業(yè)工業(yè)機(jī)器人的增多,很多機(jī)械工程師對于工業(yè)機(jī)器人充滿了好奇。作為機(jī)器人四大家族之一的KUKA,已
    發(fā)表于 07-05 06:44

    庫卡機(jī)器人MGV電源模塊維修

    KUKA庫卡機(jī)器人MGV電源模塊維修PH1013-2840MGV電源維修 庫卡電源模塊維修 機(jī)器人電源模塊維修 庫卡控制器維修 KUKA電源維修KU
    發(fā)表于 09-08 07:30

    KUKA機(jī)器人伺服驅(qū)動(dòng)模塊維修

    KUKA庫卡C4機(jī)器人驅(qū)動(dòng)器故障報(bào)警維修庫卡機(jī)器人維修內(nèi)容包括庫卡機(jī)器人示教器維修,KUKA伺服驅(qū)動(dòng)模塊維修,庫卡
    發(fā)表于 09-17 07:09

    沒有有前輩用LabVIEW控制kuka機(jī)器人c2的經(jīng)驗(yàn)?通訊是怎么做到的?

    我看NI有Robotics Toolkit for KUKA KR C2的附加包,這個(gè)怎么用?。咳绾魏?b class='flag-5'>kuka機(jī)器人建立通訊?。渴荰cp接口嗎?
    發(fā)表于 10-21 20:59

    KUKA機(jī)器人高級編程CWRITE用法

    CWRITE 將數(shù)據(jù)寫入打開的串行接口或加載的 LD_EXT_OBJ 類型的外部模塊。在加載的 LD_EXT_FCT 類型的外部模塊中,CWRITE 調(diào)用一個(gè)函數(shù)。
    的頭像 發(fā)表于 03-28 14:20 ?1844次閱讀

    KUKA機(jī)器人高級編程CWRITE用法

    CWRITE 將數(shù)據(jù)寫入打開的串行接口或加載的 LD_EXT_OBJ 類型的外部模塊。在加載的 LD_EXT_FCT 類型的外部模塊中,CWRITE 調(diào)用一個(gè)函數(shù)。
    的頭像 發(fā)表于 04-12 09:41 ?1215次閱讀

    教你如何去使用KUKA機(jī)器人高級編程CWRITE

    CWRITE 將數(shù)據(jù)寫入打開的串行接口或加載的 LD_EXT_OBJ 類型的外部模塊。在加載的 LD_EXT_FCT 類型的外部模塊中,CWRITE 調(diào)用一個(gè)函數(shù)。
    的頭像 發(fā)表于 02-12 11:32 ?1743次閱讀

    KUKA機(jī)器人高級編程CWRITE用法V3.1

    CWRITE可以通過命令通道$CMD將語句傳輸?shù)浇忉屍?。除?b class='flag-5'>機(jī)器人口譯員和系統(tǒng)提交外,擴(kuò)展提交也可在多提交模式下用于此目的。
    的頭像 發(fā)表于 03-08 11:20 ?836次閱讀

    淺談KUKA機(jī)器人CWRITE編程用法

    CWRITE”語句能夠使文字寫入打開的通道,或者命令被寫入命令通道。 應(yīng)用實(shí)例: 數(shù)據(jù) ( 寫語句) 在KRC1 和裝置間( PC, 智能傳感器...). 轉(zhuǎn)換。
    發(fā)表于 05-09 14:55 ?1109次閱讀
    淺談<b class='flag-5'>KUKA</b><b class='flag-5'>機(jī)器人</b><b class='flag-5'>CWRITE</b><b class='flag-5'>編程</b><b class='flag-5'>用法</b>

    工業(yè)機(jī)器人編程

    工業(yè)機(jī)器人編程 工業(yè)機(jī)器人一般使用的編程語言主要有:基于圖形化編程界面的編程語言,如ABB的Ro
    發(fā)表于 06-26 14:03 ?812次閱讀