一篇文章帶你學(xué)會PLC配方功能的編程方法
在生產(chǎn)中我們的一臺設(shè)備往往需要 對應(yīng)很多種不同工藝或不同尺寸的設(shè)備,這就要求我們設(shè)備的參數(shù)需要經(jīng)常變化。我們將每一種產(chǎn)品對應(yīng)的參數(shù)保存起來,下一次再生產(chǎn)同種產(chǎn)品時可以迅速一鍵調(diào)用,而不是一個一個的去設(shè)置,這種功能就叫做配方(Recipe)
首先來一張圖,簡單說明一下配方的基本原理

在這張圖里,我們創(chuàng)造了一個簡單的配方結(jié)構(gòu)。地址區(qū)分成3塊,前臺正在使用的、緩沖區(qū)和后臺數(shù)據(jù)庫。
下面分配一下具體的地址,我將使用三菱PLC示范

先來講保存功能,就是將當(dāng)前配方參數(shù)存儲到數(shù)據(jù)庫里
首先要確定存儲在哪個配方中,如果是配方1,那我們直接使用BMOV D0 D20 K5就可以,如果是存到配方2呢?如果存到配方999呢?很顯然,我們不能簡單地使用絕對地址去操作,必須引入變址操作,如下圖

這里我們引入了另一個變量D6"配方存儲位置",根據(jù)D6中的值去判斷保存到數(shù)據(jù)庫的首地址。
在上面的BMOV D0 D20Z0 K5中,D0是當(dāng)前配方的起始地址,不受保存配方號的影響,D20由于受到保存配方號的影響,因此是會變化的,例如保存配方號為2的時候,D20就要變成D25。最后的K5代表每個配方的參數(shù)量,也是不會變化的。
保存操作就是這樣了,非常的簡單。相信看到這里一些機(jī)智的小伙伴已經(jīng)明白了配方功能的精髓了,就是對數(shù)據(jù)庫中首地址的變址尋址
載入的操作呢其實(shí)也是同理,只不過把BMOV的兩個參數(shù)倒過來了。不過UP主在實(shí)際的使用中發(fā)現(xiàn)過一些問題,比如設(shè)備正在用當(dāng)前的參數(shù)進(jìn)行生產(chǎn),這時候想去查看一下別的配方的參數(shù),這時候如果停機(jī)切換配方就會影響到生產(chǎn)。因此我們引入了一個緩沖區(qū),就想最上面那張圖一樣,我們將載入操作分為兩步。第一步將數(shù)據(jù)庫的配方讀出到緩沖區(qū),這個緩沖區(qū)可以在觸摸屏上進(jìn)行展示;第二步將緩沖區(qū)的數(shù)據(jù)再寫入到當(dāng)前配方。
如果的確是想切換配方,那就第一步和第二步都執(zhí)行。如果只想看看配方的數(shù)據(jù),那么至執(zhí)行第一步,也不會對當(dāng)前的生產(chǎn)產(chǎn)生任何影響。

如上圖所示,也是很簡單。
當(dāng)然了,Up這里只是列舉了一個很簡單的例子,在實(shí)際的編程中還是需要增加一些其他的卡控,例如配方號值的限制,或者操作的互鎖等。大家可以根據(jù)自己設(shè)備的情況自行把程序?qū)懸幌?,然后模擬測試,寫出一套屬于自己的模板