下面是KUKA機(jī)器人中-TCP通訊里的純理論的東西.
CAST_TO
CAST_TO使得使用單個(gè)CWRITE語(yǔ)句處理多達(dá)4 KB的數(shù)據(jù)成為可能。CAST_TO將單個(gè)變量分組為一個(gè)緩沖區(qū)。然后,CWRITE將此緩沖區(qū)寫入通道。
最大緩沖區(qū)大小:4 KB(= 4,096字節(jié))。如果數(shù)據(jù)量太大,以致最大緩沖區(qū)大小不足,則必須使用幾個(gè)連續(xù)的CWRITE語(yǔ)句。
CAST_TO不會(huì)觸發(fā)提前運(yùn)行停止,但是,如果處理的變量確實(shí)觸發(fā)了提前運(yùn)行stop,則間接觸發(fā)提前運(yùn)行停止。
如果使用CWRITE傳輸使用CAST_TO生成的緩沖區(qū),則CWRITE語(yǔ)句中僅允許以下轉(zhuǎn)換字符:
?r(=原始數(shù)據(jù)格式)
?s(=字符串格式)
與s相比,r具有以下優(yōu)點(diǎn):
?如果傳輸了字符0,則將其整數(shù)表示為字符串的結(jié)尾。r不會(huì)發(fā)生此問(wèn)題。
?偏移量以字節(jié)為單位。如果CREAD用r即二進(jìn)制讀取數(shù)據(jù),則可以使用偏移量輕松計(jì)算已傳輸?shù)闹档臄?shù)量。
CAST_TO (Buffer, OFFSET, Var1 < ,? … , Var10 > )
Buffer:
類型:CHAR數(shù)組,將變量Var1…Var10寫入的緩沖區(qū).
OFFSET:
類型:INT 緩沖區(qū)內(nèi)的位置(以字節(jié)為單位),之后將數(shù)據(jù)寫入緩沖區(qū)。偏移量從0開(kāi)始。
Var1 … Var10
寫入緩沖區(qū)的變量。每個(gè)語(yǔ)句最多可以有10個(gè)變量。
對(duì)于未初始化的變量或數(shù)組元素,會(huì)將隨機(jī)值寫入緩沖區(qū)。由于隨機(jī)值可能會(huì)導(dǎo)致緩沖區(qū)接收器出現(xiàn)問(wèn)題,因此建議初始化所有變量和數(shù)組元素。
CAST_FROM
CAST_FROM使得使用單個(gè)CREAD語(yǔ)句處理多達(dá)4 KB的數(shù)據(jù)成為可能。如果CREAD已從通道讀取緩沖區(qū),則CAST_FROM可以將緩沖區(qū)分解為各個(gè)變量。
最大緩沖區(qū)大小:4 KB(= 4,096字節(jié))。如果數(shù)據(jù)量太大以至于最大緩沖區(qū)大小不足,則必須使用幾個(gè)連續(xù)的CREAD語(yǔ)句。
CAST_FROM不會(huì)觸發(fā)提前運(yùn)行停止,但是,如果處理的變量確實(shí)觸發(fā)了提前停止,則間接觸發(fā)提前運(yùn)行停止。
CAST_FROM ( Buffer , OFFSET, Var1 < ,? … , Var10 > )
例如在EthernetKRL( )程序中設(shè)定的EKI_GetFrame:
EKI_GetFrame從存儲(chǔ)器讀取 FRAME 類型的數(shù)值
示例 RET = EKI_GetFrame("Channel_1", "Root/TCP", MyFrame)
程序分析:
GLOBAL DEFFCT EKI_STATUS
EKI_GetFrame(strChannelName[]:IN,strPlace[]:IN,value:OUT)
聲明變量:
DECL CHAR strChannelName[] 字符串
DECL CHAR strPlace[] 字符串
DECL FRAME value FRAME坐標(biāo)類型變量
DECL CHAR Buff[24]24長(zhǎng)度的字符串
DECL STATE_T Stat 狀態(tài)變量
DECL MODUS_T Mode
DECL EKI_STATUS Ret EthernetKRL通訊專用變量
DECL INT Offset
設(shè)置模式:
Mode = #SYNC設(shè)置同步模式
Ret = EKI_NULL_STATUS
ret.buff=1
Offset = 0
Cast_To(Buff[], Offset,value) 將坐標(biāo)變量寫入緩沖區(qū)
CONTINUE
CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Get",strChannelName[],strPlace[],Buff[],Ret.Buff, Ret.Read, TYPEFRAME,Ret.Connected)
使用”EFC_eki_Get”將Buff[] 里字符串坐標(biāo)FRAME值通過(guò)EthernetKRL軟件發(fā)出開(kāi)通的通道,給PC上位機(jī)軟件使用
Offset=0
Cast_From(Buff[], Offset,value)將緩存區(qū)里的值再發(fā)給變量
Ret.Msg_No = Stat.Msg_No
RETURN Ret 發(fā)出反饋值
ENDFCT
-------------------------------END--------------------------
審核編輯 :李倩
-
TCP
+關(guān)注
關(guān)注
8文章
1383瀏覽量
79362 -
變量
+關(guān)注
關(guān)注
0文章
613瀏覽量
28481 -
KUKA機(jī)器人
+關(guān)注
關(guān)注
4文章
143瀏覽量
9187
原文標(biāo)題:KUKA 機(jī)器人CAST_TO-CAST_FROM
文章出處:【微信號(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)推薦
探討 GaN FET 在人形機(jī)器人中的應(yīng)用優(yōu)勢(shì)
![探討 GaN FET 在人形<b class='flag-5'>機(jī)器人中</b>的應(yīng)用優(yōu)勢(shì)](https://file1.elecfans.com/web3/M00/08/48/wKgZPGeu426APgd4AAEcSzvwcAU203.png)
伺服電動(dòng)缸在人形機(jī)器人中的應(yīng)用
變速齒輪在機(jī)器人中的使用
霍爾元件在掃地機(jī)器人中的應(yīng)用
通過(guò)WebSocket操作OpenHarmony機(jī)器
產(chǎn)業(yè)用機(jī)器人中的旋轉(zhuǎn)花鍵若損傷有何影響?
![產(chǎn)業(yè)用<b class='flag-5'>機(jī)器人中</b>的旋轉(zhuǎn)花鍵若損傷有何影響?](https://file1.elecfans.com/web2/M00/0D/28/wKgaomdBpj-AMUW8AAD6qHCF3y0429.png)
PID控制在機(jī)器人中的應(yīng)用案例
霍爾開(kāi)關(guān)在掃地機(jī)器人中的應(yīng)用
掃地機(jī)器人中的霍爾效應(yīng)傳感器應(yīng)用說(shuō)明
![掃地<b class='flag-5'>機(jī)器人中</b>的霍爾效應(yīng)傳感器應(yīng)用說(shuō)明](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
MCx8316x 在掃地機(jī)器人中的應(yīng)用
![MCx8316x 在掃地<b class='flag-5'>機(jī)器人中</b>的應(yīng)用](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論