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