AB PLC編程軟件RSLOGIX5000入門7——UDT用戶自定義數據類型_第1頁
AB PLC編程軟件RSLOGIX5000入門7——UDT用戶自定義數據類型_第2頁
AB PLC編程軟件RSLOGIX5000入門7——UDT用戶自定義數據類型_第3頁
AB PLC編程軟件RSLOGIX5000入門7——UDT用戶自定義數據類型_第4頁
AB PLC編程軟件RSLOGIX5000入門7——UDT用戶自定義數據類型_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、AB PLC編程軟件RSLOGIX5000入門7UDT用戶自定義數據類型在本章中,我們將介紹如何通過用戶自定義數據類型和數據范圍劃定來規劃標簽數據庫。這里將學到§    了解使用 UDT 的優勢 §    學習如何優化 UDT 規劃 §    使用數據范圍劃定幫助簡化并加快開發工作 我們現在將重點關注 Logix 控制器中的數據規劃。打開現有控制器文件

2、60;1.    在計算機桌面上,雙擊 Lab Files 文件夾。 2.    雙擊名為 Conveyor_Program_S3.ACD 的現有項目。 這樣將在 RSLogix 5000 中啟動該項目。 為傳送帶創建用戶自定義數據類型  您已重新組織了程序規劃以更好地利用 Logix,現在已準備好開始對數據規劃進行重新組織。可注意到,工程師規劃數據的方式仍像使用帶有整數、實數和定時器數據表的傳統

3、 PLC 一樣。問題是,當與設備關聯的數據分布到控制器內存中的各處時便很難進行跟蹤。您已再次決定充分利用 Logix,使用用戶自定義數據類型。用戶自定義數據類型 用戶自定義數據類型也稱為 UDT 或結構,借此按邏輯方式對數據進行組織或分組,以便所有與設備關聯的數據都可組合在一起。 例如,每個傳送帶都有 8 個整數值、3 個實數值、2 個定時器和 11 個與其關聯的布爾值。在傳統PLC 中,可能需要 4 個不同的數據表。然后,當您具有多條

4、傳送帶時,您可能需要詳細地將傳送帶映射到各個數據表中。這樣就會變得很難管理。 通過 UDT 能夠實現的是將不同的數據類型(整數、實數、定時器、布爾等)組合到一起,共同作為用戶自定義數據類型。然后便可創建該 UDT 類型的數組。這可使得編程工作、代碼的記錄和數據的跟蹤都更加輕松。 1.    在控制器項目管理器中,雙擊"控制器標簽"(Controller Tags)。  將出現標簽編輯器。可注意到,標簽數據庫的外觀與傳統 PLC 非常類似

5、。  Logix 標簽數據庫 在傳統 PLC 中,用物理地址標識各個數據項,例如 N7:0 或 B3:0/0。不使用地址注釋或符號,就很難閱讀邏輯。 在 Logix 控制器中沒有固定的內存 N7:0 或 B3:0/0。Logix 內存是基于標簽的系統。標簽名稱本身就可以標識數據。借此便能夠組織數據以模擬機器。您可在實際中使用分配的標簽名稱記錄代碼,例如 Nozzle_1_Temperature。 參考信息 

6、創建 Logix 項目標簽的指導原則  指導原則 詳細信息: 1) 創建用戶自定義數據類型。 用戶自定義數據類型(結構)使您可以組織數據以匹配機器或進程。用戶自定義數據類型提供以下優勢: 一個標簽包含系統特定方面的所有相關數據。這樣將相關數據保存在一起便于查找,不考慮其數據類型。 每個數據(成員)得到一個描述性名稱。這樣自動為邏輯創建初始水平的文檔。 可以使用該數據類型創建具有相同數據規劃的多個標簽。 例如,使用用戶自定義數據類型存儲罐的所有參數,包括溫度、壓力、閥門位置和預

7、設值。然后基于該數據類型為每個罐創建標簽。 2) 使用數組快速創建一組類似標簽。 數組在一個公共標簽名稱下創建數據類型的多個實例。 數組使您可以組織一組使用相同數據類型并執行類似功能的標簽。 以一維、二維或三維組織數據以匹配數據表示的內容。 例如,使用二維數組組織油庫的數據。數組的每個元素表示一個油罐。元素在數組中的位置表示罐的地理位置。 重要說明:盡量減少使用 BOOL 數組。許多數組指令不能在 BOOL 數組上使用。這使得更難以初始化和清除 BOOL 數據數組。

