七十二變的孫悟空──VARIANT_第1頁
七十二變的孫悟空──VARIANT_第2頁
七十二變的孫悟空──VARIANT_第3頁
全文預(yù)覽已結(jié)束

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、本文格式為Word版,下載可任意編輯七十二變的孫悟空VARIANT 在S7-1200/1500的數(shù)據(jù)類型中,VARIANT是不太好理解的。請(qǐng)看它的在線關(guān)心:“VARIANT 類型的參數(shù)是一個(gè)可以指向不同數(shù)據(jù)類型變量(而不是實(shí)例)的指針。 VARIANT 指針可以是基本數(shù)據(jù)類型(例如,INT 或 REAL)的對(duì)象。 還可以是 STRING、DTL、STRUCT 類型的 ARRAY、UDT、UDT 類型的 ARRAY。 VARIANT 指針可以識(shí)別結(jié)構(gòu),并指向各個(gè)結(jié)構(gòu)元素。VARIANT 數(shù)據(jù)類型的操作數(shù)不占用背景數(shù)據(jù)塊或工作存儲(chǔ)器中的空間。但是,將占用 CPU 上的存儲(chǔ)空間?!薄癡ARIANT

2、類型的變量不是一個(gè)對(duì)象,而是對(duì)另一個(gè)對(duì)象的引用。 在函數(shù)的塊接口中的 VAR_IN、VAR_IN_OUT 和 VAR_TEMP 部分中,VARIANT 類型的單個(gè)元素只能聲明為形參。 因此,不能在數(shù)據(jù)塊或函數(shù)塊的塊接口靜態(tài)部分中聲明,例如,由于各元素的大小未知。 所引用對(duì)象的大小可以更改?!薄翱墒褂?VARIANT 來生成常規(guī)函數(shù)塊或函數(shù)。 調(diào)用某個(gè)塊時(shí),可以將該塊的參數(shù)連接到任何數(shù)據(jù)類型的變量。 調(diào)用某個(gè)塊時(shí),除了傳遞變量的指針外,還會(huì)傳遞變量的類型信息。 塊代碼隨后可以依據(jù)運(yùn)行期間傳遞的變量類型來執(zhí)行。”英語詞典對(duì)Variant的解釋:變體、多樣的。百度中的解釋:“在VB中,Variant

3、 數(shù)據(jù)類型是全部沒被顯式聲明(例如 Dim、Private、Public 或 Static等語句)為其他類型變量的數(shù)據(jù)類型?!毕旅媸俏易龅脑囼?yàn):在一個(gè)項(xiàng)目中生成一個(gè)全局?jǐn)?shù)據(jù)塊“數(shù)據(jù)塊_1”,在數(shù)據(jù)塊中生成一些復(fù)合數(shù)據(jù)類型的變量(見下圖)。生成FB1,其輸入?yún)?shù)“變體”的數(shù)據(jù)類型為Variant。在OB1中調(diào)用FB1,試驗(yàn)表明,可以將輸入?yún)?shù)“變體”的實(shí)參設(shè)置為簡(jiǎn)潔數(shù)據(jù)類型的變量,還可以設(shè)置為數(shù)據(jù)塊_1中的字符串、數(shù)組1、結(jié)構(gòu)1、結(jié)構(gòu)1中的元素,結(jié)構(gòu)1.數(shù)組2和它的元素,數(shù)據(jù)類型為DTL的“日時(shí)”和它的元素,結(jié)構(gòu)1.時(shí)間和它的元素,但是不能將“變體”的實(shí)參設(shè)置為字符串“串1”中的元素。試驗(yàn)可知,

4、在FB的接口區(qū),可以生成Input、InOut和Temp類型的Variant變量,但是不能生成Output和Static類型的Variant變量。做過試驗(yàn)后,就比較好理解在線關(guān)心中的話了。下面是我對(duì)VARIANT的理解:1)VARIANT是可以指向不同數(shù)據(jù)類型的變量的指針。它幾乎可以指向全部的變量。數(shù)據(jù)類型ANY的功能夠強(qiáng)大了,它可以指向幾乎全部的簡(jiǎn)潔數(shù)據(jù)類型,和連續(xù)的地址區(qū),但是不能像VARIANT一樣,指向復(fù)合數(shù)據(jù)類型。VARIANT比ANY(任意)還要ANY,簡(jiǎn)直就是一個(gè)七十二變的孫悟空!2)由于VARIANT 數(shù)據(jù)類型的操作數(shù)的“實(shí)際”數(shù)據(jù)類型是可變的,甚至其實(shí)參“各元素的大小未知。所

5、引用對(duì)象的大小可以更改。”全部它不像Pointer和ANY那樣,其實(shí)參有固定的字節(jié)數(shù),所以“VARIANT 數(shù)據(jù)類型的操作數(shù)不占用背景數(shù)據(jù)塊或工作存儲(chǔ)器中的空間?!?)“除了傳遞變量的指針外,(VARIANT)還會(huì)傳遞變量的類型信息?!币訴ARIANT變量“百變”的實(shí)參“"數(shù)據(jù)塊_1".結(jié)構(gòu)1.時(shí)間.HOUR”(DB2.DBB53)為例,它包含了變量的地址和各級(jí)的數(shù)據(jù)類型。4)假如變量的實(shí)參是復(fù)合數(shù)據(jù)類型(包括多層嵌套的復(fù)合數(shù)據(jù)類型)或它的元素,或者變量或元素的大小可變,必需使用VARIANT指針。在S7-1500硬件平臺(tái)下,VARIANT 已經(jīng)完全可以替代ANY的功能了。VARIANT 常用相關(guān)指令有1;檢查數(shù)據(jù)類型TypeOf,TypeOfElements,EQ_Type,NE_Type,EQ_ElemType,NE_ElemType2:數(shù)組相關(guān)指令I(lǐng)S_ARRAY,CountOfElements3 讀寫VARIANT指向的數(shù)據(jù)VariantGet,VariantPu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論