下面是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ā)生此問題。
?偏移量以字節(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開始。
Var1 … Var10寫入緩沖區(qū)的變量。每個(gè)語(yǔ)句最多可以有10個(gè)變量。
對(duì)于未初始化的變量或數(shù)組元素,會(huì)將隨機(jī)值寫入緩沖區(qū)。由于隨機(jī)值可能會(huì)導(dǎo)致緩沖區(qū)接收器出現(xiàn)問題,因此建議初始化所有變量和數(shù)組元素。
CAST_FROM如果緩沖區(qū)是在數(shù)據(jù)列表中聲明的,則不能設(shè)置初始值!
原因:初始值被當(dāng)前值覆蓋。電流值可以高達(dá)4KB,因此超過了KRL線路的最大允許長(zhǎng)度。
對(duì)的:DECL CHAR mybuffer[4096]不正確:DECL CHAR mybuffer[4096]=" "CAST_FROM使得使用單個(gè)CREAD語(yǔ)句處理多達(dá)4 KB的數(shù)據(jù)成為可能。如果CREAD已從通道讀取緩沖區(qū),則CAST_FROM可以將緩沖區(qū)分解為各個(gè)變量。
最大緩沖區(qū)大?。? 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 > )
CAST 語(yǔ)句中允許的數(shù)據(jù)類型
例如在EthernetKRL( )程序中設(shè)定的EKI_GetFrame:
EKI_GetFrame從存儲(chǔ)器讀取 FRAME 類型的數(shù)值示例 RET = EKI_GetFrame("Channel_1", "Root/TCP", MyFrame)程序分析:GLOBAL DEFFCT EKI_STATUSEKI_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值通過EthernetKRL軟件發(fā)出開通的通道,給PC上位機(jī)軟件使用 Offset=0 Cast_From(Buff[], Offset,value)將緩存區(qū)里的值再發(fā)給變量 Ret.Msg_No = Stat.Msg_No RETURN Ret 發(fā)出反饋值ENDFCT
發(fā)送標(biāo)準(zhǔn)編碼的real數(shù)據(jù),PLC端可直接使用ID數(shù)據(jù)進(jìn)行real數(shù)據(jù)的判斷。(注:使用CAST_TO函數(shù)后,Bytes[1]為對(duì)應(yīng)二進(jìn)制的低位,Bytes[4]為高位。上面的KUKA1對(duì)應(yīng)的bytes4是為了將PLC能直接讀數(shù)據(jù)而不用通過SWAP指令進(jìn)行轉(zhuǎn)換)接收到的數(shù)據(jù)存于DATA2中。
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ā)生此問題。
?偏移量以字節(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開始。
Var1 … Var10寫入緩沖區(qū)的變量。每個(gè)語(yǔ)句最多可以有10個(gè)變量。
對(duì)于未初始化的變量或數(shù)組元素,會(huì)將隨機(jī)值寫入緩沖區(qū)。由于隨機(jī)值可能會(huì)導(dǎo)致緩沖區(qū)接收器出現(xiàn)問題,因此建議初始化所有變量和數(shù)組元素。
CAST_FROM如果緩沖區(qū)是在數(shù)據(jù)列表中聲明的,則不能設(shè)置初始值!
原因:初始值被當(dāng)前值覆蓋。電流值可以高達(dá)4KB,因此超過了KRL線路的最大允許長(zhǎng)度。
對(duì)的:DECL CHAR mybuffer[4096]不正確:DECL CHAR mybuffer[4096]=" "CAST_FROM使得使用單個(gè)CREAD語(yǔ)句處理多達(dá)4 KB的數(shù)據(jù)成為可能。如果CREAD已從通道讀取緩沖區(qū),則CAST_FROM可以將緩沖區(qū)分解為各個(gè)變量。
最大緩沖區(qū)大?。? 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 > )
Buffer | 類型:CHAR數(shù)組其數(shù)據(jù)用于填充變量Var1…Var10的緩沖器 |
OFFSET | 類型:INT緩沖區(qū)內(nèi)的位置(以字節(jié)為單位),在該位置之后,數(shù)據(jù)被用來將它們寫入變量Var1…Var10。偏移量從0開始。示例:? OFFSET=0:緩沖器從第一個(gè)位置開始使用。? OFFSET=2:緩沖器從第三個(gè)位置開始使用。位置1和2被忽略。 |
Var1 …Var10 | 使用緩沖區(qū)中的數(shù)據(jù)寫入的變量。每條語(yǔ)句最多可以有10個(gè)變量。每個(gè)變量從緩沖區(qū)接收的字節(jié)數(shù)由其數(shù)據(jù)類型決定。INT變量1、BOOL變量2、REAL變量3Var1接收4個(gè)字節(jié);Var2接收1個(gè)字節(jié);Var3接收4個(gè)字節(jié)。 |
INT | 4 bytes |
REAL | 4 bytes |
BOOL | 1 byte |
CHAR | 1 byte |
ENUM | 4 bytes |
SIGNAL | 1 byte |
FRAME | 6*REAL |
POS | 6*REAL + 2*INT |
AXIS | 6*REAL |
E3POS | 6*REAL + 2*INT + 3*REAL |
E3AXIS | 6*REAL + 3*REAL |
E6POS | 6*REAL + 2*INT * 6*REAL |
E6AXIS | 6*REAL + 6*REAL |
EKI_GetFrame從存儲(chǔ)器讀取 FRAME 類型的數(shù)值示例 RET = EKI_GetFrame("Channel_1", "Root/TCP", MyFrame)程序分析:GLOBAL DEFFCT EKI_STATUSEKI_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值通過EthernetKRL軟件發(fā)出開通的通道,給PC上位機(jī)軟件使用 Offset=0 Cast_From(Buff[], Offset,value)將緩存區(qū)里的值再發(fā)給變量 Ret.Msg_No = Stat.Msg_No RETURN Ret 發(fā)出反饋值ENDFCT


