S7-300中UDT與STRUCT型數(shù)據(jù)總結(jié)_第1頁(yè)
S7-300中UDT與STRUCT型數(shù)據(jù)總結(jié)_第2頁(yè)
S7-300中UDT與STRUCT型數(shù)據(jù)總結(jié)_第3頁(yè)
S7-300中UDT與STRUCT型數(shù)據(jù)總結(jié)_第4頁(yè)
S7-300中UDT與STRUCT型數(shù)據(jù)總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、UDT型說(shuō)明:從數(shù)據(jù)類型的意義上說(shuō) UDT 并不被 CPU 所識(shí)別,而是在離線程序中自定義(組合)的數(shù)據(jù)類型。 S7 程序的自定義數(shù)據(jù)類型并不能裝載到 S7 CPU 中。UDT 是由遞增的編輯器創(chuàng)建并編輯或由源文件的編譯而生成。 當(dāng)在塊調(diào)用中進(jìn)行變量傳遞時(shí)是不能將 UDT 作為內(nèi)存地址區(qū)域來(lái)傳遞的。因此推薦將傳遞的變量指定為字節(jié)數(shù)據(jù)類型并與其數(shù)據(jù)長(zhǎng)度相一致,或者使用 UDT 的符號(hào)名來(lái)定義 IN, OUT 和 IN_OUT 參數(shù),因?yàn)橄到y(tǒng)將自動(dòng)生成相對(duì)應(yīng)的地址。下表介紹了如何創(chuàng)建和參數(shù)化  UDT  類型變量的過(guò)程。 我們將

2、以兩組各十臺(tái)相同的電機(jī)為例。UDT1 對(duì)應(yīng)這些電機(jī)的所有輸入變量。 序號(hào)步驟1在 STEP 7 項(xiàng)目中插入自定義數(shù)據(jù)類型。如圖 01 鼠標(biāo)選中“block”文件夾并點(diǎn)擊右鍵,再?gòu)棾霾藛沃羞x擇命令“Insert New Object > Data Type” 。圖 012在“Properties - Data Type”對(duì)話框中輸入 UDT1 的符號(hào)名(這里以“Motor”為例)后點(diǎn)擊OK 確認(rèn)。圖 023打開(kāi) UDT1 并輸入相關(guān)數(shù)據(jù)類型的變量及其初始值。圖 03 為 UDT1 變量聲明的例子。圖 034然后通過(guò)菜單命令“Insert > S7 Block > Da

3、ta Block”在 STEP 7 項(xiàng)目中添加一個(gè)數(shù)據(jù)塊 DB1 ,并在“Properties - Data Block”屬性對(duì)話框中為其定義符號(hào)名(例如此例為“Halle_Motoren” (Hall - Motors))。點(diǎn)擊OK 確認(rèn)。 圖 045打開(kāi) DB1 將變量數(shù)據(jù)類型定義為 UDT1 (符號(hào)名“Motor”)。 例如圖 05 所示:兩個(gè)數(shù)組( ARRAY)變量,每組包括10個(gè)以 UDT1 為數(shù)據(jù)類型的變量( 編號(hào)1 到10)。圖 05由于此例兩組電機(jī)是獨(dú)立的,所以在 DB1 中要為每一組電機(jī)創(chuàng)建數(shù)據(jù)結(jié)構(gòu)。例如第一組的數(shù)據(jù)結(jié)構(gòu)定義為數(shù)據(jù)類型為 UDT1 的數(shù)組“ Arra

4、y1.10 ”,符號(hào)名為“Halle_1_Motor”。6選擇菜單命令“View > Data View”可顯示所有 DB1 數(shù)據(jù)。圖 06注意事項(xiàng):在數(shù)據(jù)塊中變量定義為  UDT 情況下只能對(duì)實(shí)際值進(jìn)行編輯。即可以在數(shù)據(jù)塊的數(shù)據(jù)視圖中輸入變量的當(dāng)前值。初始值“Initial Value”縱欄顯示的是在定義 UDT  變量時(shí)所設(shè)的初值。只是在 DB 塊第一次存儲(chǔ)時(shí)將初值作為當(dāng)前值。7為 FC 或 FB 定義 UDT 1 類型的 IN 參數(shù)創(chuàng)建 FB 或 FC 時(shí),可以定義 UDT 1 (Motor)類型的 IN 參數(shù),如圖07所示。例如,與操作語(yǔ)句:“U 

