基于VxWorks的油井?dāng)?shù)據(jù)采集遠(yuǎn)程終端的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要:針對(duì)目前采油廠油井的工作參數(shù)監(jiān)控缺乏遠(yuǎn)程手段的情況,論述了一種基于VxWmks的遠(yuǎn)程終端的設(shè)計(jì)。該遠(yuǎn)程終端采用CDMA通信信道,可以對(duì)油井的負(fù)荷、溫度、油管回壓、沖次、工作電流、工作電壓等參數(shù)進(jìn)行實(shí)時(shí)自動(dòng)在線抄收和處理,并將數(shù)據(jù)發(fā)送至監(jiān)控中心,由監(jiān)控中心集中監(jiān)控各油井的工作狀態(tài)。該終端采用MSP430F149單片機(jī)完成數(shù)據(jù)的采集,由S3C44BOX嵌入式處理器完成數(shù)據(jù)的處理與發(fā)送,并由VxWorks嵌入式實(shí)時(shí)操作系統(tǒng)來(lái)保證高效率的實(shí)時(shí)多任務(wù)處理。
關(guān)鍵詞:RTU;CDMA;S3C4480X;MSP430;VxWorks;無(wú)線數(shù)據(jù)傳輸
0 引 言
目前,采油廠多以抽油機(jī)采油生產(chǎn)為主要任務(wù),抽油機(jī)的分布點(diǎn)多面廣,工作在條件惡劣的環(huán)境中,容易損壞和遭外力破壞,需要經(jīng)常巡測(cè),人員工作強(qiáng)度大。目前油井工作狀態(tài)參數(shù)監(jiān)控由于缺乏遠(yuǎn)程手段,對(duì)油井的生產(chǎn)狀況均處于事后處理狀態(tài),油井出現(xiàn)異常或被盜破壞時(shí)不能及時(shí)處理,造成大量不明損失?;贑D-MA通迅信道的遠(yuǎn)程終端(Remote Terminal Unit,RTU)充分利用現(xiàn)有的計(jì)算機(jī)網(wǎng)絡(luò),通過(guò)對(duì)現(xiàn)場(chǎng)的監(jiān)測(cè)和數(shù)據(jù)采集、傳輸,可以滿足油井遠(yuǎn)程監(jiān)控的需求。該遠(yuǎn)程終端可以對(duì)油井運(yùn)行時(shí)的負(fù)荷、位移、油管回壓、溫度、沖次、工作電流、電壓等參數(shù)進(jìn)行實(shí)時(shí)全自動(dòng)在線抄收;當(dāng)現(xiàn)場(chǎng)有異常情況發(fā)生時(shí),監(jiān)控中心能自動(dòng)發(fā)出相關(guān)報(bào)警信息,調(diào)度室可根據(jù)報(bào)警信息派相關(guān)人員去做現(xiàn)場(chǎng)處理。相關(guān)數(shù)據(jù)的采集,由傳統(tǒng)的人力操作模式轉(zhuǎn)變?yōu)橛?jì)算機(jī)自動(dòng)操作模式,無(wú)需人工干預(yù),從而節(jié)省人力、提高了工作效率。
1 監(jiān)控系統(tǒng)架構(gòu)與遠(yuǎn)程終端的功能
監(jiān)控系統(tǒng)(如圖1)主要由監(jiān)控中心和遠(yuǎn)程終端構(gòu)成。遠(yuǎn)程終端負(fù)責(zé)對(duì)抽油機(jī)現(xiàn)場(chǎng)數(shù)據(jù)的采集與收發(fā)。監(jiān)控中心對(duì)來(lái)自各個(gè)遠(yuǎn)程終端的數(shù)據(jù)進(jìn)行集中監(jiān)控。遠(yuǎn)程終端通過(guò)CDMA信道接入Internet,從而與監(jiān)控中心服務(wù)器建立連接。監(jiān)控中心是該系統(tǒng)的指揮中心,它可以向現(xiàn)場(chǎng)的遠(yuǎn)程終端發(fā)送多種命令和信息、可以對(duì)接收的數(shù)據(jù)做進(jìn)一步處理,可以將必要的信息通過(guò)網(wǎng)絡(luò)發(fā)給各部門。
遠(yuǎn)程終端監(jiān)測(cè)抽油機(jī)三相電壓值、三相電流值、以及抽油機(jī)負(fù)荷、井口油管回壓、井口油管溫度等。
2 遠(yuǎn)程終端的整體結(jié)構(gòu)設(shè)計(jì)
如圖2為RTU系統(tǒng)架構(gòu)框圖。根據(jù)應(yīng)用需求,系統(tǒng)被設(shè)計(jì)為單片機(jī)加嵌入式處理器的構(gòu)架。MSP430F149單片機(jī)是德州儀器(TI)推出的超低功耗16位RISC混合信號(hào)處理器(Mixed Signal Proces—sor)。該處理器具有豐富的硬件資源,較高的處理速度以及低功耗的特點(diǎn),自帶8路12 b ADC和雙UART,使其非常適合作為該終端的數(shù)據(jù)采集處理器。$3C44.BOX為三星公司推出的一款以ARM7為核心的32位嵌入式處理器。它具有豐富的資源以及低功耗低成本的特點(diǎn)能夠滿足該終端的應(yīng)用需要。
MSP430單片機(jī)在該系統(tǒng)中主要完成實(shí)時(shí)數(shù)據(jù)的采集。待采集的數(shù)據(jù)有:由電量傳感器搜集的抽油機(jī)三相電壓電流數(shù)據(jù),采油機(jī)臂負(fù)荷,溫度傳感器模擬信號(hào),壓力、紅外傳感器信號(hào)。單片機(jī)將采集的數(shù)據(jù)按照要求的數(shù)據(jù)格式通過(guò)UART發(fā)送到S3C44BOX。
在該系統(tǒng)中S3C44BOX作一定的數(shù)據(jù)處理并且通過(guò)控制CDMA模塊完成無(wú)線網(wǎng)絡(luò)連接和數(shù)據(jù)收發(fā)。在開機(jī)后S3c44BOX控制CDMA模塊首先與監(jiān)控中心建立數(shù)據(jù)鏈路,監(jiān)控中心收到鏈路信息后即可獲得油井的運(yùn)行信息,可隨時(shí)接收單片機(jī)采集的數(shù)據(jù)信息。當(dāng)S3C44BOX接收到單片機(jī)的信息后,通過(guò)CDMA網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送給監(jiān)控中心,或?qū)⒈O(jiān)控中心發(fā)來(lái)的信息傳給單片機(jī)。在S3C44BOX上所實(shí)現(xiàn)的任務(wù)較多并且涉及到PPP(Point to Point,點(diǎn)對(duì)點(diǎn)協(xié)議)協(xié)議棧,為了滿足系統(tǒng)的實(shí)時(shí)性,本終端采用vlxWorks嵌入式實(shí)時(shí)操作系統(tǒng)。S3C44BOX所要完成的任務(wù)有:
(1)接收來(lái)自MSP430的數(shù)據(jù)幀;向MSP430發(fā)控制指令。
(2)處理MSP430發(fā)送的數(shù)據(jù)并利用負(fù)荷傳感器數(shù)據(jù)計(jì)算出采油臂的轉(zhuǎn)動(dòng)周期,提取抽油機(jī)示功圖。
(3)連接CDMA網(wǎng)絡(luò),S3C44BOX通過(guò)向CDMA模塊發(fā)送AT命令控制其進(jìn)行PPP撥號(hào)建立Internet連接。
(4)建立了PPP連接后,遠(yuǎn)程終端和監(jiān)控中心作數(shù)據(jù)交換。
(5)監(jiān)測(cè)系統(tǒng)的供電情況。若遠(yuǎn)程終端產(chǎn)生掉電事件,在系統(tǒng)完全關(guān)閉前(由大電容維持使系統(tǒng)不會(huì)立即關(guān)閉),系統(tǒng)向主站發(fā)出停電報(bào)警。
(6)對(duì)系統(tǒng)看門狗的處理。包括軟件看門狗和硬件看門狗,保證系統(tǒng)的可靠性。[!--empirenews.page--]
(7)對(duì)網(wǎng)絡(luò)的支持。有了對(duì)局域網(wǎng)的支持,調(diào)試時(shí)下載VxWorks應(yīng)用程序鏡像到FLASH存儲(chǔ)器就變得方便和快速,方便了系統(tǒng)軟件的升級(jí)。
遠(yuǎn)程終端選用AnyDATA公司的DTGS-800作為無(wú)線通信模塊。該模塊的主要特性有:采用Qualcomm公司的6050芯片;頻段為800 MHz,支持CDMA2000 1XRTT標(biāo)準(zhǔn);內(nèi)建TCP/IP協(xié)議棧等。DTGS-800通過(guò)U_ART與S3C44BOX相連,S3C44BOX通過(guò)發(fā)送AT命令來(lái)實(shí)現(xiàn)對(duì)CDMA模塊的控制。
3 遠(yuǎn)程終端的軟件設(shè)計(jì)
遠(yuǎn)程終端的軟件分為MSP430單片機(jī)程序設(shè)計(jì)和S3C44BOX的程序設(shè)計(jì)。
3.1 MSP430單片機(jī)程序設(shè)計(jì)
MSP430單片機(jī)負(fù)責(zé)多種數(shù)據(jù)采集,并將數(shù)據(jù)打包發(fā)送。MSP430單片機(jī)具有雙UART。uART0用來(lái)向上位機(jī)ARM傳輸數(shù)據(jù)并接收ARM所給的指令;UARTl通過(guò)RS 485協(xié)議與電量傳感器相連。兩個(gè)紅外傳感器的數(shù)字輸出端TELSIG1和TELSIG2分別連在MSP430的P5.0和P5.1通用I/O端口。溫度傳感器、壓力傳感器和負(fù)荷傳感器輸出的模擬信號(hào)量經(jīng)過(guò)各自的信號(hào)調(diào)理電路后分別連接于單片機(jī)的A0,A1和A4端口。通過(guò)MSP430F149單片機(jī)自帶的12 b ADC完成溫度、壓力和負(fù)荷信號(hào)的模數(shù)轉(zhuǎn)換,模數(shù)轉(zhuǎn)換以定時(shí)中斷的方式采樣,對(duì)原始數(shù)據(jù)的采樣頻率為50 kHz。
軟件的設(shè)計(jì)思路采用進(jìn)程快速循環(huán),以進(jìn)程標(biāo)志為判斷條件調(diào)用各個(gè)進(jìn)程,執(zhí)行相關(guān)控制。如圖3所示,用一個(gè)循環(huán)計(jì)數(shù)器的計(jì)數(shù)值來(lái)設(shè)置所有進(jìn)程的標(biāo)志。在以10 ms為周期的定時(shí)中斷服務(wù)程序中,該計(jì)數(shù)器值加1。每執(zhí)行一次TimeFlag(),都將計(jì)數(shù)器的值與每個(gè)進(jìn)程預(yù)定的執(zhí)行時(shí)間所對(duì)應(yīng)的計(jì)數(shù)值比較,得出進(jìn)程的標(biāo)志狀態(tài),從而使各進(jìn)程得以有序執(zhí)行。
3.2 S3C44BOX程序設(shè)計(jì)
對(duì)S3C4480x的程序設(shè)計(jì)涉及到VxWorks操作系統(tǒng):BSP(Board Surpport Package,板級(jí)支持包)的修改、操作系統(tǒng)的裁剪和應(yīng)用程序的設(shè)計(jì)幾個(gè)方面。
BSP是介于嵌人式系統(tǒng)硬件和操作系統(tǒng)之間的一層,屬于操作系統(tǒng)的一部分,主要目的是為了支持操作系統(tǒng),使之能夠更好地運(yùn)行于硬件。BSP的編程過(guò)程大多數(shù)是在某一個(gè)成型的BSP模板上進(jìn)行修改。根據(jù)本系統(tǒng)的硬件結(jié)構(gòu)和軟件應(yīng)用需求,BSP的修改需要實(shí)現(xiàn)以下目標(biāo):
(1)實(shí)現(xiàn)操作系統(tǒng)對(duì)TFFS(True FLASHFile System)文件系統(tǒng)的支持。TFFS是Vx-works兼容的一種文件系統(tǒng)。他為種類繁多的FLASH存儲(chǔ)設(shè)備提供了統(tǒng)一的塊設(shè)備接口。有了TFFS,應(yīng)用程序?qū)LASH存儲(chǔ)設(shè)備的讀寫就好像他們對(duì)擁有MS-DOS文件系統(tǒng)的磁盤設(shè)備的操作相同。建立好文件系統(tǒng)后,遠(yuǎn)程終端運(yùn)行的日志、系統(tǒng)配置參數(shù)、系統(tǒng)校準(zhǔn)參數(shù)、CDMA用戶名/密碼等便可以以文件的方式保存。
(2)實(shí)現(xiàn)對(duì)RTL8019以太網(wǎng)控制芯片的支持;實(shí)現(xiàn)通過(guò)FTP訪問(wèn)遠(yuǎn)程終端的文件系統(tǒng),這樣可對(duì)系統(tǒng)應(yīng)用程序在線升級(jí),下載日志文件;實(shí)現(xiàn)Telnet,可通過(guò)Telnet修改遠(yuǎn)程終端的配置參數(shù),對(duì)遠(yuǎn)程終端進(jìn)行維護(hù)。
圖4為VxWorks應(yīng)用程序主程序流程。當(dāng)Vx-Works完成啟動(dòng)后進(jìn)人應(yīng)用程序。應(yīng)用程序主程序完成各種初始化和各任務(wù)的創(chuàng)建,以及任務(wù)級(jí)看門狗的創(chuàng)建。
系統(tǒng)初始化包括對(duì)系統(tǒng)參數(shù)初始化、用iosDrvIn-stall()函數(shù)將CDMA設(shè)備驅(qū)動(dòng)添加到設(shè)備驅(qū)動(dòng)列表、用iosDevAdd()添加CDMA設(shè)備到I/O系統(tǒng)設(shè)備列表、硬件看門狗初始化。其中系統(tǒng)參數(shù)初始化中又包括日志文件檢查、系統(tǒng)配置參數(shù)加載、CDMA用戶名/密碼的檢驗(yàn)等。若文件系統(tǒng)上沒(méi)有相應(yīng)的參數(shù)文件則按照默認(rèn)參數(shù)創(chuàng)建文件。硬件看門狗芯片選用X5045。初始化設(shè)置看門狗的復(fù)位時(shí)間并啟動(dòng),由于。X5045看門狗芯片的復(fù)位時(shí)間最長(zhǎng)只能達(dá)到1.4 s,而VxWorks系統(tǒng)啟動(dòng)時(shí)間超過(guò)了1.4 s,為了不讓X5045產(chǎn)生的復(fù)位信號(hào)中斷VxWorks的啟動(dòng),要在VxWorks啟動(dòng)前將X5045禁用,這就需要修改BSP。在bootIn-it.c文件的romStart()函數(shù)的開始處添加禁止X5045復(fù)位的代碼。[!--empirenews.page--]
sysclkC20nnect()將函數(shù)ticklO ms()映射到Vx-Works的系統(tǒng)時(shí)鐘中斷。系統(tǒng)定時(shí)中斷周期設(shè)定為10 ms。tickloms()函數(shù)中判斷各任務(wù)軟件看門狗是否超時(shí)。若超時(shí)則程序進(jìn)入死循環(huán),并打印是哪個(gè)任務(wù)出錯(cuò)的信息,觸發(fā)硬件看門狗復(fù)位。
CDMAconnectTask()通過(guò)向CDMA模塊發(fā)送AT命令建立PPP連接。
timeTask()完成對(duì)CPU實(shí)時(shí)時(shí)鐘模塊的設(shè)置與讀取。
CDMATask()進(jìn)程建立與主站的socket連接。
commTask()進(jìn)程實(shí)現(xiàn)遠(yuǎn)程終端與監(jiān)控中心的數(shù)據(jù)包交換,將待發(fā)的數(shù)據(jù)幀打包發(fā)送至主站,將CDMA設(shè)備數(shù)據(jù)讀人緩沖區(qū),解析主站命令。
commTask430()進(jìn)程完成ARM與MSP430的數(shù)據(jù)交換。
dataTask()進(jìn)程對(duì)從MSP430上傳的數(shù)據(jù)進(jìn)行處理,包括計(jì)算采油機(jī)臂轉(zhuǎn)動(dòng)周期,通過(guò)負(fù)荷數(shù)據(jù)提取采油機(jī)的示功圖。
warnTask()實(shí)現(xiàn)系統(tǒng)實(shí)時(shí)告警,告警的類型有:負(fù)荷越界、壓力越界、溫度越界、三相電壓各相的越界、三相電流各相的越界以及紅外觸發(fā)。在檢測(cè)中若越界次數(shù)超過(guò)參數(shù)設(shè)定的數(shù)值則認(rèn)為產(chǎn)生一個(gè)告警。
pwrWarnTask()進(jìn)行掉電和來(lái)電的報(bào)警處理。
3.3 CDMA模塊的網(wǎng)絡(luò)連接建立
終端通過(guò)CDMA模塊建立PPP連接訪問(wèn)Inter-net,PPP為在點(diǎn)對(duì)點(diǎn)連接上傳輸多協(xié)議數(shù)據(jù)包提供了一個(gè)標(biāo)準(zhǔn)方法。PPP最初設(shè)計(jì)是為兩個(gè)對(duì)等節(jié)點(diǎn)之間的IP流量傳輸提供一種封裝協(xié)議,在TCP-IP協(xié)議集中它是一種用來(lái)同步調(diào)制連接的數(shù)據(jù)鏈路層協(xié)議(OSI模式中的第二層),替代了原來(lái)非標(biāo)準(zhǔn)的第二層協(xié)議,即SLIP。PPP攜帶了鏈路控制協(xié)議(LCP)、網(wǎng)絡(luò)控制協(xié)議(NCP)。為了使用VxWorks提供的PPP協(xié)議棧,在VxWorks中需加入PPP組件,如圖5所示。
VxWorks提供了一個(gè)類型為PPP_OPTIONS的結(jié)構(gòu)體來(lái)描述PPP參數(shù)??赏ㄟ^(guò)填寫PPP_OP-TIONS結(jié)構(gòu)體并將結(jié)構(gòu)體地址傳遞給pppInit()函數(shù)來(lái)實(shí)現(xiàn)對(duì)PPP參數(shù)的配置。初始化成功后PPP在鏈路層將自身連接到Vxworks的TCP/IP棧。PPP撥號(hào)連接建立成功后,所有的VxWorks IP網(wǎng)絡(luò)設(shè)備就可用了。這時(shí):PPP連接對(duì)于用戶是透明的。
S3C44BOX用AT命令控制DTGS-800 CDMA模塊。AT命令是由Hayes公司發(fā)明的控制調(diào)制解調(diào)器的一套命令集,現(xiàn)已成為事實(shí)上的標(biāo)準(zhǔn)并被所有調(diào)制解調(diào)器制造商采用。每條命令以字母“AT”開頭。不同型號(hào)的調(diào)制解調(diào)的AT命令有一定的差別。S3C44BOX發(fā)送AT命令來(lái)建立通行鏈路,撥號(hào)需要用到的AT命令有:
①發(fā)起呼叫ATD<nb>
<nb>為目標(biāo)號(hào)碼,該指令在PPP建立之前進(jìn)行。若返回CONNECT則數(shù)據(jù)呼叫建立成功。
②控制回顯ATEx
控制字符是否回顯,x=O則不回顯;x=1則回顯。
PPP連接建立步驟如圖6所示。CDMA_Init()函數(shù)填寫PPP_0PTIONS結(jié)構(gòu)體并初始化CDMA模塊使用的串口。撥號(hào)的號(hào)碼為“#777”用戶名密碼都為“CARD”。使用VxWorks提供的pppInit()函數(shù)完成PPP的初始化。pppInit()的返回值不能指示PPP連接的狀態(tài),它僅僅能返回連接是否被成功初始化。要確認(rèn)連接建立的成功需用pppInfoGet()。當(dāng)IPCP(Internet協(xié)議控制協(xié)議)的狀態(tài)為“OPENED”時(shí)表PPP連接建立成功。
4 結(jié) 語(yǔ)
從硬件和軟件等方面介紹了基于VxWorks的數(shù)據(jù)采集遠(yuǎn)程終端的設(shè)計(jì)和實(shí)現(xiàn)。該遠(yuǎn)程終端的核心架構(gòu)不僅適用于石油抽油井的遠(yuǎn)程數(shù)據(jù)傳輸與監(jiān)控,在其他領(lǐng)域也可以得到很好的應(yīng)用,例如電力監(jiān)控、遠(yuǎn)程抄表、工業(yè)控制、氣象數(shù)據(jù)采集、水紋監(jiān)控、水利監(jiān)控、地震檢測(cè)、交通信息發(fā)布等領(lǐng)域,具有很強(qiáng)的工程應(yīng)用價(jià)值,尤其適用于M2M(Machine to Machine)領(lǐng)域的應(yīng)用及應(yīng)用系統(tǒng)的開發(fā)。當(dāng)要作具體應(yīng)用時(shí),只需要根據(jù)具體情況選擇相應(yīng)的傳感器并對(duì)軟硬件做一定的修改即可完成,因此具有廣泛的應(yīng)用前景。