西門子6SN1123-1AB00-0AA0軸卡
有需要聯(lián)系公司現(xiàn)貨價優(yōu)
【產(chǎn)品價格】電議(含17%增值稅)
【產(chǎn)品質(zhì)量】原裝正品、假一罰十。
【產(chǎn)品包裝】全新原裝、現(xiàn)貨銷售。
【售后服務(wù)】質(zhì)保一年,貨到后有任何質(zhì)量問題7天內(nèi)包換(人為除外)
希殿電氣技術(shù)(上海)有限公司(西門子合作伙伴)
聯(lián) 系 人 :康經(jīng)理(銷售工程師)
在線商務(wù)Q Q :192061030
聯(lián) 系 手 機(jī) :18621061383(微信)
聯(lián) 系 電 話 :021-60541249
公 司 傳 真 :021-57271268
郵 箱 :192061030@qq.com
在1200/1500版區(qū)中,有不少關(guān)于Variant的疑惑、討論。根據(jù)我對這個Variant的學(xué)習(xí)和使用,
結(jié)合各位大俠的表述,說一下我對它的認(rèn)識和理解。
一、什么情況下,會考慮使用Variant?
如果你想做一個通用功能的函數(shù)、函數(shù)塊,而被處理的數(shù)據(jù)類型是不確定的(被處理數(shù)據(jù)可能是
整數(shù);也可能是實數(shù)等等);但執(zhí)行的功能是一樣的時候,就要考慮使用Variant。
二、Variant用在哪里?
Variant主要用在這個通用的函數(shù)(FC)、函數(shù)塊(FB)的接口處和它們的局部變量中。(如果
是一個專用的函數(shù)、函數(shù)塊,數(shù)據(jù)類型都是確定的,你不需要用Variant。)
三、Variant到底是什么?
Variant在使用上,雖然把它稱為指針,但實際上,它是在函數(shù)、函數(shù)塊上開了一個個不占用
空間的“口子”,對于函數(shù)要處理的各種數(shù)據(jù)類型變量,都可以通過它進(jìn)入函數(shù)(只是進(jìn)入哦,
函數(shù)內(nèi)的計算,不能在此取得數(shù)值)。
四、在哪里可以取得進(jìn)入函數(shù)的Variant變量的值呢?
取得Variant變量的值是要用VariantGet獲得,用VariantPut輸出。
下面用個簡單例子來詳細(xì)說明:
首先注意到,用Variant做函數(shù),它只支持固件版本4.0以上的1200PLC。
例如:我需要個通用的功能函數(shù),來處理一個數(shù)值的1/2,然后輸出。根據(jù)以往項目經(jīng)驗,主要是處理整數(shù)
,雙精度整數(shù)、實數(shù)、長實數(shù)四種。準(zhǔn)備寫個通用函數(shù)放到全局庫中,各項目可以調(diào)用。(否則我需要針對不同的數(shù)據(jù)類型寫四個FC。)
1、首先,新建個FC(取個名字HafB)
2、在函數(shù)輸入接口處寫個變量,數(shù)據(jù)類型選擇Variant;在輸出接口也寫個變量,數(shù)據(jù)類型也選
擇Variant。為了處理出錯,添加個狀態(tài)字。
然后使用中間局部變量,添加可能需要的各種數(shù)據(jù)類型,用它們來獲取實際使用時的值。最后用
個布爾值變量,控制本函數(shù)的ENO。
見下圖:
3、寫FC程序
程序很簡單,寫出一個程序段,然后就是復(fù)制-拷貝-粘貼,然后再用鼠標(biāo)按住那幾個聲明的變量
拖-拽-放。
每一個處理程序段中,都是從VariantGet指令獲取這個數(shù)據(jù)類型的數(shù)值,然后處理計算,發(fā)送到
輸出,然后置位旗標(biāo)。
4、函數(shù)測試
為方便測試,我建了個數(shù)據(jù)類型(一股腦的把四種類型都寫進(jìn)去);然后建個全局DB,使用這個
自定義數(shù)據(jù)類型,分別作測試函數(shù)的輸入和輸出。
下圖:
然后
在主循環(huán)OB1中拖入4個寫好的FC(HafB),打開上述DB,用鼠標(biāo)按住變量旗標(biāo),拖入到各自的
FC接口。下載硬件配置,下載全部程序,啟動運行。
故意用個不在范圍的數(shù)據(jù)類型,看看FC是如何處理的。
至此,一個簡單地、通用的FC就完成了??梢酝系阶约旱娜謳熘?,供以后調(diào)用啦。