丁為
(中國石化上海石油化工研究院,上海201208)
HollYSYS的 MACS(meet all customer's satisfaction)系統(tǒng)采用“平臺+應(yīng)用開發(fā)”的軟件架構(gòu),平臺軟件負(fù)責(zé)采集和處理數(shù)據(jù)并提供各種接口和服務(wù),再根據(jù)不同行業(yè)的特殊需求定制開發(fā)應(yīng)用界面、算法庫、符號庫等組件,各版本共用一個核心平臺,具有可靠性高、擴(kuò)展性強(qiáng)、易維護(hù)、數(shù)據(jù)實時性好等特點。該系統(tǒng)目前在上海石油化工研究院的多套大型實驗裝置中得到了成功應(yīng)用。本文以實驗裝置中典型的4個控制程序為例,介紹MACS的具體應(yīng)用。
在高壓加氫實驗裝置中,需要用壓縮機(jī)將原料氫氣和循環(huán)氫氣的壓力保持在設(shè)定的范圍內(nèi)[1]:當(dāng)緩沖罐壓力低于下限值時,壓縮機(jī)啟動;壓力達(dá)到上限值時停止,此后緩沖罐的壓力由于系統(tǒng)內(nèi)原料氣的不斷消耗而逐漸降低;當(dāng)壓力低于下限值時,壓縮機(jī)再次啟動,如此循環(huán),但高壓罐的壓力始終保持在上下限值之間。程序控制流程如圖1所示。
圖1 壓縮機(jī)控制程序流程示意
對于此類控制程序設(shè)計,在 MACS V6.5.0中,通常的思路是使用連續(xù)功能圖語言CFC(continuous function chart)來編寫[2]。CFC 是一種圖形化的編程語言,沒有網(wǎng)絡(luò)限制,擺放元素較為靈活[3],它是 MACS中最常用的設(shè)計語言。但在該方案中,由于該語言本身的特性,需要在程序中定義一個布爾型變量作為判斷壓力上下行過程的標(biāo)志,即當(dāng)壓力介于上下限值之間時,如果是增壓過程,則壓縮機(jī)保持啟動狀態(tài);如果是降壓過程,則壓縮機(jī)保持停止?fàn)顟B(tài)。該標(biāo)志的判斷過程會使得用該語言設(shè)計的程序結(jié)構(gòu)相對復(fù)雜,給調(diào)試帶來不便。實際上,在MACS中,除了連續(xù)功能圖語言外,還有梯形圖語言LD(ladder diagram)和結(jié)構(gòu)化文本語言ST(structured text)可以使用[3]。以LD語言為例,它類似于電氣回路,可以構(gòu)建邏輯開關(guān),也可以構(gòu)造網(wǎng)絡(luò),主要由觸點、線圈、功能塊和連接線等編程元件組成[4],通過水平線和垂直線連接成平面網(wǎng)狀圖。
針對該方案的控制要求,可以將CFC語言和LD語言結(jié)合使用,便可有效簡化程序:用CFC語言來實現(xiàn)壓力上下限值的判斷,用LD語言來實現(xiàn)壓縮機(jī)的啟??刂啤刹糠殖绦蚍謩e如圖2和圖3所示。
圖2 壓縮機(jī)控制程序1(CFC語言部分)
圖3 壓縮機(jī)控制程序2(LD語言部分)
圖2中,LT,GT,TP分別為大于邏輯模塊、小于邏輯模塊、定時器模塊。K1,K2為程序自定義的兩個開關(guān)量內(nèi)部點,分別用于接收壓力p0高于上限值(10)和低于下限值(7)時TP模塊輸出的脈沖信號,脈沖信號的寬度設(shè)置為2s。圖3中,OP_2為全局變量中所定義的開關(guān)量輸出點,用于控制壓縮機(jī)的啟停。兩部分程序的控制過程如下:當(dāng)圖2中p0.av<7時,K1.DI產(chǎn)生一個2s脈沖即常開點K1.DV接通2s,此時圖3中OP_2.DI輸出為1并自鎖,壓縮機(jī)啟動;當(dāng)圖2中p0.av>10時,K2.DI產(chǎn)生一個2s脈沖,此時圖3中常閉點K2.DV斷開2s,OP_2.DI輸出為0,壓縮機(jī)停止;當(dāng)圖2中7<p0.av<10時,K1.DI和K2.DI均不動作,即壓縮機(jī)保持原有狀態(tài)不變,這樣就實現(xiàn)了對緩沖罐壓力的區(qū)間控制。由于省去了對壓力上下行情況的判斷,程序簡潔易懂。
實際上,該程序也適用于除壓力外其他對象的控制,比如實驗裝置氣液分離中常用的自動放液系統(tǒng),其對于液位的控制也有類似的要求,只要把控制對象由壓縮機(jī)換成氣動球閥即可。
實驗裝置發(fā)生聯(lián)鎖時,相關(guān)設(shè)備會停止運行;聯(lián)鎖解除后,必須按下復(fù)位按鈕進(jìn)行確認(rèn)才能重新啟動設(shè)備。這樣設(shè)計是為了保證實驗裝置的安全運行[5-6],否則,一旦聯(lián)鎖條件解除,設(shè)備將自動運行,極易造成危險。因此,聯(lián)鎖復(fù)位程序的設(shè)計頗為關(guān)鍵,對于該程序,可以利用 MACS軟件中的RS雙穩(wěn)態(tài)觸發(fā)器來實現(xiàn)。RS觸發(fā)器的真值表見表1所列。
表1 RS雙穩(wěn)態(tài)觸發(fā)器真值
設(shè)計的聯(lián)鎖復(fù)位程序如圖4所示。
圖4中,K3,RESET均為自定義的開關(guān)量內(nèi)部點,RESET =1時,TP模塊產(chǎn)生一個寬度為2s的脈沖信號;當(dāng)K3=1,聯(lián)鎖條件滿足;K3=0,聯(lián)鎖條件不滿足。當(dāng)RESET=1,軟件界面上的復(fù)位按鈕按下;RESET=0,軟件界面上的復(fù)位按鈕彈起。根據(jù)表1,當(dāng)聯(lián)鎖條件滿足且復(fù)位按鈕未按下,即K3=1,RESET=0時,Q1=1,壓縮機(jī)停止;當(dāng)聯(lián)鎖條件解除且復(fù)位按鈕未按下,即K3=0,RESET=0時,壓縮機(jī)保持前一個狀態(tài),即停止?fàn)顟B(tài);只有當(dāng)聯(lián)鎖條件解除且復(fù)位按鈕按下后,即K3=0,RESET=1時,Q1=0,壓縮機(jī)啟動,此時松開復(fù)位按鈕,即RESET =0,Q1=0時,壓縮機(jī)仍將保持前一個狀態(tài),即運行狀態(tài),直到聯(lián)鎖條件再次滿足,即K3=1時停止。
圖4 聯(lián)鎖復(fù)位程序1
實際設(shè)計中,電氣控制柜面板上還要再安裝一個復(fù)位按鈕,以便在現(xiàn)場也能實現(xiàn)復(fù)位,因而需要再定義一個開關(guān)量輸入點,對應(yīng)現(xiàn)場復(fù)位按鈕的輸入。圖4的聯(lián)鎖復(fù)位程序可修改為如圖5所示,其中RESET0即為現(xiàn)場復(fù)位按鈕所對應(yīng)的開關(guān)量輸入點,和軟件界面上的按鈕RESET互為“或”的關(guān)系。兩個按鈕中任意一個按下,均可實現(xiàn)對聯(lián)鎖設(shè)備的復(fù)位。
圖5 聯(lián)鎖復(fù)位程序2
在實驗裝置的順控程序和多段升溫程序設(shè)計中,需要對程序運行時間進(jìn)行累計[7-8],可以通過自定義模塊的設(shè)計來實現(xiàn)。MACS系統(tǒng)為用戶提供了自定義模塊制作的功能,制作完的自定義模塊可以直接在程序中調(diào)用。在“添加POU”對話框中,將模塊名稱命名為“JISHI”,“類型”選“功能塊FB”,“語言”選“連續(xù)功能圖CFC”。
功能塊內(nèi)部的程序設(shè)計如圖6所示。
其中,START是自定義全局變量類型的內(nèi)部開關(guān)量點,TOTAL是自定義WORD類型的全局變量,ADD和SEL分別是加法模塊和選擇模塊。圖6程序?qū)崿F(xiàn)的功能是:程序每掃描一次,ADD模塊的數(shù)值加1。當(dāng)START =1,ADD模塊的ENO=1,SEL模塊輸出給TOTAL變量的是第2個輸入值,即程序的掃描次數(shù)。當(dāng)START=0,ADD模塊的ENO=0,SEL模塊輸出給TOTAL變量的是第1個輸入值,即TOTAL=0。
完成功能塊的內(nèi)部程序設(shè)計后,便可在“程序PRG”中對其進(jìn)行調(diào)用,計時模塊調(diào)用如圖7所示。
圖6 功能塊內(nèi)部程序設(shè)計
圖7 計時模塊的調(diào)用
圖7中,ST為自定義的內(nèi)部開關(guān)量點,用于累計的啟停。根據(jù)圖7所設(shè)計的程序,當(dāng)ST=1時,模塊進(jìn)行程序掃描次數(shù)的累計,COUNT即為所累計的程序掃描次數(shù),將COUNT和程序運行周期相乘,便得到程序總運行時間;當(dāng)ST =0時,累計值清0,即COUNT=0。
泵在化工實驗裝置中必不可少,泵的啟停、聯(lián)鎖往往有一系列的要求[9-10],如果用邏輯模塊進(jìn)行組合設(shè)計,程序繁鎖復(fù)雜,容易出錯且不利于調(diào)試。對于此類程序,可以用MACS系統(tǒng)提供的順控模塊來設(shè)計,使程序簡潔高效。泵的順控程序如圖8所示,其中HSSCS5為順控模塊。
圖8 泵的順控程序
MACS系統(tǒng)提供的編程手冊對順控模塊中各管腳的功能做了簡單說明,結(jié)合實驗裝置的具體應(yīng)用,設(shè)計時需要注意以下幾個方面:
1)L0管腳接收來自泵本身的故障信號,若泵出現(xiàn)故障,模塊將輸出信號使泵停止。
2)L2和L3管腳信號比L4和L5管腳信號的保護(hù)級別更高,主要針對廠區(qū)可能存在的一些不安全因素。
3)L4和L5管腳接收泵自動開/關(guān)所要滿足的一系列條件的邏輯組合信號。以L5為例,它通常用在設(shè)備需要正常關(guān)機(jī)的條件下。對于一些大型設(shè)備而言,在停機(jī)前必須要滿足一定的條件;如果突然關(guān)機(jī),可能會引起設(shè)備故障乃至事故發(fā)生,因而需L5=1時才能停機(jī)。同理L4信號指的是所有的開機(jī)條件達(dá)到后才能啟動設(shè)備,即L4=1時才能開機(jī)。
4)L6和L7管腳一般用在聯(lián)鎖保護(hù)方面,L6在設(shè)備已停機(jī)的情況下起作用,比如系統(tǒng)檢測到壓力過低,需要泵啟動增壓即令L6=1,則DV=1;同理L7在設(shè)備運行的情況下起作用,比如系統(tǒng)檢測到壓力過高,需要停泵即令L7=1時,則RV=1。
5)L8管腳接收模塊初始化脈沖信號,即當(dāng)L8=1時,順控模塊開始運行,會自動檢測各個輸入管腳的條件是否滿足。
6)SD管腳接收遠(yuǎn)程和就地的選擇信號。SD=0表示遠(yuǎn)程,即由DCS控制;SD=1表示就地,由現(xiàn)場機(jī)泵柜來控制。
7)V1和V2管腳用于接收設(shè)備運行和停止的信號。只要將輸入到V1管腳的信號取反接入V2管腳即可。泵啟動后,經(jīng)過短暫延時,若V1,V2的狀態(tài)反饋到位,模塊就認(rèn)為泵運行正常,否則模塊將認(rèn)為泵出現(xiàn)故障而輸出停止信號。
需要注意的是,圖8中L6和L7的輸入信號采用了延時2s再接通的設(shè)計方法,這里主要考慮到泵在實際運行中,可能會因為打雷或強(qiáng)電壓等因素的干擾使得作為聯(lián)鎖條件的油壓出現(xiàn)突然的波動,而該波動通常持續(xù)1~2s后又會恢復(fù)正常。該情況下沒有必要啟動對泵的聯(lián)鎖,因而加上2~3s延時對這些干擾進(jìn)行屏蔽。程序中,變量JIESUO表示軟件解鎖按鈕,用于摘除或啟用泵的聯(lián)鎖。
在化工實驗裝置中,上述4個DCS控制程序具有較強(qiáng)的典型性,MACS系統(tǒng)為設(shè)計人員提供了功能強(qiáng)大的平臺實現(xiàn)程序的設(shè)計。這些程序經(jīng)過上海石油化工研究院實驗裝置的驗證,運行穩(wěn)定可靠,完全達(dá)到控制要求,且易于調(diào)試和維護(hù)。在其他型號DCS的設(shè)計中,也可以參考這4個程序的設(shè)計思路和方法,達(dá)到舉一反三,觸類旁通的效果。
[1]賴紅軍,魏高升.加氫裂化裝置DCS復(fù)雜控制功能的實現(xiàn)[J].石油化工自動化,2005,41(02):45-47.
[2]丁為.酯氣相連續(xù)加氫模試裝置控制系統(tǒng)的設(shè)計[J].化工自動化及儀表,2014,41(06):614-615.
[3]電力行業(yè)熱工自動化技術(shù)委員會.和利時 MACSV6系統(tǒng)[M].北京:中國電力出版社,2012:105-109.
[4]王錦標(biāo).和利時PLC技術(shù)[M].北京:機(jī)械工業(yè)出版社,2010:60-65.
[5]劉超明.石油化工裝置本質(zhì)安全設(shè)計[J].石油化工自動化,2010,46(01):4-5.
[6]王超然.關(guān)于石化裝置安全聯(lián)鎖設(shè)計的探討[J].中國石油和化工標(biāo)準(zhǔn)與質(zhì)量,2014,56(07):249-250.
[7]丁為,李煊.MACS V的CFC語言在程序升溫設(shè)計中的應(yīng)用[J].自動化與儀器儀表,2014,172(02):92-93.
[8]趙學(xué)全,孫洪濤.Hollias MACS V系統(tǒng)在無水酒精中的應(yīng)用[J].化工自動化及儀表,2012,39(09):1200-1202.
[9]武平麗,高國光.國產(chǎn)大型DCS MACS V在鹽化工流程控制中的應(yīng)用[J].自動化儀表,2008,25(09):23-26.
[10]宋燕.利用聯(lián)鎖邏輯實現(xiàn)互為備用泵自動啟動的方法[J].石油化工自動化,2013,49(06):60-61.