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