plc中UDT數(shù)據(jù)類型的用法 一、UDT是什么 UDT是用戶自定義數(shù)據(jù)類型。 用戶有時(shí)為了方便,先創(chuàng)建一個(gè)udt(和創(chuàng)建db塊一樣),寫(xiě)好數(shù)據(jù)結(jié)構(gòu)。 然后,在創(chuàng)建db塊時(shí),如果需要可以插入建好的udt(輸入個(gè)name,類型輸入udt的名字,比如udt1),如果切換到數(shù)據(jù)視圖,即可看到原先創(chuàng)建的udt的結(jié)構(gòu)了。 有時(shí)需要建立多個(gè)數(shù)據(jù)塊,但數(shù)據(jù)塊的結(jié)構(gòu),數(shù)據(jù)類型都是一樣的,但又不能在同一個(gè)數(shù)據(jù)塊中保存,這時(shí)可以先建一個(gè)UDT,通過(guò)UDT再創(chuàng)建其余的幾個(gè)塊。 舉例來(lái)說(shuō),你需要控制10個(gè)電機(jī),它們的屬性都是基本相同的:如“正轉(zhuǎn)(BOOL)”、“反轉(zhuǎn)(BOOL)”、“速度(INT)”、“加速度(INT)”、“減速度(INT)”等,如果程序中你需要用到這些屬性,那么你可能需要為10個(gè)電機(jī)都建立這些變量,如果是單獨(dú)建立,你就需要建立10*5=50個(gè)變量;如果你用UDT來(lái)處理,那就簡(jiǎn)單多了: 先定義一個(gè)UDT,名字是MOTOR,里面添加上面所說(shuō)的2個(gè)BOOL變量和3個(gè)INT變量(當(dāng)然有需要可以添加其它數(shù)據(jù)類型的變量),然后建一個(gè)DB塊,在里面建立10個(gè)變量M1~M10,數(shù)據(jù)類型就是MOTOR,保存后你會(huì)發(fā)現(xiàn)這10個(gè)變量都包括以上的幾個(gè)屬性,這樣你就可以直接在程序中使用了。 也就是說(shuō)UDT的作用就是方便編程者的,對(duì)于程序的運(yùn)行而言不是必需的.從數(shù)據(jù)類型的角度來(lái)說(shuō),UDT甚至不會(huì)被PLC直接接受. 大家看西門(mén)子S7-300的程序的上傳就知道了,將一個(gè)帶有UDT的程序下載到PLC中,然后新建一個(gè)PLC,上傳程序,在傳上來(lái)的程序中你是找不到UDT的. UDT更像是對(duì)DB結(jié)構(gòu)的注釋! 下面教大家如何在博途里使用UDT. 1、 在項(xiàng)目樹(shù)中>PLC數(shù)據(jù)類型中雙擊添加新數(shù)據(jù)類型 2、 對(duì)新建的數(shù)據(jù)類型重命名,如UDT 3、 在UDT中添加要用的變量,編譯保存。 4、 新建一個(gè)全局DB塊-DB1,并在DB塊中添加名稱M1等,數(shù)據(jù)類型為'UDT',注意數(shù)據(jù)類型要與之前新建的數(shù)據(jù)類型名稱相同。 5、 新建一個(gè)FB塊-FB1,在FB1的接口中按如圖所示添加,注意在InOut接口中添加的名稱為M的變量的數(shù)據(jù)類型為UDT。 6、 在FB1中編寫(xiě)如下程序,編譯保存,使FB的接口與UDT中的數(shù)據(jù)建立聯(lián)系。 7、 在DB1中調(diào)用FB1,在M接口選擇'DB1',然后選擇'M1'。 8、 多次調(diào)用FB2時(shí),改變M接口即可。 完。 |
|