1. 定義一個 PLC 數據類型(UDT)配方數據塊的設計需靈活包含數組結構,這些數組能夠模擬菜譜中的復雜配料列表,既支持一維也支持多維數組形式,以適應不同層級和類型的配方參數。數組中的每個元素均基于PLC支持的數據類型或自定義結構體構建,確保數據在PLC系統中的有效存儲與處理。首先,我們來創建一個PLC數據類型,用來定義配方中的配料組成,我們以制造蛋糕為例,如圖1所示。 圖1.定義 PLC 數據類型數據模板定義了后續配方數據塊中反復使用的數據類型,這些類型構成了配方成分的基礎結構。在創建不同的產品配方時,我們只需輸入共用的成分名稱及其數據類型,然后通過調整這些成分的具體數值來區分各個配方。這樣,一個統一的數據模板能夠靈活支持多個實例配方的生成,每個配方因其成分數值的不同而。2. 使用 PLC 數據類型創建配方數據塊我們設定了一個全局性的配方數據塊,名為“DB1_蛋糕配方”,并在其屬性中特別指定了“僅存儲在裝載內存中”的選項,以確保數據處理的效率。在“DB1_蛋糕配方”中,我們定義了一個數組類型的變量,該數組的元素類型為自定義的“蛋糕配方”結構體。數組的大小被設置為0到7的限值,意味著可以存儲Zui多8個不同的蛋糕配方。這一設計提供了靈活性,允許根據實際需求調整配方數量,滿足多樣化的生產需求。注意,如果需要使用RecipeExport和RecipeImport導入導出,配方DB塊的名稱中盡量不出現中文字符,否則在WEB頁面操作會略微麻煩一些,具體詳見配方數據的管理。本例為顯示直觀,所以使用了“DB1_蛋糕配方”的名字。圖2.定義數據塊屬性圖3.創建配方數據塊3. 在工作存儲器中創建活動配方 DB,并通過“READ_DBL”和“WRIT_DBL”指令實現對裝載存儲區配方數據塊的讀寫操作我們準備了一個全局數據塊“DB2_活動配方”,位于工作存儲器中,專門用于配方數據的實時寫入與讀取操作。該數據塊的數據類型直接設定為“蛋糕配方”,這樣可以直接與我們的配方結構體相匹配,便于數據的直接交互與處理,如圖4所示。 圖4.添加活動配方塊確定后,就可以得到活動配方數據塊,該塊只由一組配方組成,如圖5所示。圖5.活動配方數據塊注意,因為指令“READ_DBL”和“WRIT_DBL”的緣故,要求活動配方數據塊與配方數據塊的優化屬性必須相同,即都同時是優化數據塊,或者同時是非優化數據塊。將此DB塊作為連接工作存儲器與裝載存儲器中配方數據的關鍵接口,使用“WRIT_DBL”指令可即時將當前活動的配方數據從工作區寫入到裝載區的配方DB塊中,反之,“READ_DBL”指令則能迅速從裝載區讀取配方數據至工作區的活動配方DB塊,實現配方數據的動態讀寫操作。4. 導出配方數據塊S7-1200 V4.0及以上版本的CPU支持RecipeExport與RecipeImport指令,方便地將配方數據塊導入導出,便于通過EXCEL或ASCII編輯器等電腦工具進行靈活編輯與管理。對于S7-1200 V4.0之前的版本,用戶通常需直接在配方數據塊中設置初始配方值,因此可跳過部分步驟直接操作。在本例中,若需在編程中調用RecipeExport或RecipeImport功能,建議先創建一個DB塊(如"DB3_操作"),其中定義必要的結構體(如"Export")及請求、狀態等變量,以支持這些操作的調用。調用可在主程序OB1中通過LAD實現,亦可在FC/FB或FB的多重背景中靈活使用,編程語言則不限于LAD,FBD、SCL亦可,如圖6所示。圖6. 建立結構體在 OB1 調用RecipeExport,以及捕捉是否完成及錯誤代碼等程序,如圖7所示。 圖7.調用RecipeExport指令5. 配方csv文件的導入和導出通過Web服務器或存儲卡,用戶可輕松實現CSV文件的導入導出,進而在Excel等電腦上的軟件中便捷地編輯配方數據。6. 導入配方數據塊配方文件經WEB上傳或存儲卡導入后,可進一步導入配方數據塊。類似地,在"DB3操作" DB塊中構建與"Export"結構相同的"Import"結構體及其相關變量,用于RecipeImport的請求與狀態管理,如圖8所示。圖8. 建立結構體在 OB1 調用RecipeImport,以及捕捉是否完成及錯誤代碼等程序,如圖9所示。思路同第4步。圖9.調用RecipeImport指令7. 讀取配方數據配方數據在PLC裝載存儲器中編輯或設置后,需通過READ_DBL指令讀取。在"DB3操作" DB塊中定義Int型變量Index作為配方編號,范圍限定在0至7,以匹配配方數組索引。此編號既可在HMI界面上設定,也可通過程序邏輯設置。同時,在"DB3_操作" DB塊中構建"Read"結構體及其變量,用于READ_DBL操作的請求與狀態監控,如圖10所示。圖10.建立Index變量及結構體利用數組索引功能,通過設定Index變量的值來指定需從配方數組中讀取的配方編號,并將其內容傳輸至活動配方數據塊。例如,若需加載配方0至活動配方,則將Index設為0;若需配方1,則Index設為1,以此類推。具體實現程序如圖11所示。圖11.讀配方然后就可以直接使用活動配方了,不論是程序中,還是HMI畫面中。例如本例中,當Index=0時,讀出的活動配方DB,如圖12所示。 圖12.活動配方數據8. 在線修改配方若需微調配方數據而非全面更新,可利用WRIT_DBL指令直接在PLC中修改。通過DB塊"DB3_操作"的Index變量指定待修改配方,此變量亦可在HMI界面上設定。在HMI上,用戶可選擇配方編號,將活動配方映射至IO域以便修改,隨后通過按鈕觸發READ_DBL讀取配方,修改后,再觸發WRIT_DBL將更新后的活動配方寫回指定配方編號位置,如圖13所示為操作界面示例。圖13.HMI畫面同樣在DB塊"DB3_操作",建立結構體"Write",以及相關變量,結構同"Read",用于WRIT_DBL的請求與狀態位,如圖14所示。圖14.建立結構體Zui后,通過數組索引功能,將已修改的活動配方數據寫入到配方數組中的指定位置。具體地,設置Index變量為欲修改的配方編號(如0表示配方0),修改活動配方數據塊后,執行寫入操作。如需修改其他配方,只需更改Index值并重復上述過程,如圖15所示為相應程序示例。圖15.寫配方本例如圖16所示,讀出Index為0的配方,然后修改黃油數據為2.0,點擊“寫入配方”按鈕即可修改配方DB的值。圖16.HMI修改數據到這里我們蛋糕配方案例就結束啦,同學們跟上老師的節奏了嗎?
- 西門子S7-200PLC移位寄存器指令 2024-12-04
- 西門子S7-200PLC——數據轉換指令及案例 2024-12-04
- 西門子S7-200PLC數據傳送指令及案例 2024-12-04
- 西門子S7-200PLC指令用法 2024-12-04
- 西門子S7-200 PLC指令系統及案例(1) 2024-12-04
- 西門子S7-200特殊輔助繼電器的含義 2024-12-04
- 西門子S7-200清掃設備PLC控制系統的設計(2) 2024-12-04
- 西門子S7-200清掃設備PLC控制系統的設計(1) 2024-12-04
- 西門子S7-200 SMART PLC ——含有觸摸屏交通燈PLC控制系統的設計 2024-12-04
- 西門子S7-200 SMART PLC ——兩種液體混合PLC控制系統的設計 2024-12-04
- 西門子S7-200 SMART PLC ——機械手PLC控制系統的設計 2024-12-04
- 西門子S7-200 SMART PLC ——PID向導及應用案例 2024-12-04
- 解碼器與編碼器的區別在哪里 2024-12-04
- 解碼器有哪些分類 2024-12-04
- 使用西門子變頻器有哪些注意事項 2024-12-04
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415