ANY數(shù)據(jù)類(lèi)型
在編程語(yǔ)言 SCL 和 STL 中,如果在塊參數(shù)中設(shè)定了一個(gè) ANY 指針,則任意類(lèi)型的存儲(chǔ)器都可以在塊調(diào)用時(shí)傳遞。
但是,ANY 指針不能存儲(chǔ)有關(guān)存儲(chǔ)器結(jié)構(gòu)的任何信息。例如,ANY 指針不能保存指向 PLC數(shù)據(jù)類(lèi)型變量的信息。ANY 指針將其作為 BYTE 類(lèi)型的 ARRAY。
ANY 數(shù)據(jù)類(lèi)型的參數(shù)可以被傳遞到系統(tǒng)函數(shù)塊 (SFB) 或系統(tǒng)函數(shù) (SFC)。
下圖給出了 ANY 指針的結(jié)構(gòu):
在SCL中,能夠聲明ANY數(shù)據(jù)類(lèi)型的變量如下:
作為塊的形式參數(shù);當(dāng)塊被調(diào)用時(shí),這些參數(shù)能用任意數(shù)據(jù)類(lèi)型的實(shí)際參數(shù)提供。
作為臨時(shí)變量;能夠指定任意數(shù)據(jù)類(lèi)型的值給這些變量。
能夠用下列數(shù)據(jù)作為實(shí)際參數(shù)或作為賦值語(yǔ)句的右邊部分:
本地和共享變量
在DB中的變量(絕對(duì)地址或稱(chēng)號(hào)地址)
在本地實(shí)例中的變量(絕對(duì)地址或稱(chēng)號(hào)地址)
NIL常量
指定一個(gè)空指針。
ANY數(shù)據(jù)類(lèi)型
定時(shí)器、計(jì)數(shù)器和塊
指定標(biāo)識(shí)符(如:T1, C20或FB6)。
限制(Restrictions)
ANY數(shù)據(jù)類(lèi)型允許用作FB和FC的形式輸入?yún)?shù)、輸入/輸出參數(shù),及FC的輸出參數(shù)。常量不允許用作其實(shí)際參數(shù)或用在其賦值語(yǔ)句的右邊,除NIL常量外。
當(dāng)調(diào)用FB或FC時(shí),如果將臨時(shí)變量用作ANY類(lèi)型的形式參數(shù),不能傳遞參數(shù)到遠(yuǎn)程塊,傳遞他們時(shí)臨時(shí)變量將失效。
這種類(lèi)型變量不能用作結(jié)構(gòu)類(lèi)型的組件類(lèi)型或作為數(shù)組的元素類(lèi)型。
當(dāng)調(diào)用FC或FB時(shí),如果形式參數(shù)作為輸入?yún)?shù)聲明,只能指定過(guò)程輸入(%PEW)給ANY類(lèi)型的形式參數(shù)。
當(dāng)調(diào)用FB時(shí),如果形式參數(shù)作為輸出參數(shù)聲明,只能指定過(guò)程輸出(%PAW)給ANY類(lèi)型的形式參數(shù)。
B#16#80 P I/O
B#16#81 I 輸入存儲(chǔ)區(qū)
B#16#82 Q 輸出存儲(chǔ)區(qū)
B#16#83 M 位存儲(chǔ)的存儲(chǔ)區(qū)
B#16#84 DBX 數(shù)據(jù)塊
B#16#85 DIX 背景數(shù)據(jù)塊
B#16#86 L 本地?cái)?shù)據(jù)
B#16#87 V 先前的本地?cái)?shù)據(jù)
ANY數(shù)據(jù)類(lèi)型舉例
Example of the ANY Data Type
VAR_INPUT
iANY : ANY;
END_VAR
VAR_TEMP
pANY : ANY;
END_VAR
CASE ii OF
1:
pANY := MW4; // pANY包含MW4的地址
3..5:
pANY := aINT[ii]; // pANY包含aINT中的第ii個(gè)元素的地址;
100:
pANY := iANY; // pANY contains the value of the iANY input variable
ELSE
pANY := NIL; // pANY包含NIL指針的值
END_CASE;
SFCxxx(IN := pANY);
在VASS標(biāo)準(zhǔn)中的應(yīng)用:
AnyRob_A :ANY;// ANY變量獲得機(jī)器的發(fā)出給PLC的輸出地址
pRob_A AT AnyRob_A: STRUCT 擴(kuò)展分解建立結(jié)構(gòu)體
SyntaxId :BYTE; // Byte 0
DataType :BYTE; // Byte 1 數(shù)據(jù)/參數(shù)類(lèi)型
DataCount:WORD; // Byte 2+3 變量長(zhǎng)度
DBNR :WORD; // Byte 4+5 數(shù)據(jù)庫(kù)編號(hào)
BZ :DWORD; // Byte 6 bis 10 區(qū)域指針
END_STRUCT;
原文標(biāo)題:西門(mén)子SCL -ANY數(shù)據(jù)類(lèi)型
文章出處:【微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7030瀏覽量
89034 -
西門(mén)子
+關(guān)注
關(guān)注
94文章
3039瀏覽量
115876 -
SCL
+關(guān)注
關(guān)注
1文章
239瀏覽量
17081
原文標(biāo)題:西門(mén)子SCL -ANY數(shù)據(jù)類(lèi)型
文章出處:【微信號(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)論