8、通常對 PanelView 屏幕的位級別對象使用 BOOL 數組。否則,使用 DINT 標簽的各個位或 DINT 數組。 3) 利用程序范圍標簽。 如果希望多個標簽具有相同名稱,請在每個不同程序的程序范圍定義每個標簽(程序標簽)。這使您可以在多個程序中重新使用邏輯和標簽名稱。 避免同時為控制器標簽和程序標簽使用相同的名稱。在程序中,如果程序的程序標簽與控制器標簽名稱相同,則不能引用控制器標簽。 某些標簽必須是控制器范圍(控制器標簽)。 如果希望將標簽用于:

9、 則分配此范圍: 項目中的多個程序中 控制器范圍(控制器標簽) 消息 (MSG) 指令中 在控制器之間產生或使用數據與PanelView 終端通信 以上都不是 程序范圍(程序標簽)    4) 對于整數,使用 DINT 數據類型。 要提高邏輯效率,請盡可能少用 SINT 或 INT 數據類型。條件允許時,對整數使用 DINT 數據類型。 Logix

10、5000 控制器通常將值作為 32 位值(DINT 或 REAL)進行比較或操作。 控制器在使用值前,通常會將 SINT 或 INT 值轉換為 DINT 或 REAL 值。 如果目標是 SINT 或 INT 標簽,則控制器通常會將該值轉換回 SINT 或 INT 值。 與 SINT 或 INT 的轉換自動進行,無需額外

11、編程。不過將占用額外的執行時間和內存。 5) 限制標簽名稱為 40 個字符。 下面是標簽名稱的規則: 僅字母字符(A-Z 或 a-z)、數字字符 (0-9) 和下劃線 (_) 必須以字母字符或下劃線開始 不能多于 40 個字符 不能連續出現下劃線字符 (_) 或以下劃線字符 (_) 結尾 不區分大小寫 6) 使用混合大小寫。 盡管標簽不區分大小寫(大寫

12、60;A 和小寫 a 相同),但混合大小寫更容易閱讀。 這些標簽更容易閱讀: 相比這些標簽: Tank_1 TANK_1 Tank1 TANK1  tank_1  tank1 7) 考慮標簽的字母順序。 RSLogix 5000 軟件以字母順序顯示相同范圍的標簽。要更容易監視相關標簽,請對要保存在一起的標簽使用類似的開始字符。 對罐的每個標簽以 Tank 開始將標簽保存在一起。 否則,標

13、簽可能彼此分隔。 標簽名稱 標簽名稱 Tank_North North_Tank Tank_South South_Tank   2.    在標簽編輯器中單擊 N7 旁邊的 +。 這將展開 N7 數組,顯示其中的所有元素。可注意到從 N70 到 N77 的數據已定義。然后是從 N720到 N727 和從 N740 到

14、 N747。這些區域分別對應 3 個傳送帶,是傳統的 PLC 數據表布局。   3.    也仔細查看 B3、F8 和 T4。 它們都將采用相同的格式:傳送帶 1 從 0 開始,傳送帶 2 從 20 開始,傳送帶 3 從 40 開始。這樣做的目的是使得在標簽數據庫中查找傳送帶數據更加容易。這樣確實有一定作用,但是您為傳

15、送帶使用了4 個數據表,浪費內存。 而通過創建 UDT 可更好地實現這一點。我們現在就來創建 UDT。 4.    在控制器項目管理器中的"數據類型"(Data Types) 文件夾下,單擊"用戶自定義"(User-Defined) 旁邊的 +。  您將注意到這里有一個名為 Conveyor 的 UDT(已為您啟動 UDT 的創建)。  

16、5.    雙擊 Conveyor。 這將為 Conveyor 數據類型打開 UDT 編輯器。可以看到,UDT 混合不同的數據類型。在編程時這是非常有用的工具。  用戶自定義數據類型的指導原則 §    創建用戶自定義數據類型時,記住以下指導原則: §    如果包括表示 I/O 設備的數據,則必須使用邏輯將數據復制到 

17、;UDT 中。UDT 中不可為 I/O指定別名。 §    如果要在 UDT 中包括數組,應將數組限制為一維。UDT 不支持多維數組。 §     創建 UDT 時,將類似的數據類型組合到一起。這將創建更為緊湊的 UDT。 查看 UDT 后,您會注意到,類似的數據類型并未組合到一起。BOOL 和 REAL 數據類型混在

