摘要:目前勝利油田濱南採油廠原油盤庫系統的自動化程度較低。為大力提高其自動化水平,本文根據該採油廠各聯合站分散採集、集中監視的特點,設計了基於RS-485總線和主從單片機結構的數據採集子系統方案。由位於監控室的主單片機作為中樞,通過RS-485總線採集各從單片機收集到的原油參數並通過串口上傳到上位機中。利用上位機軟體配合Proteus軟體和Keil軟體對整個子系統進行了仿真和測試,從而驗證了其可行性。
本文引用地址:http://www.eepw.com.cn/article/201610/307567.htm在採油廠聯合站中對原油的液位、油水界面、密度、含水、庫存量等各項參數的計量過程就是盤庫。盤庫是原油生產過程中的一項重要工作,只有精確掌握了各項生產數據才能做出更好的生產及銷售決策。這是一項關係到企業發展和經濟效益的重要任務,因此,研究與開發一套現代化的原油自動盤庫系統是非常必要的。濱南採油廠是勝利油田位於山東省濱州市的一個重要採油廠,但受限於當時的技術與資金等方面的因素,該廠現在使用的盤庫系統自動化程度不高,突出表現在源頭數據的採集與傳輸必須以人工的方式完成,費時勞力,已經滿足不了現代化、高效率、高精度的生產要求。本文就是以濱南採油廠為背景,在其實際應用盤庫系統的基礎上,參考了國內外一些油田聯合站的盤庫方案,設計開發了一套基於RS-485總線和主從單片機結構的原油自動化盤庫數據採集子系統。
1 研究背景
濱南採油廠現有的原油盤庫系統是以基於瀏覽器和客戶端軟體的方式進行原油生產數據的採集、傳輸及處理。首先通過人工讀取的方式獲得原油罐上測量儀表或其他計量工具測量得到的數據,然後生產單位用瀏覽器將原油生產數據錄入資料庫,之後計劃科工作人員用客戶端軟體對原油生產數據進行統計以供全廠人員查詢。
該系統由5部分組成,第一部分為原油生產數據錄入部分,由各礦區和集輸大隊的工作人員以瀏覽器的方式將數據錄入到伺服器中;第二部分為原油生產數據統計部分,計劃科工作人員每天通過客戶端軟體對各單位上報數據進行統計,形成每天的產量數據;第三部分為原油生產數據查詢部分,供全廠各部門以瀏覽器方式查詢生產數據;第四和第五部分分別是原油生產數據報表輸出和系統維護部分,供計劃科人員使用,以客戶端軟體的形式實現。
現有系統到目前為止已建成十餘年,一直運行穩定。但其整體自動化程度亟待提高,集中表現在源頭數據的採集和傳輸只能依靠人工完成。若能實現源頭數據的自動採集和傳輸,即可完成現有盤庫系統中第一部分(即:生產數據錄入部分)的升級代替,並能與現有盤庫系統中的其餘部分實現良好銜接,從而可將濱南採油廠原油盤庫系統的自動化水平提高到較高水平。
2 需求分析及測量方法
針對濱南採油廠現在實際運行的盤庫系統由人工完成數據採集的現狀,需做出以下幾方面的改進:利用傳感器技術實現源頭數據的自動採集,提高數據採樣頻率,實現數據自動存儲、顯示與上傳,實現數據的遠程實時監控。
為實現盤庫數據的自動採集,經多方比較,針對不同類型油罐採用了如下測量方法。
2.1 針對沉降罐的測量方法
沉降罐的特點是原油含水率較高,且隨著高度的不同含水率變化較大,且一般不是線性關係。因此,應測量出不同高度處的含水率並進行平均。為此,先用超聲波液位變送器測量出油水混合物的液位,然後使用智能採集裝置測量出不同高度處的含水率與溫度。智能採集裝置的主要工作部件是一個裝有短波發生器及接收器的移動探頭。當油水混合物的含水率變化時,其對能量的吸收也會相應變化,這種表現會被接收裝置記錄下來並轉換成適宜單片機接收的標準信號。
具體工作過程是讓移動探頭先運行至油罐最底部,然後在油罐中自下而上採集不同高度處的含水率,並將含水率為95%的位置處定義為油水界面。此後,讓探頭繼續等間隔上升,測量出油層不同高度處的含水率及溫度,直至液面的頂端。該方案的整體結構如圖1所示。
根據上述測量原理,沉降罐中原油儲量的計算公式為:
其中,ρo和ρw分別是水和原油的密度,並且需要做溫度修正。
2.2 針對淨油罐的測量方法
淨油罐中原油的特點是含水率較低,通常來油的含水率已經低於5%,經淨油罐再次沉降後甚至可達1%以下。並且,淨油罐中的含水率隨油層高度變化不大,因此可用外輸原油的含水率來代替油罐中的含水率。這樣,只需使用射頻導納界面儀和超聲波液位變送器分別測出油水界面的高度和液位就可以計算出油罐中的儲油量了。計算公式為:
其中,H為油層的高度,即液位減去油水界面高度。
2.3 針對外輸管道的測量方法
通過安裝高精度的含水分析儀、在線密度計和流量變送器可實現計量。具體計算公式為:
G=Viρ[MfCpCt(1-Cω)] (4)
其中,Vt為流量計測得的總流量,Mf為流量修正係數,Cp為原油壓力修正係數,Ct為原油溫度修正係數。
3 總體設計
該系統由3層結構組成,最底層是現場數據採集層,負責對傳感器採集到的數據進行調理與轉換;中間層是數據傳輸層,負責數據的本地存儲與傳輸;最上層是數據存儲與界面層,負責將採集到的數據存儲到上位機的資料庫中,並實現與工作人員的人機對話,可顯示即時及歷史數據、繪製統計圖、輸出報表及列印、設置系統參數、執行遠程手動控制等。
系統工作過程為:由安裝在各類油罐上的各種功能的傳感器將採集到的生產數據如液位、油水界面高度、原油含水率和溫度等信息經信號調理、模數轉換後,傳送到安裝在油罐附近的現場單片機即從單片機上,然後利用RS-485總線通過串口傳送到主單片機中,最後經電平轉換將採集到的數據發送到上位機,在上位機中進行數據的運算、存儲與顯示。
系統總體結構圖如圖2所示。
4 系統硬體設計
硬體部分主要由主/從單片機最小系統、串口復用電路、RS-485通信電路、數據存儲電路、模數轉換電路等組成,系統硬體結構圖如圖3所示。
為節約成本,本系統中使用的單片機均為51單片機。所使用的時鐘均為內部方式,即在XTAL1和XTAL2兩端外接石英晶體作定時元件,內部反相放大器自激振蕩產生時鐘,時鐘頻率為11.059 2 MHz。復位方式採用手動復位。
51單片機僅有一個串口,而主單片機與上位機和與從單片機的通信均是通過串口進行,因此涉及到串口復用。文中串口復用電路就是實現這個功能,具體是使用兩片多路模擬開關4051分別實現單片機讀寫數據的方向選擇,另外使用兩個控制埠進行通路的選通。
主從單片機之間的通信是基於RS-485總線來實現的,總線拓撲結構採用終端匹配的總線型結構,首尾兩端使用的阻抗匹配電阻為120Ω。通信協議採用的是Modbus中的RTU模式,通信方式為主從式,僅有一個主機,各從機有唯一編號,且從機間不能相互通信。
由於要在現場單片機進行數據備份,防止總線故障時出現數據丟失,因此要在從單片機電路上擴展外部數據存儲器。經容量測算,選用6264靜態RAM進行了擴展,並用一片74LS373進行數據鎖存。
A/D轉換器採用MCP3204,這是由Microchip公司生產的4通道、12位微功耗串行模數轉換器。4個通道分別用於採集液位、油水界面、含水及溫度,其他量可在上位機上計算得出。12位模數轉換器的精度可達0.2‰,完全可滿足需要。
5 系統軟體設計
軟體設計採用模塊化結構。單片機程序使用C語言開發,開發環境為Keil μVision4。上位機程序使用VB6.0進行開發。
系統軟體設計包括主單片機程序設計、從單片機程序設計以及上位機程序設計3部分,其結構框圖如圖4所示。其主要功能模塊的作用如下:
串行通信模塊用來實現主從單片機間的通信以及主單片機與上位機間的通信;定時器模塊用來設置串行口波特率以及RS-485通信協議中的幀定時和字節定時;模數轉換模塊用於對傳感器採集的數據進行AD轉換。上位機程序中的數據處理與顯示模塊用於對主單片機上傳的數據進行處理、顯示並將結果存儲到資料庫中。
主單片機和從單片機主程序的流程圖分別如圖5和圖6所示。
上位機的主要功能是定時喚醒主單片機,並向其發送數據採集命令,然後等待接收數據,最後將數據實時顯示並存儲。其主程序的流程圖如圖7所示。
6 仿真實現
本文中主、從單片機的數據採集與通信部分均通過Proteus軟體進行了仿真實現。上位機軟體與Proteus軟體之間通過虛擬串口進行相互通信。圖8給出了主單片機上LCD的顯示結果,對應當前採集過程中3個油罐的液位和油水界面高度。圖9為上位機上的顯示結果,給出了本次採集的時間以及3個油罐中所有生產數據等信息。
7 結論
文中為實現濱南採油廠各聯合站生產數據的自動採集、傳輸、存儲與顯示,設計了一套原油盤庫數據採集子系統。該子系統採用主、從單片機結構,利用RS-485總線進行數據傳輸,並最終上傳到聯合站主控室上位機的資料庫中。
利用Proteus、Keil和上位機軟體進行了聯合仿真與調試,驗證了方案的可行性,值得在採油廠中應用。該方案具體實施後,將實現對濱南採油廠現有盤庫系統中人工錄入數據部分的升級代替,並能與現有盤庫系統中的其餘部分實現良好銜接,從而可將該廠原油盤庫系統的自動化水平提高到較高水平。