魏 亭,鞏萬福,孟棟軒,楊盛泉
(1.西安工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,西安 710021;2.西安長慶油氣建設(shè)實(shí)業(yè)有限責(zé)任公司,西安 710200)
輸油泵是油田管路輸送非常重要的動(dòng)力設(shè)備,其系統(tǒng)運(yùn)行中呈現(xiàn)極大的非線性、滯后性、強(qiáng)耦合和多種不確定因素,從而容易導(dǎo)致輸油效率低下、故障率高、穩(wěn)定性差等缺點(diǎn)。可編程控制器(Programmable Logic Controller,PLC)是一種抗干擾性能強(qiáng)、穩(wěn)定性高的支持復(fù)雜邏輯、數(shù)據(jù)處理、網(wǎng)絡(luò)通信的微電子程序控制裝置。文獻(xiàn)[1]提出結(jié)合管道近、遠(yuǎn)期輸量,選擇合適的輸油泵控制方案,對(duì)減少工程投資、降低運(yùn)行成本及節(jié)能降耗均有重要意義。文獻(xiàn)[2]提出傳統(tǒng)輸油泵控制容易導(dǎo)致故障問題處理延遲長、測控精度低、多泵協(xié)調(diào)工作能力弱等,尤其當(dāng)管線壓力過大,輸油泵得不到及時(shí)調(diào)控,這樣會(huì)造成原油泄漏、農(nóng)田污染等生態(tài)災(zāi)難。文獻(xiàn)[3]中采用PLC可以實(shí)現(xiàn)遠(yuǎn)程控制,極大的提高了系統(tǒng)的穩(wěn)定性。文獻(xiàn)[4]中論述了PLC在工業(yè)生產(chǎn)線上使用的有點(diǎn)與高效性,分析了基于以太網(wǎng)使用PLC以實(shí)現(xiàn)生產(chǎn)線總體的在線檢測、遠(yuǎn)程控制和數(shù)據(jù)收集??紤]到采油現(xiàn)場無規(guī)律地極度分散,通常遠(yuǎn)離站點(diǎn)管理辦公場所,基于油田廣域網(wǎng)(Wide Area Network,WAN)可以將多個(gè)輸油泵現(xiàn)場的IPC(Industry Personal Computer,IPC)的控制畫面遠(yuǎn)程同時(shí)傳輸?shù)捷斢捅迷O(shè)備操作工程師辦公室中集中實(shí)時(shí)查看與控制,本地輸油泵可以做到無人值守,同時(shí)如果出現(xiàn)故障報(bào)警后能立刻發(fā)現(xiàn)與及時(shí)派人現(xiàn)場有效處理。
本文擬采用現(xiàn)場PLC、本地IPC與油田WAN對(duì)多輸油泵實(shí)現(xiàn)本地與遠(yuǎn)程聯(lián)合測量與控制,本地輸油泵可初步自治運(yùn)行控制,遠(yuǎn)程中心對(duì)現(xiàn)場多點(diǎn)進(jìn)行實(shí)時(shí)控制,形成分布式控制結(jié)構(gòu),實(shí)現(xiàn)高度集中管理、分散靈活控制的優(yōu)點(diǎn),這對(duì)于油田企業(yè)全局輸油管線設(shè)備安全運(yùn)行、方便遠(yuǎn)程管理操作、降低人力成本、提高運(yùn)行工作效率等具有非常重要的意義。
油田輸油泵主要由機(jī)械底座、輸油主泵、輸油備泵、開關(guān)二位閥、模擬調(diào)節(jié)閥、三通切換器、事故緩存罐、機(jī)械管路、變頻器以及各種傳感器組成。它的功能將從總機(jī)關(guān)(或者井口)通過管線送過來的原油混合物進(jìn)行過濾、加熱、緩沖、增壓后按照適合的流量輸送到站點(diǎn)油庫[1],其輸油運(yùn)行工藝原理如圖1所示。
圖1 輸油泵運(yùn)行工藝原理
從圖1中可看出,自總機(jī)關(guān)或者抽油機(jī)井口送過來的原油混合物,經(jīng)過機(jī)械管路輸送至原油過濾器以過濾掉泥土、礦渣等顆粒雜質(zhì),依據(jù)設(shè)定的輸油流程經(jīng)過三通切換器送入到輸油主泵或者輸油備泵,通過油泵將原油調(diào)控到合適的出口壓力繼而通過外輸出油口管線輸送到站點(diǎn)原油庫。由于總機(jī)關(guān)來油的流量和壓力波動(dòng)很大,系統(tǒng)需要通過一定得算法對(duì)主泵或備泵變頻器實(shí)施智能控制,確保外輸維持恒定合理的壓力,外輸壓力如果太小則外輸長距離就沒有運(yùn)行動(dòng)力,反之壓力太高會(huì)導(dǎo)致外輸管線破裂造成原油泄漏等生態(tài)災(zāi)難??倷C(jī)關(guān)來油如果壓力太高超出了油泵承受范圍或者過濾器堵塞,則需要切斷油泵入口,使得來油直接進(jìn)入故障罐緩存,故障罐里面緩存的原油液位達(dá)到一定高度時(shí)需要通過輸油備泵外輸出去。
國內(nèi)長慶油田、大慶油田和延長石油等油田輸油泵,均無規(guī)律性地大多分布在荒野之中,無論油田大小,其物理設(shè)備工藝基本相同,一個(gè)油田一般由若干個(gè)1#、2#…N#輸油泵構(gòu)成。
根據(jù)輸油泵運(yùn)行工藝特點(diǎn)和多泵分散性分布的客觀現(xiàn)實(shí),本文設(shè)計(jì)出3層的輸油泵遠(yuǎn)程測量與控制系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。該系統(tǒng)是一個(gè)典型的星型拓?fù)浣Y(jié)構(gòu),所有外圍終端IPC通過油田廣域網(wǎng)WAN路由器連接到遠(yuǎn)程控制中心(Remote Control Center,RCC)計(jì)算機(jī),由一個(gè)中心節(jié)點(diǎn)管理訪問,控制多個(gè)分散的終端節(jié)點(diǎn),形成了基于網(wǎng)絡(luò)的分布式控制系統(tǒng)(Net Distributed Control System,NDCS),它是傳統(tǒng)的DCS理論的一種擴(kuò)展應(yīng)用。NDCS采用集中管理、集中操作、分散測量、分散控制的基本設(shè)計(jì)思想,采用多層分級(jí)、網(wǎng)絡(luò)通信的結(jié)構(gòu)形式。
根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的特點(diǎn)以及輸油泵測量與控制的詳細(xì)需求,遵循自頂向下、逐步細(xì)分的原則,設(shè)計(jì)出如圖2所示的系統(tǒng)總體宏觀結(jié)構(gòu)。
圖2 輸油泵控制系統(tǒng)硬件宏觀結(jié)構(gòu)
系統(tǒng)采用分層設(shè)計(jì)的方式,自下而上分別為Pump層(傳感層)、PLC層(控制層)、IPC層(會(huì)話層)與RCC層(管理層)。其具體描述如下:
1) 系統(tǒng)的最底層為油泵層,即Pump層也稱為傳感層。輸油泵是整個(gè)系統(tǒng)的測控對(duì)象,通過各種傳感器和執(zhí)行機(jī)構(gòu)組成包括壓力、溫度、液位、流量、開關(guān)等傳感信號(hào)輸入、主泵及備泵啟停開關(guān)量輸出、三通閥門調(diào)節(jié)開度大小模擬量輸出以及油泵變頻器數(shù)字頻率控制;
2) 系統(tǒng)的中下層為PLC層,也稱為控制層。PLC由CPU、RS485、RJ45、擴(kuò)展模塊組成。擴(kuò)展模塊包括:開關(guān)量I/O單元、模擬量輸入A/D單元、模擬量輸出D/A單元,它們都與CPU通過內(nèi)部總線連接[2]。RS485嵌入在CPU單元上的外部通信總線,它基于標(biāo)準(zhǔn)Modbus RTU與變頻器進(jìn)行串口通信控制[3]。RJ45是CPU單元上的標(biāo)準(zhǔn)以太網(wǎng)口,它主要通過FINS NET協(xié)議連接到中上層IPC;
3) 系統(tǒng)的中上層為1#、2#、…、N#輸油泵本地IPC組成的IPC層,又稱為會(huì)話層。其一方面通過FINS NET對(duì)PLC進(jìn)行會(huì)話進(jìn)行本地測控,另一方面通過油田WAN與最上層RCC進(jìn)行會(huì)話傳輸本地?cái)?shù)據(jù)或者接受RCC遠(yuǎn)程控制指令。
4) 系統(tǒng)的最上層為RCC層,又稱為管理層,能夠?qū)λ休斢捅眠h(yuǎn)程進(jìn)行數(shù)據(jù)采集、曲線顯示、預(yù)警分析、動(dòng)態(tài)工藝畫面、參數(shù)設(shè)置等功能,并通過網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)輸油泵群組進(jìn)行遠(yuǎn)程集中操作管理。
文中將多輸油泵遠(yuǎn)程分布式集中控制設(shè)計(jì)成不同的層次,每一層需要不同的軟件子系統(tǒng)來分別實(shí)現(xiàn),上下層通過硬件電路和軟件API接口函數(shù)進(jìn)行銜接,不同層的軟件子系統(tǒng)可并行研究與開發(fā),這樣不但降低了整體系統(tǒng)的復(fù)雜度,而且也縮短了開發(fā)周期。
本系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)NDCS核心硬件可采用西門子公司的S7-300 PLC或者Omron公司的CJ2M PLC來實(shí)現(xiàn)。以O(shè)mron CJ2M PLC為例,其底層分配設(shè)計(jì)見表1。
表1 NDCS核心底層分配設(shè)計(jì)
系統(tǒng)底層實(shí)現(xiàn)時(shí),根據(jù)輸油泵測控具體工藝需要,其底層具體模塊的數(shù)量可以相應(yīng)增加或者減少,并在PLC程序中根據(jù)單元號(hào)與地址范圍設(shè)置其最終物理地址。
系統(tǒng)的硬件分層中,Pump層傳感器由于具有標(biāo)準(zhǔn)規(guī)范的電路接口因此不需要編程,其他層均需要分別設(shè)計(jì)相應(yīng)的軟件子系統(tǒng),包括:PLC現(xiàn)場測量與控制軟件子系統(tǒng)、IPC本地會(huì)話軟件子系統(tǒng)以及RCC遠(yuǎn)程管理軟件子系統(tǒng)。
該子系統(tǒng)選用Omron公司的CJ2M-31 PLC作為現(xiàn)場輸油泵控制器。其軟件使用CX-Program V9.3集成開發(fā)環(huán)境,使用遵循IEC標(biāo)準(zhǔn)的梯形圖LAD與SCL-ST語言混合編寫[5],設(shè)計(jì)了5個(gè)循環(huán)控制SCL-ST子程序,其PLC主調(diào)梯形圖LAD程序MAIN如圖3所示。
圖3 PLC主調(diào)梯形圖LAD程序MAIN梯形圖
各個(gè)循環(huán)控制子程序在MAIN的控制調(diào)度下周期執(zhí)行,MAIN實(shí)施它們的啟動(dòng)、并發(fā)、同步、停止等管理工作[6]。具體完成內(nèi)容描述如下:
1) 數(shù)據(jù)采集循環(huán)子程序AnalogWork:完成采集多個(gè)模擬量AD081-V1、開關(guān)量ID231等模塊數(shù)據(jù)。這些數(shù)據(jù)采集進(jìn)來需要進(jìn)行濾波處理,去掉干擾數(shù)據(jù)后存儲(chǔ)到DM區(qū)。系統(tǒng)采用了RC低通濾波器進(jìn)行平滑數(shù)據(jù),其數(shù)學(xué)傳遞函數(shù)為
其中:Tf=RC為濾波時(shí)間常數(shù)。將該數(shù)學(xué)函數(shù)離散化得到的PLC實(shí)現(xiàn)的差分算法公式為
Y(n)=αY(n-1)+(1-α)X(n)
其中α=Tf/(Tf+T),T為采樣周期;X(n)為當(dāng)前第n個(gè)采集樣本;Y(n)為當(dāng)前第n個(gè)的濾波結(jié)果數(shù)據(jù)。
2) 邏輯控制循環(huán)處理子程序LogicModule:完成本系統(tǒng)所有的內(nèi)部邏輯控制功能,它內(nèi)部有一個(gè)生式規(guī)則庫,用PLC ST語言編寫,其規(guī)則形式前件(執(zhí)行條件)A→后件B(規(guī)則體)。條件A與B也可是NOT、AND、OR、XOR等運(yùn)算符組成的復(fù)合邏輯表達(dá)式,A中表示邏輯運(yùn)算條件,B中表示處理。例如:IF MainPumpRun AND OilPressureHigh THEN SetAlarmOn AND SetPauseOn,其表達(dá)當(dāng)主泵運(yùn)行的時(shí)候發(fā)現(xiàn)壓力超高,PLC立刻輸出報(bào)警并且暫停系統(tǒng)。
3) 壓力PID控制循環(huán)子程序PIDWork:完成對(duì)變頻器頻率PID控制即用PID算法控制主泵或者備泵的轉(zhuǎn)速而達(dá)到出口壓力符合油泵工藝設(shè)定壓力曲線。
PLC中使用PID控制算法的微分方程為
式中:e(t)=SV(t)-PV(t)為偏差,t為控制器運(yùn)行時(shí)刻,TI為積分系數(shù),TD為微分系數(shù),KP為比例系數(shù),mv(t) 為算法的輸出t時(shí)刻的輸出結(jié)果[7-8]。子系統(tǒng)在Omron PLC中利用SCL-ST代碼編程實(shí)現(xiàn)了增量型PID控制,運(yùn)行時(shí)要選擇合適的比例P、積分I、微分D參數(shù),當(dāng)然也可以調(diào)用PLC內(nèi)置的PID指令來實(shí)現(xiàn)。
4) 三通切換器控制循環(huán)子程序DAValveCtl完成油泵流程控制,其一方面控制三通閥門的DA輸出,另一方面控制油泵按照選定的流程自動(dòng)執(zhí)行,主要的控制流程有:按照時(shí)間計(jì)劃TimePlan輪流執(zhí)行主備泵、按照流量計(jì)劃FluxPlan執(zhí)行泵、按照油泵溫度計(jì)劃TempPlan輪流選擇執(zhí)行泵等。
5) 通信響應(yīng)循環(huán)子程序CommWork完成一方面對(duì)傳感層的變頻器進(jìn)行RS485通信,另一方面對(duì)上層IPC進(jìn)行RJ45通信準(zhǔn)備數(shù)據(jù)包。PLC與變頻器通信遵循標(biāo)準(zhǔn)的Modbus RTU協(xié)議,其命令幀格式見表2。
表2 RTU傳輸模式命令幀格式
PLC與IPC進(jìn)行RJ45網(wǎng)絡(luò)通信遵從FINS (Factory Interface Network Service) TCP工業(yè)以太網(wǎng)通信標(biāo)準(zhǔn),它兼容與任何Ethernet、Controller Link和SYSMAC LINK等網(wǎng)絡(luò)系統(tǒng)[4],其協(xié)議格式在傳統(tǒng)的TCP/IP基礎(chǔ)上加一個(gè)FINS包頭。
輸油泵IPC本地會(huì)話軟件子系統(tǒng)基于面向?qū)ο?OOP)集成環(huán)境開發(fā)并采用多線程(Multi-Thread)的編程機(jī)制設(shè)計(jì)完成,根據(jù)系統(tǒng)功能設(shè)計(jì)的IPC本地會(huì)話子系統(tǒng)多線程如圖4所示。
圖4 輸油泵IPC本地會(huì)話子系統(tǒng)多線程設(shè)計(jì)
考慮到輸油泵在油田企業(yè)里為特種關(guān)鍵設(shè)備,其系統(tǒng)操作的用戶有油泵工藝員、設(shè)備安全員、普通操作工人、系統(tǒng)管理員等,他們?cè)谟捅幂斢凸ぷ鬟\(yùn)行中都有不同的任務(wù),因此子系統(tǒng)設(shè)計(jì)采用基于角色的訪問機(jī)制,不同角色具有不同的權(quán)限,登陸系統(tǒng)時(shí)通過用戶角色管理線程后再經(jīng)角色權(quán)限界面選擇線程生產(chǎn)不同的運(yùn)行界面。其他線程同時(shí)并行運(yùn)行,它們都有自己的CRunTimeData互不干擾的空間,并發(fā)完成:下行與PLC實(shí)時(shí)RJ45 FINS通信、上行與遠(yuǎn)程RCC完成TCP/IP通信、油泵數(shù)據(jù)處理記錄存儲(chǔ)、油泵動(dòng)態(tài)曲線顯示以及PLC運(yùn)行參數(shù)查看設(shè)置等功能。
IPC采集PLC數(shù)據(jù)后需要進(jìn)行運(yùn)算后再儲(chǔ)存,例如在“油泵數(shù)據(jù)處理記錄儲(chǔ)存線程”中通過采集輸油流量f(t)進(jìn)行輸油累計(jì)量的計(jì)算,需要通過數(shù)字化積分算法完成,其表達(dá)式為
其中:Q為輸油累積量,Ta為開始時(shí)間,Tb為結(jié)束時(shí)間,f(t)為輸油流量采集函數(shù);在編程實(shí)現(xiàn)時(shí)通過復(fù)化Simpson算法求解[9],其離散化后的公式為
其中:Xk-1/2=(Xk-1+Xk)/2=Ta+(k-1/2)h,將[Ta,Tb]分成n等份,取等距節(jié)點(diǎn)Xk=a+k*h,k=0,1,…,n,h=(Tb-Ta)/n。
RCC遠(yuǎn)程管理軟件子系統(tǒng)根據(jù)油田廣域網(wǎng)WAN的實(shí)時(shí)性要求以及專用性要求,采用工業(yè)控制經(jīng)典的C/S架構(gòu),該子系統(tǒng)的人機(jī)界面從油田企業(yè)管理所有輸油泵的全局出發(fā),比IPC本地子系統(tǒng)多了管理調(diào)度所有輸油泵生產(chǎn)運(yùn)行的線程和全局輸油設(shè)備遠(yuǎn)程安全決策分析線程,其他與IPC本地子系統(tǒng)類似,限于篇幅不再贅述。
RCC遠(yuǎn)程管理軟件子系統(tǒng)側(cè)重全局遠(yuǎn)程控制管理功能,可采集所有油泵的數(shù)據(jù),并進(jìn)行大數(shù)據(jù)分析處理數(shù)據(jù)挖掘,算法采用了基于經(jīng)典的Apriori算法關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘算法[10],其核心代碼為:
L1={large 1-itemsets};//生成頻繁1-項(xiàng)集集合
for (k=2;Lk-1<>;k++) do//生成頻繁k-項(xiàng)集
Ck=apriori_gen(Lk-1);//調(diào)用函數(shù)由Lk-1生成Ck
Ct=subset(Ck,t);//事務(wù)t中的候選集
Lk={cCk|c.count≥min_sup}//Lk為候選集合運(yùn)算
L=∪kLk;//L為最終數(shù)據(jù)分析結(jié)果
油田輸油泵分布式PLC網(wǎng)絡(luò)控制系統(tǒng)在Windows 7操作系統(tǒng)中使用面向?qū)ο蟮募砷_發(fā)環(huán)境Delphi 6.0、CX-Program V9.3與開源網(wǎng)絡(luò)數(shù)據(jù)庫MySQL 5.6開發(fā),該系統(tǒng)在中國石油某油田企業(yè)得到了實(shí)施應(yīng)用,其實(shí)際開發(fā)的RCC遠(yuǎn)程其中一個(gè)站點(diǎn)輸油泵運(yùn)行的人機(jī)界面如圖5所示。
圖5 RCC遠(yuǎn)程站點(diǎn)輸油泵工藝人機(jī)界面
為了驗(yàn)證本文提出的輸油泵分布式PLC網(wǎng)絡(luò)控制系統(tǒng)的實(shí)際優(yōu)勢,系統(tǒng)開發(fā)完成后部署在中國石油某油田企業(yè)輸油泵(型號(hào)為CT-Pump8209-TB-Ⅳ,雙泵)進(jìn)行實(shí)際運(yùn)行,并與同站點(diǎn)同型號(hào)采用傳統(tǒng)控制方式的輸油泵進(jìn)行控制運(yùn)行效果比對(duì),累計(jì)一年的統(tǒng)計(jì)數(shù)據(jù)見表3。
表3 控制效果實(shí)驗(yàn)運(yùn)行對(duì)比數(shù)據(jù)
企業(yè)運(yùn)行數(shù)據(jù)反饋情況表明,采用文中的分布式網(wǎng)絡(luò)控制方式配備的人員較少,發(fā)生故障次數(shù)遠(yuǎn)遠(yuǎn)少于傳統(tǒng)控制,一年的設(shè)備維護(hù)費(fèi)用是傳統(tǒng)控制方式的1/10左右,連續(xù)運(yùn)行的最長時(shí)間也明顯優(yōu)于傳統(tǒng)控制方式。這表明該系統(tǒng)信息化程度高、降低了多泵協(xié)同管理的難度、提高了設(shè)備安全管理效率、極大地減少了輸油生產(chǎn)運(yùn)行成本。
本文設(shè)計(jì)了一種新型的油田輸油泵分布式PLC網(wǎng)絡(luò)控制系統(tǒng),對(duì)輸油泵分布式控制采用PLC網(wǎng)絡(luò)系統(tǒng),采用多層設(shè)計(jì)并通過一個(gè)中心連接控制到被控對(duì)象的各個(gè)分散采集點(diǎn)進(jìn)行實(shí)時(shí)運(yùn)算與控制。采用NDCS架構(gòu)進(jìn)行油泵多點(diǎn)分布協(xié)同控制,利用Apriori算法關(guān)聯(lián)規(guī)則進(jìn)行優(yōu)化集中管理,克服了傳統(tǒng)輸油泵控制容易造成設(shè)備各溫度、壓力慣性波動(dòng)大、管路壓力不均勻等缺點(diǎn)。本文提出的使用WAN與PLC以層次化的方式設(shè)計(jì)的遠(yuǎn)程控制系統(tǒng),將復(fù)雜的設(shè)備測控問題簡單化,對(duì)類似的設(shè)備遠(yuǎn)程控制提供了較好的設(shè)計(jì)方法與模型,具有較強(qiáng)的實(shí)際應(yīng)用與推廣價(jià)值。