黃安貽 楊中豪
摘要:針對目前油田開發(fā)與生產(chǎn)現(xiàn)狀,設計一款面向油田現(xiàn)場的RTU系統(tǒng)。介紹了以STM32為核心、內(nèi)嵌uc/os-ii多任務實時操作RTU系統(tǒng)設計方案,同時對多通道數(shù)據(jù)輸入輸出、RS232、RS485等功能模塊的硬件設計和數(shù)據(jù)傳輸采用的Modbus通信協(xié)議進行了描述。
關(guān)鍵詞:RTU;油田開發(fā);STM32;ARM
DOIDOI:10.11907/rjdk.151452
中圖分類號:TP319
文獻標識碼:A 文章編號文章編號:16727800(2015)008011802
0 引言
油田被稱為“沒有圍墻的工廠”,油井、注水井星羅棋布且大部分在人煙稀少的地方,油田單位的經(jīng)濟效益與抽油機以及注水泵的正常運行息息相關(guān)。生產(chǎn)單位需要對采油井和注水井工作狀態(tài)實時監(jiān)控,維修工的定期檢查、維護必不可少 [1]。隨著油田現(xiàn)代化管理的發(fā)展,迫切需要一種全天候、24小時無人值守的監(jiān)控手段,以保證采油井和注水井的正常工作。本文設計了一款基于ARM的RTU系統(tǒng),動態(tài)監(jiān)測油田多種生產(chǎn)數(shù)據(jù)并實時上傳數(shù)據(jù),對于有效監(jiān)控油田工作狀況,提高油田生產(chǎn)效率具有重要意義。
1 RTU系統(tǒng)設計
基于STM32的RTU系統(tǒng)結(jié)構(gòu)如圖1所示。系統(tǒng)采用STM32為CPU,主要包括模擬量輸入模塊及輸出模塊、數(shù)字量輸入模塊及輸出模塊、RS232通信模塊、RS485通信模塊、存儲器模塊、電源模塊、顯示模塊等。數(shù)據(jù)傳輸采用Modbus通信協(xié)議,采用us/osii操作系統(tǒng)作為嵌入式系統(tǒng)。
設計方法如下:對采集到的模擬量和數(shù)字量,首先通過不同的信號調(diào)理電路進行處理,再進入到CPU中,進行A/D采樣、軟件濾波,并對不同的參數(shù)根據(jù)相應的算法進行計算,最終將處理后的數(shù)據(jù)通過不同的通訊方式向上級RTU或者上位機系統(tǒng)傳輸,并接收控制信號,實現(xiàn)模擬量和數(shù)字量的輸出。
圖1 RTU系統(tǒng)結(jié)構(gòu)
1.1 CPU選型
油田工業(yè)現(xiàn)場這一特殊環(huán)境決定了CPU要有足夠的可靠性和低功耗。ARM系列處理器性能高、功耗低,恰恰符合本設計要求。本系統(tǒng)采用ARM9系列的STM32F103VET6處理器,該處理器使用高性能的ARM CortexM3 32位的RISC內(nèi)核,工作頻率為72MHz,該CPU具有以下性能:①內(nèi)置高速存儲器,具有高達128K字節(jié)的Flash和20K字節(jié)的SRAM;②豐富的增強I/O端口,包含2個12位ADC、3個通用16位定時器和一個PWM定時器;③先進的標準通信接口:2個I2C和SPI、3個USART、一個USB和一個CAN;④供電電壓2.0-3.6V,一系列省電模式保證了低功耗應用要求[2]。
1.2 模擬量輸入輸出模塊
RTU具有8路模擬量輸入和4路模擬量輸出,單路的模擬量輸入和輸出電路原理如圖2所示。8個模擬量輸入通道均可跳線到0~20mA電流模式。電壓模式時,增益通過軟件設置。4路模擬量輸出通道提供4~20mA電流信號。在前端加入適當?shù)妮斎胝{(diào)節(jié)電路,包括精密電阻、濾波電容、瞬態(tài)抑制二極管等元器件。
圖2 單路模擬量輸入輸出原理
模擬量輸出采用OPA333芯片。OPA333是非常優(yōu)異的單電源軌至軌運算放大器,具有2.7~5.5V的寬工作電壓,經(jīng)過測試電壓輸出最低為30uV,最高為VCC30uV。OPA333芯片性能優(yōu)異,電路具良好的穩(wěn)定性和精確性。DACOUT從STM32的DAC1或DAC2輸出,經(jīng)濾波后進入運放,進行1∶1緩沖,后經(jīng)晶體管放大電流,由接地電容進行去抖處理,同時在接地電阻上進行電壓檢測,4~20mA信號由AN_OUT+/AN_OUT-輸出。
1.3 數(shù)字量輸入輸出模塊
在數(shù)字量輸入輸出電路中采用了光耦隔離,即采用光電耦合器進行隔離,發(fā)光二極管把輸入的電信號轉(zhuǎn)換為光信號,光信號經(jīng)過光敏管轉(zhuǎn)換為電信號輸出。因沒有直接的電氣連接,所以在傳輸信號中隔離了干擾。數(shù)字量輸入和數(shù)字量輸出電路原理如圖3所示。
圖3 單路數(shù)字量輸入輸出原理
數(shù)字量輸入時,在前端加入適當?shù)碾娮?、濾波電容和發(fā)光二極管等元件,然后和光耦隔離器相連,選取恰當?shù)呐c光耦串聯(lián)的分壓電阻、并聯(lián)的分流電阻,通過調(diào)整其電阻值,得到適當?shù)妮斎腚妷洪撝怠?shù)字量輸入電壓通過光耦隔離后轉(zhuǎn)換為合適的電壓值,傳輸至STM32。
在數(shù)字量輸出方面,采用繼電器輸出,光耦隔離器后接有NPN型三極管。當集電極電流不再隨著基極電流的增大而增大時,該三極管進入飽和狀態(tài)。發(fā)射極與集電極間電壓非常小,三極管導通,后面的繼電器通電,開關(guān)閉合;當基極電流為零時,三極管的集電極電流也變?yōu)榱恪H龢O管截止,開關(guān)隨著繼電器的斷電而斷開。這樣,通過開關(guān)閉合和斷開就實現(xiàn)了信號輸出。
1.4 通信模塊
RTU具有多種通信方式,如RS232通信和RS485通信等。RTU設計有一個RS232通信接口和一個RS485通信接口,分別采用Spiex公司的SP3232和SP3485作為RS232和RS485的收發(fā)器。SP3232滿足EIA/TIA232和V.28/V.24通信協(xié)議,其片內(nèi)電荷泵電路為Sipex所獨有,可從3~5.5V的電源電壓產(chǎn)生2*Vcc的RS232電壓電平。SP485同時滿足RS485和RS422串行協(xié)議,具有3.3V的工作電壓以及10Mbps數(shù)據(jù)傳輸速率。
2 RTU軟件設計
2.1 Modbus RTU協(xié)議
RTU系統(tǒng)內(nèi)嵌有uc/osii多任務實時操作系統(tǒng),以及用于數(shù)據(jù)傳輸?shù)腗odbus通訊協(xié)議。uc/osii是一個開放式的微內(nèi)核,對處理器和硬件時鐘進行抽象和封裝,但沒有提供其它硬件抽象層,這使得uc/osii具有很強的可移植性[3]。此外,它具有空間小、實時性強和執(zhí)行效率高等特點,是專為嵌入式系統(tǒng)設計的操作系統(tǒng)。Modbus是一種廣泛應用于自動控制和通信領(lǐng)域的通信協(xié)議,通過該協(xié)議,控制器之間、控制器與其它設備(經(jīng)由網(wǎng)絡)可以進行通信[4]。Modbus通信協(xié)議規(guī)定了2種傳輸方式:RTU和ASCII碼模式。RTU模式規(guī)定在消息中,由兩個4bits的16進制字符組成一個字節(jié),數(shù)據(jù)校驗采用CRC校驗;ASCII碼模式則規(guī)定了每個字節(jié)包含兩個ASCII碼,采用LRC進行數(shù)據(jù)校驗。
2.2 系統(tǒng)軟件設計
Modbus RTU協(xié)議是主從協(xié)議,即主節(jié)點和一個或多個子節(jié)點共同連接在一條串行總線。Modbus主站和從站為兩個獨立模塊,從站主要用于處理Modbus主站功能請求,通過從站服務實現(xiàn)。從站RTU在進行初始化后,需要進行一系列的配置才能正常工作,通過RTU啟動任務Task0實現(xiàn)。RTU啟動任務Task0后,進入存儲器(EEPROM)中讀取數(shù)據(jù),獲取配置信息;根據(jù)配置信息完成各種硬件驅(qū)動的初始化,然后創(chuàng)建數(shù)字量輸入任務Task1、數(shù)字量輸出任務Task2、模擬量輸入任務Task3、模擬量輸出任務Task4、讀保持寄存器配置任務Task5;然后進行任務調(diào)度,進行高優(yōu)先級任務切換并實時響應外部中斷。RTU初始任務Task0流程如圖4所示。
3 結(jié)語
本文從硬件和軟件兩個方面闡述了基于ARM的油田RTU系統(tǒng)設計,通過對注水井、油井內(nèi)的油田生產(chǎn)數(shù)據(jù),如油壓、水壓、流量、載荷、位移、液位等進行實時監(jiān)測,實現(xiàn)對注水井、油井內(nèi)生產(chǎn)設備的有效控制,能有效提高油田的生產(chǎn)效率,實現(xiàn)油田的增產(chǎn)、穩(wěn)產(chǎn)。
參考文獻:
[1] 王權(quán).油田信息化的新階段-數(shù)字化油田時代[J].數(shù)字化工,2004(9):46.
[2] STM32F103X DATASHEET[EB/OL]. http://wenku.baidu.com/view/e095462abd64783e09122b3f.html.
[3] [美]拉伯羅斯.嵌入式實時操作系統(tǒng)μC/OSII [M].邵貝貝,譯.第2版.北京:北京航空航天大學出版社,2003:3541.
[4] 孫月平,趙德安,曹莉.基于Modbus的智能工業(yè)控制器監(jiān)控系統(tǒng)設計[J].微計算機信息:測控自動化,2008(24):4143.
(責任編輯:杜能鋼)