5、#Eingabe.Einschalten” (A  #Input.Switch On)· Eingabe:FC1 的 IN 參數(shù)變量 · Einschalten: UDT1 中的一個(gè)變量名圖 07UDT 數(shù)據(jù)類型同樣適用于 OUT 和 IN_OUT 參數(shù),方法同上。8數(shù)據(jù)塊 DB1  的尋址及編程圖  08 所示為變量定義為 UDT1 類型數(shù)據(jù)結(jié)構(gòu)的 DB1 的編程例子。例如與操作:U  “Halle_Motoren”.Halle_1_Motor2.Einschalten (“U Hall_Motors.Hall_

6、1_Motor2.Switch On)· Halle_Motoren: DB1 的符號(hào)名· Halle_1_Motor2: DB 塊數(shù)組2 的變量· Einschalten: UDT1 中的一個(gè)變量名圖 089 在FC 或 FB 中參數(shù)化 IN 參數(shù)當(dāng)調(diào)用 FC1時(shí), UDT 類型的輸入變量必須賦值,例如可以用如下語(yǔ)句將第一組電機(jī)地址指針賦給輸入?yún)?shù)。· “Halle_Motoren”.Halle_1_Motor1  (“Hall_Motors”.Hall_1_Motor1)圖 09這種參數(shù)化過(guò)程同樣適用于定義為 UDT 類

7、型的 OUT 和 IN_OUT 參數(shù)的其它變量。10在交叉參考表中可以顯示 S7 用戶程序所用地址及應(yīng)用(例如 DB1 )的列表。 圖 10數(shù)據(jù)塊“unlinked”屬性注意事項(xiàng):如果在DB 塊中定義了 UDT 數(shù)據(jù)類型并且將 DB “unlinked”屬性激活,對(duì)于 STEP 7 V5.2 / V5.3,如果對(duì) UDT 作了修改,STEP 7 會(huì)應(yīng)用“Check block consistency”功能自動(dòng)調(diào)整數(shù)據(jù)塊,此時(shí)“unlinked”的屬性可能會(huì)失效。當(dāng)塊一致性檢查完成后,確保 DB 的“unlinked”屬性依然有效,否則可作相應(yīng)設(shè)置。  S

8、TEP 7 在線幫助可提供更多相關(guān)信息:· “User-Defined Data Types (UDT) ”· “Entering and Displaying the Structure of Data Blocks Referencing a UDT”· “Entering the Data Structure of Shared Data Blocks”關(guān)鍵詞:塊例程,自定義數(shù)據(jù)類型一、案例說(shuō)明1、控制對(duì)象4個(gè)控制方式相同的電機(jī)。2、單個(gè)電機(jī)控制要求(1)按下啟動(dòng)按鈕-電機(jī)啟動(dòng),并開(kāi)始計(jì)時(shí)-到達(dá)設(shè)定時(shí)間后發(fā)出電機(jī)維護(hù)提示(2)按下停止按鈕-電機(jī)停止,并停止計(jì)

9、時(shí),但并不將時(shí)間清零。(3)電機(jī)運(yùn)行時(shí)間小于設(shè)定值,時(shí)間不能復(fù)位,電機(jī)運(yùn)行時(shí)間達(dá)到或。超過(guò)設(shè)定值后按下復(fù)位按鈕時(shí)間置0,電機(jī)維護(hù)提示消失。(4)當(dāng)電機(jī)發(fā)生故障時(shí),電機(jī)停止運(yùn)行,并發(fā)出報(bào)警,故障處理完畢后必須手動(dòng)確認(rèn)復(fù)位報(bào)警信號(hào)才能再次啟動(dòng)電機(jī)。     (5)任何時(shí)間電機(jī)停止,計(jì)時(shí)停止,電機(jī)運(yùn)行,繼續(xù)計(jì)時(shí),時(shí)間只能有復(fù)位按鈕可以清零。 3、要求將四個(gè)電機(jī)的所有參數(shù)放在1個(gè)DB塊中,方便管理和做上位接口 二、案例分析根據(jù)控制要求得出單個(gè)電機(jī)所需I/O輸入:?jiǎn)?dòng)、停止、故障復(fù)位、計(jì)時(shí)復(fù)位、電機(jī)維護(hù)周期、電機(jī)故障報(bào)警輸出:運(yùn)行、故

