STRUC:定義結(jié)構(gòu)類(lèi)型
結(jié)構(gòu)類(lèi)型的定義 (=STRUC 數(shù)據(jù)類(lèi)型)。在此將多個(gè)數(shù)據(jù)類(lèi)型匯總為一個(gè)新的數(shù)據(jù)類(lèi)型。
GLOBAL: 在 $CONFIG.DAT 中不允許使用用關(guān)鍵詞 GLOBAL 定義的數(shù)據(jù)類(lèi)型。
名稱(chēng)結(jié)構(gòu)類(lèi)型: 新結(jié)構(gòu)類(lèi)型的名稱(chēng)。自定義數(shù)據(jù)類(lèi)型的名稱(chēng)應(yīng)以 _TYP 結(jié)尾,以便可將其與變量名稱(chēng)進(jìn)行區(qū)分。
如果要組合不同的數(shù)據(jù)類(lèi)型,陣列則不適合,必須使用聯(lián)接的更多形式。使用聲明
語(yǔ)句STRUC,預(yù)先定義好的不同數(shù)據(jù)類(lèi)型或預(yù)定數(shù)據(jù)類(lèi)型的組合構(gòu)成一個(gè)新的復(fù)合數(shù)據(jù)類(lèi)型。 特殊情況,其它復(fù)合和陣列也可以構(gòu)成復(fù)合的一部分。
復(fù)合使用的一個(gè)典型例子是標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型POS。它由文件$OPERATE.SRC中聲明的6個(gè)實(shí)數(shù)值和2個(gè)整數(shù)值組成:
STRUC POS REAL X,,Y,Z,A,B,C,INT S,T
如果,例如您現(xiàn)在使用結(jié)構(gòu)數(shù)據(jù)類(lèi)型的一個(gè)POSITION變量,您可以使用分離點(diǎn)給個(gè)別的元素分配值:
POSITION.X=34.4
POSITION.Y=-23.2
POSITION.Z=100.0
POSITION.A=90
POSITION.B=29.5
POSITION.C=3.5
POSITION.S=2
POSITION.T=6
或使用所謂的集合共同分配值:
POSITION={X34.4,Y-23.2,Z100.0,A90,B29.5,C3.5,S2,T6}
集合受下列條件的支配:
● 集合的值可以是簡(jiǎn)單的常量或它們自己的集合。
● 不是必須在集合中指定結(jié)構(gòu)中的所有組成。
● 成分的指定順序不必依照它們定義的順序。
● 集合中每個(gè)成分可能只包含一次。
● 在由結(jié)構(gòu)組成陣列的情況下,一個(gè)集合定義一個(gè)單獨(dú)的陣列元素的值。
● 結(jié)構(gòu)類(lèi)型的名稱(chēng)可在一個(gè)集合的開(kāi)頭指定-以冒號(hào)分開(kāi)。
因此對(duì)于POS變量允許下列分配,例如:
POSITION={B100.0,X29.5,T6}
POSITION={A54.6,B-125.64,C245.6}
POSITION={POS:X230,Y0.0,Z342.5}
數(shù)據(jù)類(lèi)型: 類(lèi)型:任意的數(shù)據(jù)類(lèi)型,即使結(jié)構(gòu)類(lèi)型也允許用作數(shù)據(jù)類(lèi)型。
部件: 組件的名稱(chēng)。在結(jié)構(gòu)類(lèi)型之內(nèi)只允許進(jìn)行一次。只在欄擁有 CHAR 類(lèi)型且是一維時(shí),才允許將其用作結(jié)構(gòu)類(lèi)型的組件。為此,在結(jié)構(gòu)類(lèi)型的定義中,在欄的名稱(chēng)上將欄限制用方括號(hào)括起來(lái)。
給以 STRUC 數(shù)據(jù)類(lèi)型為基礎(chǔ)的變量分配值有 2 種方法:
給變量的多個(gè)分量分配值:用集合
給一個(gè)變量的單個(gè)分量分配一個(gè)值:用點(diǎn)分隔符
集合提示:
一個(gè)集合的值可以是簡(jiǎn)單的常數(shù)或集合本身,但是它們不能是變量
在一個(gè)集合中不必指定結(jié)構(gòu)的所有分量。
分量不需要按已定義的順序指定。
在一個(gè)集合中只允許含有每個(gè)分量一次。
在集合的開(kāi)頭,通過(guò)冒號(hào)隔開(kāi)的結(jié)構(gòu)類(lèi)型名稱(chēng)可能已指定。
示例:
用 REAL 數(shù)據(jù)類(lèi)型的分量 NUMBER 和 CHAR 數(shù)據(jù)類(lèi)型的數(shù)組分量 TEXT[80] 定義結(jié)構(gòu)類(lèi)型 S_TYP。
STRUC S_TYP REAL NUMBER, CHAR TEXT[80]
將集合用作集合值的示例:
STRUC INNER_TYP INT A, B, C
STRUC OUTER_TYP INNER_TYP Q, R
DECL OUTER_TYP MYVAR
...
MYVAR = {Q {A 1, B 4}, R {A 3, C 2}}
狀態(tài) (S) 和轉(zhuǎn)角方向 (T) 是數(shù)據(jù)類(lèi)型 POS 和 E6POS 的組成部分:
STRUC POS REAL X, Y, Z, A, B, C, INT S, T
STRUC E6POS REAL X, Y, Z, A, B, C, E1, E2, E3, E4, E5, E6, INT S, T
AXIS 結(jié)構(gòu)類(lèi)型
A1 至 A6 是指與機(jī)器人軸 1 至 6 相關(guān)運(yùn)行的角度值 (旋轉(zhuǎn)軸)或平移值(平移軸)。
STRUC AXIS REAL A1, A2, A3, A4, A5, A6
對(duì)于POS、E6POS、AXIS、E6AXIS和FRAME結(jié)構(gòu)缺少的成分不能被改變。而對(duì)于其它集合,則不存在的成分被設(shè)置為無(wú)效的成分。
建立您自己的結(jié)構(gòu)變量的步驟使用下列例子解釋?zhuān)?/p>
在一個(gè)弧焊的子程序中,在變量S_PARA中轉(zhuǎn)換下列信息:
REAL V_WIRE 焊絲速度
INT CHARAC 特征0...100%
BOOL ARC 帶/不帶弧 (用于模擬)
變量S_PARA必須由3個(gè)不同數(shù)據(jù)類(lèi)型的元素組成。首先,必須建立一個(gè)滿(mǎn)足這個(gè)要求的新的數(shù)據(jù)類(lèi)型:
STRUC WELDTYPE REAL V_WIRE,INT CHARAC,BOOL ARC
建立了一個(gè)名稱(chēng)為WELDTYPE的新的數(shù)據(jù)類(lèi)型(WELDTYPE不是一個(gè)變量!)。WELDTYPE由V_WIRE、CHARAC和ARC三個(gè)成分組成。您現(xiàn)在可以任何新數(shù)據(jù)類(lèi)型的變量,例如:
DECL WELDTYPE S_PARA
這樣您就建立了一個(gè)數(shù)據(jù)類(lèi)型為WELDTYPE的變量S_PARA。可以通過(guò)點(diǎn)分開(kāi)單獨(dú)尋址各個(gè)成分和通過(guò)集合-如上說(shuō)明來(lái)尋址。
S_PARA.V_WIRE=10.2
S_PARA.CHARAC=66S_PARA.A
RC=TRUE
或
S_PARA={V_WIRE 10.2,CHARAC 50,ARC TRUE}
為了更容易區(qū)分自定義數(shù)據(jù)類(lèi)型和變量,新數(shù)據(jù)類(lèi)型的名稱(chēng)以…TYPE結(jié)束。
根據(jù)機(jī)器人軸1…6指定軸的運(yùn)動(dòng),結(jié)構(gòu)AXIS的成分A1...A6是角度值(旋轉(zhuǎn)軸)或平移值(平移軸)。
在結(jié)構(gòu)E6AXIS中使用附加成分E1...E6可尋址外部軸。
在結(jié)構(gòu)FRAME 您可以定義空間的3個(gè)位置值(X,YandZ)和3個(gè)空間方位(A,B和C)。空間中的一個(gè)點(diǎn)可以用術(shù)語(yǔ)位置和方位明確地被定義。
有的使用幾個(gè)軸位置的機(jī)器人可以尋址一個(gè)和空間中的相同點(diǎn),結(jié)構(gòu)POS 中的整數(shù)型變量S和T用于明確地定義一個(gè)軸的位置。
審核編輯:劉清
-
機(jī)器人
+關(guān)注
關(guān)注
212文章
29264瀏覽量
210821 -
Typ
+關(guān)注
關(guān)注
0文章
3瀏覽量
10712 -
KUKA
+關(guān)注
關(guān)注
3文章
218瀏覽量
16808
原文標(biāo)題:KUKA變成 STRUC:定義結(jié)構(gòu)類(lèi)型升級(jí)版V4.15
文章出處:【微信號(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)推薦
郭天祥 mini 80E升級(jí)版的蜂鳴器怎么不響呢??
上海升級(jí)版超級(jí)電容公交車(chē)投運(yùn)
[推薦] (不看后悔)Android開(kāi)發(fā)資料分享- 免積分(升級(jí)版)
labview讀取USB數(shù)據(jù)的升級(jí)版
傳感器十大綜合實(shí)驗(yàn)【基礎(chǔ)實(shí)驗(yàn)的升級(jí)版】
用戶(hù)自定義結(jié)構(gòu)數(shù)據(jù)怎么存儲(chǔ)成VARIANT類(lèi)型
結(jié)構(gòu)體類(lèi)型定義的一般格式
定義結(jié)構(gòu)數(shù)據(jù)類(lèi)型-STRUC
STRUC:定義結(jié)構(gòu)類(lèi)型
用戶(hù)定義數(shù)據(jù)類(lèi)型的結(jié)構(gòu)
KUKA ENUM定義計(jì)數(shù)類(lèi)型簡(jiǎn)析

C語(yǔ)言如何定義結(jié)構(gòu)體類(lèi)型變量
KUKA變成STRUC:定義結(jié)構(gòu)類(lèi)型
KUKA E6POS結(jié)構(gòu)類(lèi)型的變量定義

評(píng)論