配方功能介紹
配方通常有兩種使用場(chǎng)景,一種是生產(chǎn)不同的產(chǎn)品,使用不同的工藝參數(shù),一種是在生產(chǎn)一種產(chǎn)品過(guò)程中有很多步驟,每個(gè)步驟都是有不同的參數(shù)。
通常這些參數(shù)數(shù)據(jù)存放在CPU工作存儲(chǔ)器的DB塊或M區(qū),但是很多時(shí)候這些數(shù)據(jù)的數(shù)據(jù)量特別大,數(shù)值卻是固定不變的,或者只是偶爾在需要的時(shí)候小做改動(dòng)。
而對(duì)于S7-1200來(lái)說(shuō),工作存儲(chǔ)器最大也只有150kB(S7-1217C),所以可以考慮將這些數(shù)據(jù),放入更大的裝載存儲(chǔ)器。對(duì)于S7-1200,內(nèi)置裝載存儲(chǔ)器有1MB(S7-1211C、S7-1212C)、2MB(S7-1214C V3.0以下)和4MB(S7-1214C V3.0以上、S7-1215C、S7-1217C)三種,如果通過(guò)存儲(chǔ)卡擴(kuò)展,理論上可以最多到32GB。
從 TIA PORTAL STEP 7 V11 SP2 開始,S7-1200 固件版本 V2.0 開始,S7-1200支持將DB塊僅存儲(chǔ)在裝載內(nèi)存中。并且提供指令READ_DBL將僅存儲(chǔ)在裝載存儲(chǔ)器的數(shù)據(jù)復(fù)制到工作存儲(chǔ)器,WRIT_DBL將工作存儲(chǔ)器的數(shù)據(jù)復(fù)制到僅存儲(chǔ)在裝載存儲(chǔ)器的數(shù)據(jù)塊。這樣就可以在需要時(shí)獲取配方數(shù)據(jù)與修改配方數(shù)據(jù)。但是這時(shí)通常只能在TIA PORTAL軟件的DB塊中編輯配方數(shù)據(jù),不是很方便。
從 TIA PORTAL STEP 7 V13 開始,S7-1200 CPU 固件版本 V4.0 開始,又提供了兩條配方函數(shù)指令,使得配方數(shù)據(jù)可以導(dǎo)入、導(dǎo)出,得以在PC上使用EXCEL等軟件更方便的編輯。
其中RecipeExport指令將完整的配方數(shù)據(jù)塊導(dǎo)出,存儲(chǔ)在 CPU 裝載存儲(chǔ)器的永久性配方數(shù)據(jù)文件中。配方數(shù)據(jù)文件按照標(biāo)準(zhǔn) CSV 格式存儲(chǔ)在 S7-1200 CPU 裝載存儲(chǔ)器中。
而RecipeImport指令將配方數(shù)據(jù)從裝載存儲(chǔ)器上的 CSV 文件導(dǎo)入到裝載存儲(chǔ)器上的配方數(shù)據(jù)塊中。此過(guò)程會(huì)覆蓋之前數(shù)據(jù)塊中的值。
注意:以上四個(gè)指令都不支持使用PLCSIM進(jìn)行仿真,只能使用真實(shí)CPU。
配方相關(guān)指令
配方相關(guān)指令位于以下路徑:擴(kuò)展指令—>配方和數(shù)據(jù)記錄—>配方函數(shù)以及擴(kuò)展指令—>數(shù)據(jù)塊控制,具體位置參見(jiàn)圖 1 紅框。
圖1 配方相關(guān)指令
配方功能快速入門
配方數(shù)據(jù)文件按照標(biāo)準(zhǔn) CSV 格式存儲(chǔ)在 S7-1200 CPU 裝載存儲(chǔ)器或 S7-1200 SIMATIC 存儲(chǔ)卡“程序卡”中。分別可通過(guò) PLC Web 服務(wù)器或?qū)τ诖鎯?chǔ)卡文件操作,將數(shù)據(jù)文件傳送到 PC 進(jìn)行管理和查看。也可將修改過(guò)后的配方數(shù)據(jù)文件上傳至PLC,再通過(guò)“RecipeImport”配方導(dǎo)入指令更新PLC裝載存儲(chǔ)器中配方數(shù)據(jù)塊的數(shù)值。
測(cè)試實(shí)例:
SIMATIC S7-1200 系列 CPU 使用配方數(shù)據(jù)功能,需要注意以下幾兩點(diǎn):
程序中創(chuàng)建一個(gè)配方數(shù)據(jù)塊,此 DB 塊必須存儲(chǔ)在 CPU 裝載存儲(chǔ)器中,可以使用 CPU 內(nèi)部裝載存儲(chǔ)器或程序卡
程序中創(chuàng)建一個(gè)活動(dòng)配方數(shù)據(jù)塊,此 DB 塊必須在 CPU 工作存儲(chǔ)器中,使用程序邏輯讀取或?qū)懭胍粋€(gè)活動(dòng)配方記錄
下面,舉例說(shuō)明用 S7-1200 實(shí)現(xiàn)配方的寫入和讀取功能。為方便配方數(shù)據(jù)操作,按照下圖思路進(jìn)行項(xiàng)目編程:
圖1 配方項(xiàng)目框圖
測(cè)試環(huán)境:
操作系統(tǒng):Win 10 64bit Pro 1703
軟件:TIA PORTAL V15 Update 4
測(cè)試軟件:Notepad++ V7.5.8
訂貨號(hào):6ES7215-1AG40-0XB0
實(shí)現(xiàn)步驟
1.定義一個(gè) PLC 數(shù)據(jù)類型(UDT)
配方數(shù)據(jù)塊必須包含數(shù)組,可以是一維的也可以是多維的,數(shù)組元素是 PLC 數(shù)據(jù)類型或結(jié)構(gòu)。在這個(gè)配方實(shí)例中使用 PLC 數(shù)據(jù)類型創(chuàng)建配方數(shù)據(jù)塊。
在此,創(chuàng)建一個(gè) PLC 數(shù)據(jù)類型,以定義一個(gè)配方記錄中的所有組成,以制造蛋糕為例,建立UDT過(guò)程參見(jiàn)鏈接,建好后如圖2所示。
圖2.定義 PLC 數(shù)據(jù)類型
數(shù)據(jù)類型是一個(gè)數(shù)據(jù)模板,它在每個(gè)配方數(shù)據(jù)塊以及活動(dòng)配方數(shù)據(jù)塊中重復(fù)使用。輸入所有實(shí)例配方共用的成分名稱和數(shù)據(jù)類型,根據(jù)分配給配方成分的數(shù)值不同而產(chǎn)生不同的產(chǎn)品配方。
2.使用 PLC 數(shù)據(jù)類型創(chuàng)建配方數(shù)據(jù)塊
創(chuàng)建一個(gè)配方數(shù)據(jù)塊,為全局?jǐn)?shù)據(jù)塊,并啟用數(shù)據(jù)塊屬性"僅存儲(chǔ)在裝載內(nèi)存中",如圖3紅圈所示。本例中,配方數(shù)據(jù) DB 塊名稱為 "DB1_蛋糕配方”,如圖4所示,插入一個(gè)數(shù)組類型變量,數(shù)組元素的數(shù)據(jù)類型為"蛋糕配方",本例中設(shè)置數(shù)組限值0..7,即可創(chuàng)建8個(gè)配方,可根據(jù)實(shí)際情況調(diào)整。
注意,如果需要使用RecipeExport和RecipeImport導(dǎo)入導(dǎo)出,配方DB塊的名稱中盡量不出現(xiàn)中文字符,否則在WEB頁(yè)面操作會(huì)略微麻煩一些,具體詳見(jiàn)配方數(shù)據(jù)的管理。本例為顯示直觀,所以使用了“DB1_蛋糕配方”的名字。
圖3.定義數(shù)據(jù)塊屬性
圖4.創(chuàng)建配方數(shù)據(jù)塊
對(duì)于圖3的優(yōu)化的塊訪問(wèn)選項(xiàng),一般默認(rèn)激活,因?yàn)閺腟7-1200 V4.2起,對(duì)于僅存儲(chǔ)于裝載存儲(chǔ)器的優(yōu)化塊的大小限制為256kB,而僅存儲(chǔ)于裝載存儲(chǔ)器的非優(yōu)化塊僅有64kB,顯然優(yōu)化塊可以存儲(chǔ)更多的配方記錄,如果單個(gè)配方數(shù)據(jù)太多,需要放在多個(gè)DB中,也可以減少DB塊個(gè)數(shù)。
3.在工作存儲(chǔ)器中創(chuàng)建活動(dòng)配方 DB,并通過(guò)“READ_DBL”和“WRIT_DBL”指令實(shí)現(xiàn)對(duì)裝載存儲(chǔ)區(qū)配方數(shù)據(jù)塊的讀寫操作
在工作存儲(chǔ)器中準(zhǔn)備一個(gè)活動(dòng)配方數(shù)據(jù)塊,用于配方數(shù)據(jù)的寫入和讀取。在本例中,在工作存儲(chǔ)器中創(chuàng)建了一個(gè)全局?jǐn)?shù)據(jù)塊,名稱為 "DB2_活動(dòng)配方”,類型為“蛋糕配方”,如圖5所示。
圖5.添加活動(dòng)配方塊
確定后,就可以得到活動(dòng)配方數(shù)據(jù)塊,該塊只由一組配方組成,如圖6所示。
圖6.活動(dòng)配方數(shù)據(jù)塊
注意,因?yàn)橹噶睢癛EAD_DBL”和“WRIT_DBL”的緣故,要求活動(dòng)配方數(shù)據(jù)塊與配方數(shù)據(jù)塊的優(yōu)化屬性必須相同,即都同時(shí)是優(yōu)化數(shù)據(jù)塊,或者同時(shí)是非優(yōu)化數(shù)據(jù)塊。
將這個(gè) DB 塊作為與裝載存儲(chǔ)器中配方數(shù)據(jù)塊的接口,分別通過(guò)指令“WRIT_DBL”能實(shí)時(shí)將存于工作存儲(chǔ)器的活動(dòng)配方數(shù)據(jù)寫入至裝載存儲(chǔ)器的配方數(shù)據(jù)塊,或者通過(guò)指令“READ_DBL”實(shí)時(shí)讀取裝載存儲(chǔ)器的配方數(shù)據(jù)塊到工作存儲(chǔ)區(qū)中活動(dòng)配方數(shù)據(jù)。
4.導(dǎo)出配方數(shù)據(jù)塊
對(duì)于S7-1200 V4.0及其以后版本的CPU,可以使用指令RecipeExport和RecipeImport對(duì)配方數(shù)據(jù)塊進(jìn)行導(dǎo)入和導(dǎo)出,在電腦上使用EXCEL、ASCII編輯器等工具編輯。
對(duì)于S7-1200 V4.0以前的版本,一般建議直接在配方數(shù)據(jù)塊的起始值輸入配方,這一部分用戶可以直接跳過(guò)下面4-6步,直接看第7步。
在本例中,直接在OB1使用LAD語(yǔ)言調(diào)用RecipeExport和后面的RecipeImport塊,實(shí)際使用時(shí)可以在FC/FB,或者FB的多重背景中使用,語(yǔ)言也可以使用FBD、SCL。
首先新建DB塊,用于調(diào)用塊的請(qǐng)求與狀態(tài)位等,名稱為"DB3_操作",建立結(jié)構(gòu)體"Export",以及相關(guān)變量,如圖7所示。
圖7. 建立結(jié)構(gòu)體
在 OB1 調(diào)用RecipeExport,以及捕捉是否完成及錯(cuò)誤代碼等程序,如圖8所示。
圖8.調(diào)用RecipeExport指令
5.配方csv文件的導(dǎo)入和導(dǎo)出
可以使用Web服務(wù)器或者存儲(chǔ)卡的方式對(duì)csv文件進(jìn)行導(dǎo)入和導(dǎo)出,在電腦上的Excel等軟件上進(jìn)行配方數(shù)據(jù)的編輯,具體操作詳見(jiàn)配方數(shù)據(jù)的管理。
6.導(dǎo)入配方數(shù)據(jù)塊
當(dāng)配方文件通過(guò)WEB上載完成,或通過(guò)存儲(chǔ)卡重新導(dǎo)入文件后,就可以導(dǎo)入配方數(shù)據(jù)塊。和第4步類似,在DB塊"DB3操作",中建立結(jié)構(gòu)體"Import",以及相關(guān)變量,結(jié)構(gòu)同"Export",如圖9所示,用于RecipeImport的請(qǐng)求與狀態(tài)位。
圖9. 建立結(jié)構(gòu)體
在 OB1 調(diào)用RecipeImport,以及捕捉是否完成及錯(cuò)誤代碼等程序,如圖10所示。思路同第4步。
圖10.調(diào)用RecipeImport指令
7.讀取配方數(shù)據(jù)
經(jīng)過(guò)使用配方指令或者直接在配方數(shù)據(jù)塊的編輯,此時(shí)配方數(shù)據(jù)已經(jīng)保存在PLC的裝載存儲(chǔ)器中,需要使用READ_DBL指令讀取出來(lái)。可以在DB塊"DB3操作",建立一個(gè)Int類型變量Index用作配方編號(hào)。對(duì)于本例,配方數(shù)組限值為0-7,所以該配方編號(hào)變量取值范圍也是0-7,可以在HMI畫面上設(shè)置該值,也可以在程序中設(shè)置該值。此外同樣在DB塊"DB3_操作",建立結(jié)構(gòu)體"Read",以及相關(guān)變量,用于READ_DBL的請(qǐng)求與狀態(tài)位,如圖11所示。
圖11.建立Index變量及結(jié)構(gòu)體
然后利用數(shù)組的索引尋址功能,將配方數(shù)組指定索引的變量讀取到活動(dòng)配方,即如果需要配方0送到活動(dòng)配方數(shù)據(jù)塊,則Index賦值為0,需要配方1送到活動(dòng)配方數(shù)據(jù)塊,則Index賦值為1,......,具體程序如圖12所示。
圖12.讀配方
然后就可以直接使用活動(dòng)配方了,不論是程序中,還是HMI畫面中。例如本例中,當(dāng)Index=0時(shí),讀出的活動(dòng)配方DB,如圖13所示。
圖13.活動(dòng)配方數(shù)據(jù)
8.在線修改配方
通常配方功能使用到第7步就可以結(jié)束了,如果需要偶爾小范圍修改配方數(shù)據(jù),不想大規(guī)模導(dǎo)入導(dǎo)出,或者不想打開程序修改配方數(shù)據(jù)起始值,可以使用WRIT_DBL指令實(shí)現(xiàn)該功能。
對(duì)于本例依然利用DB塊"DB3_操作"的變量Index,確定需要修改的配方編號(hào),實(shí)際編程可以根據(jù)需要使用和讀配方不一樣的配方編號(hào)變量。
通常在HMI畫面上指定需要修改的配方編號(hào),并且將活動(dòng)配方的變量與HMI的IO域關(guān)聯(lián),使用一個(gè)按鈕觸發(fā)READ_DBL的REQ將該配方編號(hào)對(duì)應(yīng)的參數(shù)都讀取到活動(dòng)配方,即映射到了IO域,然后再修改其中需要修改的變量,最后再使用另外一個(gè)按鈕觸發(fā)WRIT_DBL的REQ實(shí)現(xiàn)將改后的活動(dòng)配方寫入該指定配方編號(hào)對(duì)應(yīng)的配方,參考畫面如圖14。
圖14.HMI畫面
同樣在DB塊"DB3_操作",建立結(jié)構(gòu)體"Write",以及相關(guān)變量,結(jié)構(gòu)同"Read",用于WRIT_DBL的請(qǐng)求與狀態(tài)位,如圖15所示。
圖15.建立結(jié)構(gòu)體
最后同樣,利用數(shù)組的索引尋址功能,將活動(dòng)配方寫入到配方數(shù)組指定索引的變量,即如果需要修改配方0,則將Index賦值為0,修改活動(dòng)配方數(shù)據(jù)塊后寫入,需要修改配方1,則將Index賦值為1,修改活動(dòng)配方數(shù)據(jù)塊后寫入,......,具體程序如圖16所示。
圖16.寫配方
本例如圖17所示,讀出Index為0的配方,然后修改黃油數(shù)據(jù)為2.0,點(diǎn)擊“寫入配方”按鈕即可修改配方DB的值。
圖17.HMI修改數(shù)據(jù)
配方數(shù)據(jù)的管理
配方數(shù)據(jù)文件以 CSV 格式存儲(chǔ)在永久性存儲(chǔ)器中。可以使用以下兩種方法查看、管理配方數(shù)據(jù):
1. 通過(guò)內(nèi)置的 PLC Web 服務(wù)器功能;
2. 通過(guò)電腦查看 PLC 存儲(chǔ)卡中的配方文件;
S7-1200 SIMATIC 最新存儲(chǔ)卡訂貨號(hào)如下:
訂貨號(hào) | 容量 |
---|---|
6ES7954-8LC03-0AA0 | 4MB |
6ES7954-8LE03-0AA0 | 12MB |
6ES7954-8LF03-0AA0 | 24MB |
6ES7954-8LL03-0AA0 | 256MB |
6ES7954-8LP03-0AA0 | 2GB |
6ES7954-8LT03-0AA0 | 32GB |
使用 PLC Web 服務(wù)器查看配方數(shù)據(jù)
激活CPU的Web服務(wù)器功能,則可以使用電腦網(wǎng)口連接CPU的PROFINET接口或者擴(kuò)展CP1243-1的網(wǎng)口,然后使用電腦的IE瀏覽器訪問(wèn) PLC 內(nèi)置的 Web 服務(wù)器。
1.啟用 Web 服務(wù)器
在目標(biāo) CPU 的設(shè)備配置中啟用 Web 服務(wù)器,具體參考Web服務(wù)器配置。
使用配方功能,需要具有“讀取文件”和“寫入/刪除文件”功能。若要求更多訪問(wèn)功能,可以勾選相應(yīng)權(quán)限。本例中只用默認(rèn)用戶,實(shí)際可以根據(jù)需要設(shè)置用戶及權(quán)限,如圖 1 所示:
圖1.定義 Web 服務(wù)器的用戶權(quán)限
2. 通過(guò) PROFINET 網(wǎng)絡(luò)將 PC 連接到 PLC
通常情況下,電腦網(wǎng)口網(wǎng)線或通過(guò)交換機(jī)連接CPU的PROFINET接口或者擴(kuò)展CP1243-1的網(wǎng)口。
3. 登錄內(nèi)置 Web 服務(wù)器
在 IE 瀏覽器地址欄中,本例中輸入 192.168.1.3 或者輸入 CP1243-1的 192.168.1.28。通過(guò) Web 服務(wù)器的文件瀏覽器頁(yè)面來(lái)讀取配方數(shù)據(jù)文件, 瀏覽器操作界面如圖 2 所示:
圖2.Web 服務(wù)器的用戶界面首頁(yè)
在左側(cè)項(xiàng)目欄中,選擇"文件瀏覽器",如圖 3 所示:
圖3.Web 服務(wù)器的文件瀏覽器頁(yè)面
進(jìn)入"Recipes"文件夾后,即看到與 PLC 設(shè)置的配方數(shù)據(jù)塊名稱相同的配方數(shù)據(jù)文件,如圖 4 所示:
圖4.配方數(shù)據(jù)文件名稱
此時(shí)左鍵單擊csv文件即可以下載,下載后記得點(diǎn)擊刪除按鈕,將該配方文件刪除。
注意:如果配方DB名稱含有中文字符,例如本例的"DB1_蛋糕配方",如果TIA PORTAL版本在V14以前,則無(wú)法下載,可以通過(guò)右邊重命名為只有字母和數(shù)字的名稱后下載,修改后上傳文件前,需要將文件名改為原來(lái)正確的名字。
TIA PORTAL版本V14及其以后,中文名稱的文件可以下載,但是下載的文件名將為亂碼,本例中如圖5所示。保存至本地前將文件名改為正確的名字。
正因如此,建議配方DB名稱最好不出現(xiàn)中文。
圖5.下載亂碼文件名
4.編輯配方文件
配方條目名稱的編碼,String,WString數(shù)據(jù)類型的編碼各有不同,如果需要導(dǎo)出變量到CSV文件編輯會(huì)帶來(lái)以下問(wèn)題,注意:
1. 不要在配方中使用WChar與WString數(shù)據(jù)類型。
2. 如果配方條目名稱中出現(xiàn)中文,或果配方條目的String類型出現(xiàn)中文,都不要使用Excel進(jìn)行編輯,例如本例。
3. 配方條目名稱中出現(xiàn)中文,與配方條目的String類型出現(xiàn)中文,不要同時(shí)出現(xiàn)。
所以最好在配方中不出現(xiàn)任何中文,這樣導(dǎo)入導(dǎo)出不會(huì)出現(xiàn)任何問(wèn)題,還可以使用Excel進(jìn)行編輯。否則就需要使用ASCII編輯器,例如Windows自帶的文本文檔,或者本例中使用的Notepad++。
編輯好的CSV如圖6所示。
圖6.CSV文件
在修改時(shí)需要注意:
1. 配方DB包含的條目數(shù)不能再增加,數(shù)組的限值限制了配方的條目數(shù)。
2. 只能修改配方內(nèi)容,不要修改第一行的配方條目名稱以及第一列的索引。
3. 使用ASCII編輯器容易數(shù)據(jù)錯(cuò)位,所以最好配方全部?jī)?nèi)容使用英文字母+數(shù)字,然后使用EXCEL等工具編輯。
5.上載配方文件
編輯好配方文件,即可以上載該文件,如圖7所示。
圖7.上載修改的CSV文件
查看 PLC 存儲(chǔ)卡中的配方
如果 S7-1200 CPU 中插入了存儲(chǔ)卡,則可以取出該存儲(chǔ)卡,然后將該卡插入 PG/PC 上的標(biāo)準(zhǔn) SD 卡槽或 MMC 卡槽中。在 Windows 資源管理器中導(dǎo)航至存儲(chǔ)卡中的 Recipes 目錄,復(fù)制配方文件到PC的本地驅(qū)動(dòng)器中,使用ASCII編輯器或者Excel 打開即可。操作步驟如下:
1. 將插好 S7-1200 存儲(chǔ)卡的讀卡器插入 PC,以U盤形式打開該卡,全選刪除所有文件。
2. 在 TIA PORTAL 軟件中按照以下路徑和方法打開存儲(chǔ)卡:“項(xiàng)目樹”→“讀卡器/USB 存儲(chǔ)器”→“鼠標(biāo)選中需要打開的存儲(chǔ)卡盤符”(如下圖所示的 I:)→“鼠標(biāo)右鍵”→屬性”,如圖 8所示:
圖8.打開讀卡器
3. 鼠標(biāo)選中“屬性”后打開存儲(chǔ)卡,設(shè)置卡類型:程序。如圖9 所示:
圖9.設(shè)置“程序卡”
4. 將該卡插入S7-1200卡槽,下載程序后,程序即保存到程序卡中。
5. 配方數(shù)據(jù)塊使用指令導(dǎo)出后,會(huì)在存儲(chǔ)卡中生成對(duì)應(yīng)的配方文件,例如本例中的“DB1_蛋糕配方.csv”。
6. CPU斷電,將存儲(chǔ)卡取出,將插好 S7-1200 存儲(chǔ)卡的讀卡器插入 PC,以U盤形式打開該卡,打開 Recipes 目錄,找到配方文件。本例中和圖6問(wèn)題相同,中文名稱出現(xiàn)亂碼,如圖 10 所示。但是這里注意,不要修改該名稱。
圖10.程序卡文件夾
7. 此時(shí)即可以對(duì)該配方文件進(jìn)行編輯,編輯文件注意事項(xiàng)參見(jiàn)通過(guò)Web導(dǎo)出的步驟4,編輯后重新拷貝回Recipes文件夾,執(zhí)行配方導(dǎo)入指令。
審核編輯:郭婷
-
plc
+關(guān)注
關(guān)注
5016文章
13389瀏覽量
465514 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7529瀏覽量
164369 -
cpu
+關(guān)注
關(guān)注
68文章
10908瀏覽量
213071
原文標(biāo)題:S7-1200 PLC配方功能使用方法
文章出處:【微信號(hào):直觀學(xué)PLC,微信公眾號(hào):直觀學(xué)PLC】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論