18、一起。UDT的當前大小是 52 個字節。將 BOOL 組合在一起可降低這一數字。 6.    要進行此操作,單擊 Motor_Overload 的左側。這樣將選中整行。    7.    單擊"向上移動"(Move Up) 按鈕。 這會在 UDT 中將 Motor_Overload 標簽向上移動。 8. &#

19、160;  對其它 BOOL 標簽重復此操作,直到它們均組合到一起。 9.    單擊"應用"(Apply)。 現在請注意一下 UDT 的大小。您已節省了 12 個字節。 10.    完成對 BOOL 標簽的移動后,驗證 UDT 的顯示如下:  11.    回到"控制器標簽&

20、quot;(Controller Tags),展開 N7 標簽并注意 N70 到 N77 及其描述。 12.    使用標簽的描述將這些標簽添加到 UDT。手動執行行此操作(并要記住參考前文中的指導原則 4)。 13.    完成后,單擊"應用"(Apply) 接受所做更改并驗證 UDT 應類似下圖。  您現在已擁有一個在程序中定義傳送帶的完整&#

21、160;UDT。 14.    單擊"確定"(OK) 關閉 UDT 編輯窗口。 15.    在"文件"(File) 菜單中選擇"關閉"(Close)。軟件將詢問您是否要保存對文件所做的更改,選擇"否"(No)。 使用傳送帶 UDT  現在您將使用剛創建的 UDT 傳送帶。您意識到 UDT 將幫助優

22、化標簽數據庫,并使代碼的故障處理和開發更容易。 1.    在 RSLogix 5000 的工具欄菜單中,選擇"文件 > 打開"(File > Open)。 2.    雙擊名為 Conveyor_Program_S4.ACD 的現有項目文件。 這樣將在 RSLogix 5000 中啟動該項目。 3.    在控制器項目管理器

23、中,雙擊"控制器標簽"(Controller Tags)。 這將打開標簽編輯器。  查看標簽編輯器,您將發現數據庫中有一個新標簽 Conveyor_1。  4.    單擊 Conveyor_1 旁邊的 + 展開該標簽。 您可注意到標簽的格式與剛創建的 UDT 相同。這可通過查看"類型"(Type) 列進行確認。 5.    在

24、控制器項目管理器中,單擊各個程序的 +,展開連續任務中的 3 個傳送帶程序。  6.    雙擊例程 C2_Start_Stop。這將打開該例程,并可進行查看和編輯操作。  7.    現在顯示的是梯形圖例程 C2_Start_Stop。 您可注意到,在此實例中 Conveyor_2 的尋址方式仍使用的是傳統 PLC 的的尋址方式。例如,在梯級 0上,定時器的地址為&

25、#160;T420。   8.    雙擊例程 C1_Start_Stop。 這將打開該例程,并可進行查看和編輯操作。     9.    現在顯示的是梯形圖文件 C1_Start_Stop。 可注意到傳送帶 1 的尋址方式使用的是 UDT。如您所見,代碼現在可以自文檔化,而且標簽名稱可描述其具體的意義。您無需再像傳統 PLC 中一樣添加地址描述。

