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

下載本文檔

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

文檔簡介

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

2、以兩組各十臺相同的電機為例。UDT1 對應這些電機的所有輸入變量。 序號步驟1在 STEP 7 項目中插入自定義數(shù)據(jù)類型。如圖 01 鼠標選中“block”文件夾并點擊右鍵,再彈出菜單中選擇命令“Insert New Object > Data Type” 。圖 012在“Properties - Data Type”對話框中輸入 UDT1 的符號名(這里以“Motor”為例)后點擊OK 確認。圖 023打開 UDT1 并輸入相關(guān)數(shù)據(jù)類型的變量及其初始值。圖 03 為 UDT1 變量聲明的例子。圖 034然后通過菜單命令“Insert > S7 Block > Da

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

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

5、#Eingabe.Einschalten” (A  #Input.Switch On)· Eingabe:FC1 的 IN 參數(shù)變量 · Einschalten: UDT1 中的一個變量名圖 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 的符號名· Halle_1_Motor2: DB 塊數(shù)組2 的變量· Einschalten: UDT1 中的一個變量名圖 089 在FC 或 FB 中參數(shù)化 IN 參數(shù)當調(diào)用 FC1時, UDT 類型的輸入變量必須賦值,例如可以用如下語句將第一組電機地址指針賦給輸入?yún)?shù)。· “Halle_Motoren”.Halle_1_Motor1  (“Hall_Motors”.Hall_1_Motor1)圖 09這種參數(shù)化過程同樣適用于定義為 UDT 類

7、型的 OUT 和 IN_OUT 參數(shù)的其它變量。10在交叉參考表中可以顯示 S7 用戶程序所用地址及應用(例如 DB1 )的列表。 圖 10數(shù)據(jù)塊“unlinked”屬性注意事項:如果在DB 塊中定義了 UDT 數(shù)據(jù)類型并且將 DB “unlinked”屬性激活,對于 STEP 7 V5.2 / V5.3,如果對 UDT 作了修改,STEP 7 會應用“Check block consistency”功能自動調(diào)整數(shù)據(jù)塊,此時“unlinked”的屬性可能會失效。當塊一致性檢查完成后,確保 DB 的“unlinked”屬性依然有效,否則可作相應設(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ù)類型一、案例說明1、控制對象4個控制方式相同的電機。2、單個電機控制要求(1)按下啟動按鈕-電機啟動,并開始計時-到達設(shè)定時間后發(fā)出電機維護提示(2)按下停止按鈕-電機停止,并停止計

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論