TIA Portal V15.0新特性介紹(3) TypeOfDB
原創(chuàng)?2017-12-27?HwLib(慧蘭博)?HwLib慧蘭博
新版本V15.0增加了新指令TypeOfDB魂那,該指令的出現(xiàn)進(jìn)一步強(qiáng)化了Variant的功能(Variant類(lèi)型是被設(shè)計(jì)用于替代ANY和Pointer類(lèi)型的新類(lèi)型,它是一種引用類(lèi)型稠项,和指針不一樣的是Variant是一種安全的類(lèi)型涯雅,詳見(jiàn)《TIA Portal高級(jí)編程》V12.0)。使用指令TypeOfDB我們可以很方便的判斷傳入?yún)?shù)DB_ANY的類(lèi)型展运,然后根據(jù)判斷結(jié)果再執(zhí)行相應(yīng)的控制邏輯活逆。
圖一 V15.0中的TypeOfDB
下面以一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明新指令TypeOfDB的使用。首先創(chuàng)建兩個(gè)UDT拗胜,分別命名為“udtTest1”和“udtTest2”蔗候。為“udtTest1”添加a1和a2兩個(gè)變量,類(lèi)型分別是int和real埂软。為“udtTest2”添加b1锈遥、b2和b3三個(gè)變量,類(lèi)型分別是bool和real勘畔,參見(jiàn)下圖所示所灸。
圖二 創(chuàng)建UDT
創(chuàng)建2個(gè)類(lèi)型為udtTest1的數(shù)據(jù)塊,分別命名為”dbTest1.1”和“dbTest1.2”炫七。創(chuàng)建2個(gè)類(lèi)型為udtTest2的數(shù)據(jù)塊爬立,分別命名為”dbTest2.1”和“dbTest2.2”,參見(jiàn)下圖万哪。
圖三 創(chuàng)建DB
再創(chuàng)建一個(gè)FB侠驯,添加兩個(gè)INPUT參數(shù)dbAny1和dbAny2,類(lèi)型為DB_ANY壤圃。添加一個(gè)類(lèi)型為“udtTest”的靜態(tài)變量“sBuff”陵霉,具體的功能塊參數(shù)聲明參見(jiàn)下圖。
圖四 創(chuàng)建FB接口參數(shù)
演示FB的功能是先判斷傳入?yún)?shù)dbAny1和dbAny2的DB類(lèi)型伍绳,如果是udtTest1則送入dbTest1.2,如果是udtTest2則送入dbTest2.2乍桂,代碼參見(jiàn)下圖(此代碼僅用于測(cè)試TypeOfDB冲杀,如果用于工程環(huán)境請(qǐng)?zhí)砑酉鄳?yīng)的除錯(cuò)程序)效床。
圖五 SCL源碼
在Main中調(diào)用該程序,參數(shù)dbAny1和dbAny2分別連接dbTest1.1和dbTest2.1权谁,下載并運(yùn)行PLC剩檀,參見(jiàn)下圖。
圖六 調(diào)用FB
同時(shí)打開(kāi)dbTest1.1和dbTest1.2或者同時(shí)打開(kāi)dbTest2.1和dbTest2.2并激活監(jiān)控可以發(fā)現(xiàn)當(dāng)我們修改dbTest1.1或者dbTest2.1中變量值時(shí)dbTest1.2或者dbTest2.2中的值會(huì)自動(dòng)更新旺芽。
圖七 測(cè)試FB功能