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