STRUC:定義結(jié)構(gòu)類型
結(jié)構(gòu)類型的定義 (=STRUC 數(shù)據(jù)類型)。在此將多個(gè)數(shù)據(jù)類型匯總為一個(gè)新的數(shù)據(jù)類型。
GLOBAL: 在 $CONFIG.DAT 中不允許使用用關(guān)鍵詞 GLOBAL 定義的數(shù)據(jù)類型。
名稱結(jié)構(gòu)類型: 新結(jié)構(gòu)類型的名稱。自定義數(shù)據(jù)類型的名稱應(yīng)以 _TYP 結(jié)尾,以便可將其與變量名稱進(jìn)行區(qū)分。
如果要組合不同的數(shù)據(jù)類型,陣列則不適合,必須使用聯(lián)接的更多形式。使用聲明
語句STRUC,預(yù)先定義好的不同數(shù)據(jù)類型或預(yù)定數(shù)據(jù)類型的組合構(gòu)成一個(gè)新的復(fù)合數(shù)據(jù)類型。 特殊情況,其它復(fù)合和陣列也可以構(gòu)成復(fù)合的一部分。
復(fù)合使用的一個(gè)典型例子是標(biāo)準(zhǔn)數(shù)據(jù)類型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ù)類型的一個(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é)構(gòu)中的所有組成。
● 成分的指定順序不必依照它們定義的順序。
● 集合中每個(gè)成分可能只包含一次。
● 在由結(jié)構(gòu)組成陣列的情況下,一個(gè)集合定義一個(gè)單獨(dú)的陣列元素的值。
● 結(jié)構(gòu)類型的名稱可在一個(gè)集合的開頭指定-以冒號(hào)分開。
因此對(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ù)類型: 類型:任意的數(shù)據(jù)類型,即使結(jié)構(gòu)類型也允許用作數(shù)據(jù)類型。
部件: 組件的名稱。在結(jié)構(gòu)類型之內(nèi)只允許進(jìn)行一次。只在欄擁有 CHAR 類型且是一維時(shí),才允許將其用作結(jié)構(gòu)類型的組件。為此,在結(jié)構(gòu)類型的定義中,在欄的名稱上將欄限制用方括號(hào)括起來。
給以 STRUC 數(shù)據(jù)類型為基礎(chǔ)的變量分配值有 2 種方法:
給變量的多個(gè)分量分配值:用集合
給一個(gè)變量的單個(gè)分量分配一個(gè)值:用點(diǎn)分隔符
集合提示:
一個(gè)集合的值可以是簡單的常數(shù)或集合本身,但是它們不能是變量
在一個(gè)集合中不必指定結(jié)構(gòu)的所有分量。
分量不需要按已定義的順序指定。
在一個(gè)集合中只允許含有每個(gè)分量一次。
在集合的開頭,通過冒號(hào)隔開的結(jié)構(gòu)類型名稱可能已指定。
示例:
用 REAL 數(shù)據(jù)類型的分量 NUMBER 和 CHAR 數(shù)據(jù)類型的數(shù)組分量 TEXT[80] 定義結(jié)構(gòu)類型 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ù)類型 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)類型
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è)置為無效的成分。
建立您自己的結(jié)構(gòu)變量的步驟使用下列例子解釋:
在一個(gè)弧焊的子程序中,在變量S_PARA中轉(zhuǎn)換下列信息:
REAL V_WIRE 焊絲速度
INT CHARAC 特征0...100%
BOOL ARC 帶/不帶弧 (用于模擬)
變量S_PARA必須由3個(gè)不同數(shù)據(jù)類型的元素組成。首先,必須建立一個(gè)滿足這個(gè)要求的新的數(shù)據(jù)類型:
STRUC WELDTYPE REAL V_WIRE,INT CHARAC,BOOL ARC
建立了一個(gè)名稱為WELDTYPE的新的數(shù)據(jù)類型(WELDTYPE不是一個(gè)變量!)。WELDTYPE由V_WIRE、CHARAC和ARC三個(gè)成分組成。您現(xiàn)在可以任何新數(shù)據(jù)類型的變量,例如:
DECL WELDTYPE S_PARA
這樣您就建立了一個(gè)數(shù)據(jù)類型為WELDTYPE的變量S_PARA。可以通過點(diǎn)分開單獨(dú)尋址各個(gè)成分和通過集合-如上說明來尋址。
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ù)類型和變量,新數(shù)據(jù)類型的名稱以…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ù)語位置和方位明確地被定義。
有的使用幾個(gè)軸位置的機(jī)器人可以尋址一個(gè)和空間中的相同點(diǎn),結(jié)構(gòu)POS 中的整數(shù)型變量S和T用于明確地定義一個(gè)軸的位置。
審核編輯:劉清
-
機(jī)器人
+關(guān)注
關(guān)注
210文章
28103瀏覽量
205852 -
Typ
+關(guān)注
關(guān)注
0文章
3瀏覽量
10645 -
KUKA
+關(guān)注
關(guān)注
3文章
217瀏覽量
16471
原文標(biāo)題:KUKA變成 STRUC:定義結(jié)構(gòu)類型升級(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)推薦
評(píng)論