淺談西門子MES與DCS數(shù)據(jù)交互在生產(chǎn)中的應(yīng)用
引言
2015年,《中國制造2025》規(guī)劃出臺,劍指"工業(yè)4.0",其中涉及醫(yī)藥行業(yè)的內(nèi)容成為指導(dǎo)我國醫(yī)藥行業(yè)智能化轉(zhuǎn)型升級的行動目標和綱領(lǐng)。醫(yī)藥工業(yè)在智能化技術(shù)趨勢的影響下,正在進入全面轉(zhuǎn)型升級的階段。制藥工業(yè)的新紀元—無紙化生產(chǎn)即將成為新的標準。借助于西門子成熟的電子批記錄解決方案(SIMATIC1TeBR),可實現(xiàn)完全無紙化生產(chǎn)。本文針對SIMATIC1TeBR中的生產(chǎn)執(zhí)行系統(tǒng)(MES)、SIMATICPCS7過程控制系統(tǒng)(DCS),展開了對這兩套系統(tǒng)的數(shù)據(jù)交互以及協(xié)同問題解決方法的研究。
1DCS與MES數(shù)據(jù)交互方式
1.1MES與DCS通過oPC進行數(shù)據(jù)交互
此交互方式適用于MES系統(tǒng)需要讀取第三方設(shè)備數(shù)據(jù)的場景,同時也適用于一些狀態(tài)的顯示,如設(shè)備的C1P清洗、SIP滅菌的時效。如圖1所示,當MES系統(tǒng)需要讀取DCS系統(tǒng)某個數(shù)據(jù)時,可通過oPC訪問DCS或winCC的數(shù)據(jù)庫直接獲取DCS系統(tǒng)的數(shù)據(jù):當MES系統(tǒng)需要下發(fā)某個數(shù)據(jù)給DCS系統(tǒng)時,也可通過oPC將數(shù)據(jù)寫入DCS系統(tǒng)。當MES需要多次讀取DCS數(shù)據(jù),或需要判斷讀取數(shù)據(jù)的正確性時,經(jīng)常采用oPC讀取這種方式。比如在溫度調(diào)整過程中,MES系統(tǒng)需要多次獲取罐子溫度,直到罐溫滿足要求以后才記錄,這時就可以選擇oPC讀取這種方式。值得注意的是,在通過oPC進行數(shù)據(jù)交互時,需要明確DCS中oPC服務(wù)器的1P地址以及數(shù)據(jù)的變量名。當oPC通信變量獲取出現(xiàn)異常時,需要查看EBRoPC服務(wù)是否開啟,若服務(wù)正常開啟,則查看DCS中的oPC服務(wù)器是否異常,檢查設(shè)備是否打到仿真狀態(tài),如打到仿真狀態(tài),而oPC無法讀取到仿真值,則查看oPC配置點位是否正確(新增點位出現(xiàn)異常的可能性最大)。
MES直讀DCS或winCC變量功能是通過腳本"YAREADMAyMIN"讀取一段時間內(nèi)單個DCS或winCC點位的最大/最小值及相應(yīng)時間點,并且需要在DCS服務(wù)器上運行"YAwinCC.EyE"插件。
"YAREADMAyMIN"腳本輸入/輸出參數(shù)說明:inSTag:輸入winCC點位:
intStart:輸入讀取時間段的開始時間點:
intEnd:輸入讀取時間段的結(jié)束時間點:
oudMax:輸出讀取時間段內(nèi)的最大值:
oudMin:輸出讀取時間段內(nèi)的最小值:
ou1ReSu1t:輸出運行返回值[建議在P1中放出來,方便異常情況查看,正確的返回值為"0",當返回值為"1"時,讀出數(shù)值為空值,檢查配置的點位是否有錯誤(非格式錯誤):當返回值為"2"時,檢查DCS服務(wù)器是否有異常,服務(wù)器上"YAwinCC.EyE"插件是否啟用:當返回值為"3"時,檢查配置點位格式是否有錯誤]:
outMaxTime:輸出最大值對應(yīng)的時間點:outMinTime:輸出最小值對應(yīng)的時間點。
1.2DCS與MES數(shù)據(jù)交互方式—Batch
SIMATICBatch是一個模塊化和可升級的批處理平臺。Batch在執(zhí)行特定動作時(如批處理訂單啟動),MES與Batch可直接進行數(shù)據(jù)交互。MES中的事件pI與Batch中相關(guān)的EpH或0CS綁定,當該0CS觸發(fā)特定事件,如Start、RefreSh、Comp1eted或者Aborted時,MES就可通過事件pI與Batch進行數(shù)據(jù)交互,如圖2所示。
2DCS和MES協(xié)同問題的解決
兩個系統(tǒng)在配合運行時,出現(xiàn)協(xié)同問題在所難免。DCS和MES的協(xié)同問題主要體現(xiàn)在:
(1)參數(shù)匹配,其中包括Batch的設(shè)定值中是否包含了MES需要下發(fā)的設(shè)定值、MES與Batch的參數(shù)是否在配方啟動時直接傳送、MES與Batch的參數(shù)是否來自于計算值、MES與Batch的參數(shù)是否來自于不同步驟的計算值:
(2)流程匹配,包括時序的匹配(具體Rop的激活時序)、MES中的人工確認(采樣、手動加料、放行等)、MES與Batch的配合(pH調(diào)節(jié)的次數(shù):與第三方設(shè)備的交互,雖然和Batch沒有控制上的關(guān)系,但MES需要數(shù)據(jù),還是需要在Batch上進行考慮):
(3)MaSterRecipe的影響,例如同一個Unit的不同操作是否是在同一個配方中(如緩沖液的配制和出料功能)。
針對這一系列的協(xié)同問題,借助于本公司部分生產(chǎn)工藝流程的設(shè)計思路(部分流程進行了模糊化處理或替代),于下文中給出了一定的解決方案。
2.1參數(shù)匹配問題
2.1.1Batch的設(shè)定值中是否包含了MES需要下發(fā)的設(shè)定值
針對這類問題的解決,需要MES提供與Batch的接口數(shù)據(jù)表,進行Batch配方編輯的人員在拿到這個數(shù)據(jù)表之后,需要考慮EM的設(shè)定值的創(chuàng)建,具體可以參考MES與Batch的接口數(shù)據(jù)表和協(xié)同工作的流程。
2.1.2MES與Batch的參數(shù)是否在配方啟動時直接傳送
設(shè)定值參數(shù)在Batch訂單中運行時如為固定值,一般該參數(shù)需要上傳到表頭,由MES在啟動Batch訂單時更新表頭參數(shù)。例如在某一生產(chǎn)流程中的溫度控制階段,反應(yīng)罐的溫度設(shè)定值是一個固定參數(shù),需要上傳到表頭,具體如圖3所示。
2.1.3MES與Batch的參數(shù)是否來自于計算值
當某個0CS觸發(fā)了特定的pI事件,然后計算的值寫入相同的0CS時,這種寫值方式不受Batch流程架構(gòu)影響。如圖4所示,如果想要將MES在進生理鹽水階段計算出的生理鹽水加料量寫入到本階段的進生理鹽水設(shè)定值中,這時在DCS的順控中就需要考慮MES的計算是否已經(jīng)完成,或者是否可以應(yīng)用當前的數(shù)據(jù)來運行進料程序。
如下幾個步驟需要在SFC中考慮:
步驟1,在EpH中創(chuàng)建一個交互設(shè)定值參數(shù)MESUnb1oc一(數(shù)據(jù)類型為Boo1型),其主要的目的是讓MES通過這個參數(shù)告訴DCS相關(guān)運算已經(jīng)完成:
步驟2,在SFC的Startink中,需要復(fù)位這個交互設(shè)定值參數(shù),確保程序運行前MESSUnb1ck值為假:
步驟3,在SFC的RuU中,"等待MES操作"這一步置位REFRESH信號(置位此信號的主要目的是在SFC運行的過程中還能實時接收來自于MES的設(shè)定值即MESSUnb1ck的信號),同時在"MES操作完成"中設(shè)置檢查MESSUnb1ck信號是否被MES置位這一條件,若MESSUnb1ck信號為真,則表示MES計算已經(jīng)完成,可以開始執(zhí)行該程序:
步驟4,在SFC的0CS的C1mpbetiUg、An1rtiUg與STIppiUg中復(fù)位MESSUnb1ck和REFRESH信號:
步驟5,在配方中該設(shè)定值參數(shù)不能有源,且必須可更改并立即生效,如加生理鹽水階段的加料量設(shè)定值需要MES計算后寫入。
Batch中正確組態(tài)如圖5所示。
2.1.4MES與Batch的參數(shù)是否來自于不同步驟的計算值
MES的數(shù)據(jù)通過EM或者0CS寫入。當某個0CS觸發(fā)了一個PI事件,然后計算的值寫入相同的0CS,接著在Batch底層通過將MES寫入的參數(shù)作為目標參數(shù)上傳,再在另一步驟中將上傳的參數(shù)作為源引用。這種方式寫值不需要有確定的Batch架構(gòu)。如圖6所示,如果需要將MES在緩沖液進料階段計算出來的緩沖液的加料量寫入緩沖液加料階段的設(shè)定值中,只需在緩沖液進料階段的屬性參數(shù)配置中找到緩沖液加料量(PHwISP),為其設(shè)置上傳目標參數(shù)(PHADDSP),并在緩沖液加料階段的屬性參數(shù)配置中找到緩沖液加料設(shè)定值(wISP),將目標參數(shù)(PHADDSP)作為源引用。
2.2流程匹配問題
2.2.1時序的匹配(具體RoP的激活時序)
在很多MES管理的項目中,罐子的CIP清洗是單獨的訂單,與主流程平行進行,所以主流程在占用該罐子之前,需要事先確認罐子是否干凈可用。以圖7所示工藝流程為例:PI301在完成制作工序1之后,可以進行PI303的制作工序2。在沒有MES協(xié)調(diào)的情況下,按照圖中方式進行組態(tài),在PI301完成工序1后,PI303便被主流程訂單占用。如果此時PI303為不清潔狀態(tài),調(diào)用PI303的CIP清洗訂單則無法啟動。要解決此類問題,只需在PI301完成制作工序1后,增加一條下游設(shè)備PI303確認功能,通知MES進行設(shè)備檢查確認,同時將PI303的組態(tài)動態(tài)單元設(shè)置為條件啟動,條件為MES已經(jīng)確認設(shè)備(MES將設(shè)備確認參數(shù)DevCheck通過oPC傳遞到DCS,DCS再將其組態(tài)為單元參數(shù)),如圖8、圖9所示。
若設(shè)備已經(jīng)為清潔狀態(tài),MES確認設(shè)備并且下發(fā)參數(shù)通知DCS,DCS主流程啟動PI303:若設(shè)備為不清潔狀態(tài),則MES啟動對應(yīng)的清洗訂單,待設(shè)備清洗完成后,MES確認該設(shè)備并通知DCS,DCS主流程啟動PI303。
2.2.2MES中的人工確認(采樣、手動加料、放行等)
在一些緩沖液的配制過程中,需要進行手動加料。此時,Batch流程通過特定的EM或0CS觸發(fā)MES進行手動加料,完成后通知Batch繼續(xù)生產(chǎn)小結(jié)流程。如圖10所示,PI200在進行完工序2后需要手動進行加料,若沒有MES的干預(yù),在手動加料過程中訂單將繼續(xù)往下執(zhí)行生產(chǎn)小結(jié),為避免這種情況,在工序2完成后增加手動投料這一過程,并通過MES確認已經(jīng)添加完成,訂單繼續(xù)向下執(zhí)行。
2.2.3MES與Batch的配合(如多次調(diào)整進料)
很多情況需要MES和Batch配合,MES下發(fā)加料量給Batch,Batch自動加料完成后通知MES檢測再調(diào)整。如乙醇配制階段,在預(yù)加一定量的水和乙醇后,需要檢測乙醇濃度進行再次調(diào)節(jié),直到合格后進行后續(xù)步驟。此時需要MES和Batch配合完成,如圖11所示。
2.3同一個Unit的不同操作不在一個訂單中,需要MES進行協(xié)調(diào)解決
如緩沖液的配制和出料操作不在一個訂單中,如果沒有MES協(xié)調(diào),在Buffer配制之后和出料之前有一定的空檔期,可能存在安全隱患等,如圖12所示。此時只需在配制訂單結(jié)束前增加一步用于等待MES確認,在MES準備啟動出料訂單前,才停止配制訂單,保證流程的延續(xù)性和安全性,如圖13所示。
圖12配制與出料訂單之間無聯(lián)系
圖13MES啟動出料訂單前先停止配制訂單
3結(jié)語
本文就MES與DCS數(shù)據(jù)交互方式展開了研究,為實際生產(chǎn)中出現(xiàn)的數(shù)據(jù)交互問題的及時解決提供了有力保障,提高了自動化運營的生產(chǎn)效率。
另外,本文基于本公司實際生產(chǎn)部分流程對MES與DCS的一些協(xié)調(diào)問題給出了一定的解決方案,可供相關(guān)從業(yè)人員參考學(xué)習(xí)、共同進步。