26、代碼中仍有一些較早樣式的地址;我們將稍后處理它們。   現在我們來繼續更新其它兩個傳送帶程序以使用 UDT。首先我們需要創建兩個新標簽。 10.    在工具欄菜單中,選擇"窗口 > 控制器標簽 - Conveyor_Program(控制器)"(Window > Controller Tags Conveyor_Program(controller)。 這會將標簽編輯器窗口置于頂層。  11.  

27、;  在標簽編輯器窗口的左下角處,單擊"編輯標簽"(Edit Tags) 選項卡。  在這里我們將創建兩個新標簽,Conveyor_2 和 Conveyor_3。 12.    在標簽編輯器中列表的底部,可注意到那里有一個開放空間,可創建一個新標簽。 13.    在"名稱:"(Name:)列中,輸入"Conveyor_2"并在"類型"(Type)

28、 列中輸入"Conveyor"。 這樣便會創建一個傳送帶類型的名稱為 Conveyor_2 的標簽。      只要記錄中仍可看到鉛筆圖標,您便仍處于編輯模式下。 14.    要創建新標簽,單擊 Conveyor_2 下面的新空白行,并驗證標簽編輯器的顯示如下:  15.    使用與上述相同的方法,為 Conveyor_3 

29、創建標簽。  16.    完成后,驗證標簽數據庫的顯示如下:  現在我們將需要更新梯形圖代碼以使用這些新標簽。我們將從 Conveyor_2 開始。我們將僅修改 Alarm_Status 和 Energy_Manag 例程。使用下表并參考 Conveyor_1 例程。        讓我們從一個示例開始。 17.   

30、; 在控制器項目管理器中,雙擊例程 C2_Alarm_Status。 重要說明:我們目前將忽略任何在描述中包括文字"映射"的 B3 地址。 18.    在梯級零上,注意描述為 C2 電機過載的 OTE 指令。 通過查看前一頁中的圖,您可發現此描述與 UDT 中的第二個成員相匹配。  19.    要更改地址,雙擊 B328。 

31、這將打開一個下拉框,以便您可選擇一個新標簽。    20.    單擊向下箭頭(這將打開標簽瀏覽器),滾動瀏覽列表直到您找到 Conveyor_2。 21.    單擊 + 展開該標簽,然后選擇 Conveyor_2.Motor_Overload,如下所示:  22.    雙擊 Conveyor_2.Motor_Overload。 這會令

32、0;Conveyor_2.Motor_Overload 成為 OTE 指令的新標簽。 23.    單擊標簽編輯器的空白處,驗證梯級的顯示如下(請再次注意自文檔化的代碼):  24.    現在,繼續并完成此例程的更新。然后更新傳送帶 2 的 Energy_Manag 例程。 25.    為傳送帶 3 重復相同的步驟。 26. 

33、;   可注意到標簽 Conveyor_2.Motor_Overload 確實具有描述。對于版本 V12 和較早版本的 RSLogix 5000,在 UDT 編輯器中輸入的描述并不會在 UDT 編輯器以外顯示。   UDT 傳遞和附加描述選項從 RSLogix 5000 的版本 13開始,"工作站選項"(Workstation Options) 下提供 2 

34、個新設置。              如果啟用傳遞描述,則只要不為標簽提供顯式描述: §    在標簽是別名時將會顯示基礎標簽的描述,或者 §    在標簽是成員時將會顯示定義的數據類型的成員描述,或者 §    在標簽是位、數組元素或成員時將會顯示基礎標簽的描述,或者§

35、;    將會顯示定義的基本數據類型的描述。如果選中此復選框,"附加到基礎標簽描述"(Append to Base Tag Descriptions) 復選框便會啟用。如果要使傳遞描述中包含基礎標簽描述,則選中"附加到基礎標簽描述"(Append to Base Tag Descriptions) 復選框。根據傳遞描述規則添加任意附加描述。在提供此功能之前,用戶必須手動從 UDT 編輯器中剪切描述,并在標簽編輯器里手動將這些描述粘貼到標簽中。這樣會使編程工作多花費許多個小時的

36、時間。 我們來了解一下此新功能的工作方式。 27.    在控制器項目管理器中的"數據類型"(Data Types) 文件夾下,單擊"用戶自定義"(User-Defined) 旁邊的 +。    您將注意到有一個名為 Conveyor 的 UDT。  28.    雙擊文字 Conveyor。 這將為 Con

37、veyor 數據類型打開 UDT 編輯器。   29.    為 UDT 的成員添加一些描述,完成后單擊"應用"(Apply)。30.    更改 UDT 的描述,如下所示:  31.    單擊"應用"(Apply),然后單擊"確定"(OK) 關閉 UDT 編輯器。&

38、#160;32.    在控制器項目管理器中,雙擊例程 C2_Alarm_Status。 您現在可注意到,您輸入的描述現在已顯示在標簽上。該描述包括 UDT 描述(傳送帶數據)和 UDT 成員描述(電機過載指示)。  33.    在工具欄菜單中,選擇"工具 > 選項"(Tools > Options)。  將出現"選項"(Options)

39、60;窗口。  34.    在"應用程序"(Application) 下,單擊"顯示"(Display)。 窗口將如下所示。  35.    調整"工作站選項"(WorkStation Options) 窗口的位置,以便您既可看見該窗口同時又可看到C2_Alarm_Status 例程中的 OTE 指令。 36.   

40、 單擊"附加到基礎標簽描述"(Append To Base Tag Descriptions) 旁邊的復選框關閉此選項,然后單擊"應用"(Apply) 接受所做更改。 可以注意到描述已更改。UDT 描述"傳送帶數據"已移除。 37.    單擊"顯示傳遞描述"(Show Pass-Through Descriptions) 旁邊的復選框關閉此選項,然后單擊"應用"(Apply) 

41、;接受所做更改。 可以注意到描述已再次更改。描述處已沒有任何內容。這是在版本 V12 和更早 RSLogix 5000 版本中梯級的顯示方式。  38.    重新打開兩個選項,接著單擊"應用"(Apply),然后單擊"確定"(Ok)。 39.    完成后,單擊"保存"(Save) 圖標。 40.    在"

42、;文件"(File) 菜單中選擇"關閉"(Close)。 使用數據范圍劃定 您剛剛使用過用戶自定義數據類型,它們可更好地組織標簽數據庫,并可創建自文檔化的代碼。接下來要進行的也是最后一步要進行的是,將標簽的范圍劃定為程序級別。這就是數據范圍劃定。通過數據范圍劃定,您可: §    對不同的程序使用相同的標簽名稱,因為各程序范圍內的標簽彼此隔離。 §    開發標準代碼,可復制使用多次,無需擔憂標簽名稱沖突。 

43、;§    不再需要管理標簽名稱和數據位置。 §    加速項目開發過程。數據范圍劃定 創建標簽時,您將其定義為控制器標簽(全局數據)或特定程序的程序標簽(本地數據)。 Logix 控制器允許您將應用分割為多個程序。無需管理程序間標簽名稱的沖突問題。這樣便可更輕松地在多個程序中重復使用代碼和標簽名稱。 程序范圍內的數據與其它程序隔離。例程不能訪問其它程序的程序范圍內的數據。可以在多個程序內重復使用程序范圍標簽的標簽名稱。  &

44、#160;                  打開現有控制器文件 在實驗的本部分中,您將打開一個現有程序。 3.    在計算機桌面上,雙擊 Lab Files 文件夾。 4.    雙擊名為 Conveyor_Program_S5.ACD 的現有項目。 這樣

45、將在 RSLogix 5000 中啟動該項目。 對程序進行數據范圍劃定 1.    在控制器項目管理器中,雙擊"控制器標簽"(Controller Tags) 打開標簽編輯器。 2.    驗證已處于"編輯標簽"(Edit Tags) 選項卡中(如果不是,則無法執行剪切/粘貼操作)。 標簽編輯器打開后,您將注意到有許多舊標簽不見了(N7、F8、T4)。在創建傳送帶 UDT 并修

46、改代碼后,便不再需要這些標簽了。標簽 Conveyor_1、Conveyor_2 和 Conveyor_3 仍存在。F9 和 PD 文件被更改為標簽名稱,而不是像傳統 PLC 一樣采用數據表編號的方式。在將 PID 移動到周期性任務中后,已將 T10 文件刪除。  現在我們要將標簽 Conveyor_1、Conveyor_2 和 Conveyor_3 從控制器范圍移動到程序范圍。 3. 

47、   雙擊"數據類型"(Data Type) 列。 這樣會將標簽排列為更適合我們將進行的編輯。 首先我們會將標簽 Temp_Loop_PID、Control_Output 和 Process_Variable 移動到Temperature_Loop程序范圍。 4.    單擊標簽 Temp_Loop_PID 的左側。 這樣將選中整行。  5.   

48、 按住 Shift 鍵并單擊標簽 Process_Variable 的左側。 這樣將選中所有 3 個標簽。  6.    在工具欄菜單中,選擇"編輯 > 剪切"(Edit > Cut)。  7.    在"范圍"(Scope) 下拉菜單中,單擊向下箭頭。單擊"程序"(Programs) 

49、旁邊的 + 展開該標簽。 這將顯示所有當前的控制器和程序標簽數據庫。    8.    選擇 PID_Loop 范圍,如下所示:  這將會為程序 PID_Loop 的程序范圍標簽打開標簽編輯器。   在下拉菜單中,名稱前的    指明這是控制器范圍標簽。控制器稱為 Conveyor_Program。所以    Conveyor_Program 表示控制器范圍標簽。列表中的所有其它名稱是程序名稱或控制器中的設備階段。  當前 PID_Loop 在程序范圍級別沒有定義任何標簽。我們現在將向標簽中粘貼第 7 步中剪切下來的內容。 9.    單擊打開的標簽名稱文件,以便光標出現在下圖位置:   10.    在工具

溫馨提示

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

評論

0/150

提交評論