10、障報(bào)警、已運(yùn)行時(shí)間、電機(jī)維護(hù)提示根據(jù)案例說(shuō)明3中的要求我們需要自定義結(jié)構(gòu)UDT和DB塊的配合使用 三、編程1、首先建立UDT結(jié)構(gòu)如下圖所示 2、建立存放參數(shù)的DB塊,并建立以上圖為結(jié)構(gòu)的四個(gè)電機(jī)的數(shù)據(jù) 3、建立FB1塊進(jìn)行編程,首先建立接口如下圖所示 程序如下 4、為四個(gè)電機(jī)分別建立FB1程序的背景DB塊,從DB2到DB5如下所示 5、OB1中編寫程序如下圖所示 四、仿真監(jiān)控 變量表監(jiān)控 DB塊監(jiān)控Struct(結(jié)構(gòu)性類型)是由不同數(shù)據(jù)類型組成的、屬于復(fù)合型數(shù)據(jù)類型,它是用來(lái)定義一組相關(guān)的數(shù)據(jù),其長(zhǎng)度由用

11、戶定義,它與數(shù)組(Array)類型相反(ARRAY是由相同類型的數(shù)據(jù)組成的數(shù)組)。許多關(guān)于結(jié)構(gòu)類型的書(shū)籍中提到的關(guān)于電機(jī)控制系統(tǒng)中,把一個(gè)電機(jī)所有控制元素,如運(yùn)行速度、額度電流、起動(dòng)電流和運(yùn)行方向等作為參數(shù)或邏輯塊的局部變量,并且在全局?jǐn)?shù)據(jù)塊中聲明,這樣利用它可以結(jié)構(gòu)化大量的數(shù)據(jù)并且可以用符號(hào)進(jìn)行處理,由于訪問(wèn)結(jié)構(gòu)的元素包含結(jié)構(gòu)的名稱,使程序更容易讀,指令編寫更清晰。如電機(jī)的一組不同類型的數(shù)據(jù)(稱為元素)組成的結(jié)構(gòu)命名為Motor_Data,并且放在共享數(shù)據(jù)塊DB1中,為了用符號(hào)訪問(wèn)結(jié)構(gòu)中的一個(gè)元素,需要給數(shù)據(jù)塊分配一個(gè)符號(hào)名,如Drive_1. 結(jié)構(gòu)的關(guān)鍵字是STRUCT“,結(jié)構(gòu)的

12、結(jié)束用END_STRUCT. 這樣在打開(kāi)數(shù)據(jù)塊DB1(符號(hào)名Drive_1),可以看到上面變量聲明表為:Address(地址)  Name(名稱)            Type(類型) Initial Value(初始值)0.0                

13、0;                      Struct0.0              Motor_Data(電機(jī)數(shù)據(jù))    Struct0.0    

14、          Operating_speed(運(yùn)行速度) INT2.0              Rated_current(額定電流)   REAL6.0             &

15、#160;Start_current (起動(dòng)電流)   REAL10.0             Max_temperature (最大溫度)REAL14.0             Turning_direction (轉(zhuǎn)動(dòng)方向)BOOL=16.0  

16、60;                            END_STRUCT=16.0                               END_STRUCT如果訪問(wèn)上述結(jié)構(gòu)中的某個(gè)元素,如Rated_current(額度電流),可以直接用下列指令:L “Drive_1”.Motor_data.Rated_current其中,“Drive_1”是數(shù)據(jù)塊的符號(hào)名,該數(shù)據(jù)塊包含結(jié)構(gòu)、結(jié)構(gòu)名稱(用點(diǎn)分割)在數(shù)據(jù)塊的后面。結(jié)構(gòu)的元素名(用點(diǎn)分割)跟在結(jié)構(gòu)名的后面。1. Struct是什么數(shù)據(jù)類型結(jié)構(gòu),屬于自定義的數(shù)據(jù)類

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論