審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
接收器
+關(guān)注
關(guān)注
15文章
2571瀏覽量
73931 -
TCP
+關(guān)注
關(guān)注
8文章
1402瀏覽量
81042 -
KUKA機(jī)器人
+關(guān)注
關(guān)注
4文章
144瀏覽量
9619
原文標(biāo)題:KUKA 機(jī)器人CAST_TO-CAST_FROM 數(shù)據(jù)傳輸
文章出處:【微信號(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)推薦
熱點(diǎn)推薦
伺服電動(dòng)缸在人形機(jī)器人中的應(yīng)用
伺服電動(dòng)缸在人形機(jī)器人中的應(yīng)用非常廣泛,主要體現(xiàn)在以下幾個(gè)方面:一、核心運(yùn)動(dòng)部件伺服電動(dòng)缸是將伺服電機(jī)與絲杠一體化設(shè)計(jì)的模塊化產(chǎn)品,能將伺服電機(jī)的旋轉(zhuǎn)運(yùn)動(dòng)轉(zhuǎn)換成直線運(yùn)動(dòng)。通過結(jié)構(gòu)上的改造,伺服電動(dòng)缸
發(fā)表于 02-06 09:04
KUKA重型機(jī)器人
這個(gè)是KUKA重型機(jī)器人處理和測(cè)量混凝土軌枕的視頻。處理得相當(dāng)精細(xì)。真心值得愛好機(jī)器者和愛國(guó)者研究研究。
發(fā)表于 02-03 15:18
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),槍頭也隨著改變方向,那就是我們?cè)?/div>
發(fā)表于 07-15 07:48
現(xiàn)代機(jī)器人中有什么傳感器?
控制和通信 IC 的發(fā)展在實(shí)現(xiàn)下一代的機(jī)器人中起到重要作用。然而,這些復(fù)雜的現(xiàn)代機(jī)器人的核心是許多新的、小型化和低成本的傳感技術(shù)的出現(xiàn)與融合。對(duì)實(shí)現(xiàn)下一代機(jī)器人至關(guān)重要的幾項(xiàng)關(guān)鍵傳感器技術(shù)包括磁性位置傳感器、存在傳感器、手勢(shì)傳感
發(fā)表于 07-31 07:46
KUKA焊接機(jī)器人伺服電機(jī)常見故障及維修處理
KUKA焊接機(jī)器人伺服電機(jī)常見故障及維修處理1、庫(kù)卡機(jī)器人伺服電機(jī)的基本檢查由于庫(kù)卡機(jī)器人伺服電機(jī)內(nèi)含有精密檢測(cè)器,因此,當(dāng)發(fā)生碰撞、沖擊時(shí)可能會(huì)引起故障,在對(duì)庫(kù)卡
發(fā)表于 09-26 16:51
工業(yè)機(jī)器人中面對(duì)的控制問題是什么
剛開始接觸機(jī)器人的時(shí)候,我在師兄的機(jī)器人代碼里死活找不到有關(guān)控制計(jì)算的函數(shù),作為常年和控制框圖打交道的我,很是疑惑控制回路去哪里了?因此本文介紹一下工業(yè)機(jī)器人中的控制問題。參考華科賀磊
發(fā)表于 06-28 09:29
KUKA機(jī)器人伺服驅(qū)動(dòng)模塊維修
KUKA庫(kù)卡C4機(jī)器人驅(qū)動(dòng)器故障報(bào)警維修庫(kù)卡機(jī)器人維修內(nèi)容包括庫(kù)卡機(jī)器人示教器維修,KUKA伺服驅(qū)動(dòng)模塊維修,庫(kù)卡
發(fā)表于 09-17 07:09
工業(yè)機(jī)器人中有哪些控制問題
工業(yè)機(jī)器人中的伺服驅(qū)動(dòng)的目的是什么?工業(yè)機(jī)器人中的關(guān)節(jié)內(nèi)部驅(qū)動(dòng)結(jié)構(gòu)是怎樣構(gòu)成的?
發(fā)表于 10-11 08:37
沒有有前輩用LabVIEW控制kuka機(jī)器人c2的經(jīng)驗(yàn)?通訊是怎么做到的?
我看NI有Robotics Toolkit for KUKA KR C2的附加包,這個(gè)怎么用?。咳绾魏?b class='flag-5'>kuka機(jī)器人建立通訊?。渴?b class='flag-5'>Tcp接口
發(fā)表于 10-21 20:59
KUKA機(jī)器人中-TCP通訊里的純理論的東西
CAST_TO使得使用單個(gè)CWRITE語(yǔ)句處理多達(dá)4 KB的數(shù)據(jù)成為可能。CAST_TO將單個(gè)變量分組為一個(gè)緩沖區(qū)。然后,CWRITE將此緩沖區(qū)寫入通道。
KUKA機(jī)器人中-TCP通訊里的純理論
對(duì)于未初始化的變量或數(shù)組元素,會(huì)將隨機(jī)值寫入緩沖區(qū)。由于隨機(jī)值可能會(huì)導(dǎo)致緩沖區(qū)接收器出現(xiàn)問題,因此建議初始化所有變量和數(shù)組元素。
KUKA工業(yè)機(jī)器人與S7-1200PLC實(shí)現(xiàn)Profinet通訊的步驟
本次內(nèi)容來簡(jiǎn)單談一談KUKA工業(yè)機(jī)器人與S7-1200PLC實(shí)現(xiàn)Profinet通訊的步驟。

評(píng)論