針對(duì)在工業(yè)污水監(jiān)測(cè)過程當(dāng)中,污水流量監(jiān)測(cè)儀器所監(jiān)測(cè)到的數(shù)據(jù)往往是通過各種模擬信號(hào)或簡(jiǎn)單的串口數(shù)字量來傳輸數(shù)據(jù),但其傳輸距離較短、數(shù)據(jù)傳輸不穩(wěn)定,無法擴(kuò)展多個(gè)監(jiān)測(cè)儀器等缺點(diǎn)。鑒于此,本文介紹了一種軟硬件相結(jié)合的超聲波流量計(jì)實(shí)時(shí)采集和系統(tǒng),該系統(tǒng)很好的彌補(bǔ)了以上缺點(diǎn),它具有傳輸距離遠(yuǎn)、運(yùn)行穩(wěn)定、容錯(cuò)性強(qiáng)、操作方便以及受環(huán)境影響小等特點(diǎn),滿足了工業(yè)污水監(jiān)測(cè)要求。
在工業(yè)污水處理自動(dòng)監(jiān)測(cè)系統(tǒng)中,監(jiān)測(cè)中心需要連續(xù)、實(shí)時(shí)地采集各種環(huán)境監(jiān)測(cè)儀器的數(shù)據(jù),以便子站或控制中心維護(hù)人員獲得子監(jiān)測(cè)點(diǎn)的各種環(huán)境 信息,用監(jiān)測(cè)到的數(shù)據(jù)分析環(huán)境監(jiān)測(cè)子站的運(yùn)行狀態(tài)以及執(zhí)行情況。通過長(zhǎng)期采集并儲(chǔ)存的數(shù)據(jù)信息,可以分析并總結(jié)歸納出一個(gè)地方的水質(zhì)信息和排污信息。
目前,用于水質(zhì)在線監(jiān)測(cè)污水流量一般采用硬件設(shè)備(如明渠流量計(jì)),或使用4-20mA直流電流模擬量或者簡(jiǎn)單的串口數(shù)字量來傳輸數(shù)據(jù),這兩種 傳輸方式都存在采集數(shù)據(jù)傳輸距離比較短、數(shù)據(jù)傳輸不穩(wěn)定,無法擴(kuò)展多個(gè)監(jiān)測(cè)儀器等缺點(diǎn)。而且系統(tǒng)采用的硬件設(shè)備比較昂貴,維護(hù)相對(duì)困難,在水質(zhì)監(jiān)測(cè)潮濕和惡劣的環(huán)境下容易被腐蝕,造成儀器無法正常使用,嚴(yán)重的甚至使儀器徹底報(bào)廢,影響整個(gè)監(jiān)測(cè)系統(tǒng)的正常運(yùn)行。
基于此,本文提出了一種軟硬件相結(jié)合的數(shù)據(jù)采集和系統(tǒng)。相比于先前的監(jiān)測(cè)系統(tǒng),本監(jiān)測(cè)系統(tǒng)不僅支持遠(yuǎn)距離數(shù)據(jù)傳輸,而且傳輸數(shù)據(jù)穩(wěn)定、可靠,而且通過RS485總線可擴(kuò)展多個(gè)超聲波監(jiān)測(cè)點(diǎn)。同時(shí)在終端機(jī)上也提供給了友好的人機(jī)界面,用戶可以方便的和查詢系統(tǒng)的運(yùn)行情況。在潮濕和悶 熱的水質(zhì)監(jiān)測(cè)環(huán)境下,本系統(tǒng)是比較可靠的一種數(shù)據(jù)采集和方式。
1硬件系統(tǒng)基本概況
如圖1所示是系統(tǒng)的硬件結(jié)構(gòu)圖,硬件系統(tǒng)采用RS485總線結(jié)構(gòu)來進(jìn)行數(shù)據(jù)的采集和傳輸。圖中測(cè)量?jī)x器a為重慶兆易公司生產(chǎn)的RISENⅢ超聲 波物位儀, 轉(zhuǎn)換器 b 為 ATCATC-106無源RS-232轉(zhuǎn)RS-485接口轉(zhuǎn)換器,終端控制機(jī)是Arm7嵌入式計(jì)算機(jī)。硬件系統(tǒng)的主要功能是提供軟件系統(tǒng)所需要的超聲波換 能器的頭部到水面的距離h,從而計(jì)算出污水流量。該硬件系統(tǒng)能提供了穩(wěn)定可靠的數(shù)據(jù)源,且支持多節(jié)點(diǎn)采集數(shù)據(jù),易于擴(kuò)展采集接口設(shè)備,寬接入性能好,從而 節(jié)約了成本。
2系統(tǒng)軟件設(shè)計(jì)
基于環(huán)境在線監(jiān)測(cè)的實(shí)時(shí)性要求,我們采用源碼對(duì)外開發(fā)可裁剪的ucos—II操作系統(tǒng),并可根據(jù)實(shí)際需求對(duì)其裁剪和增加。使用ADS1.2編程 環(huán)境作為本系統(tǒng)的開發(fā)工具,采用64Mbs的Flash來存儲(chǔ)流量數(shù)據(jù)。整個(gè)系統(tǒng)軟件設(shè)計(jì)包括三個(gè)大部分:數(shù)據(jù)的采集和處理、流量數(shù)據(jù)的顯示和存儲(chǔ)以及人 機(jī)界面的設(shè)計(jì)。
2.1、流量數(shù)據(jù)的采集和處理
流量計(jì)的數(shù)據(jù)采集需根據(jù)超聲波流量計(jì)的數(shù)據(jù)傳輸協(xié)議來進(jìn)行編程制定。其傳輸協(xié)議采用了半雙工異步方式,波特率為9600bps。每幀數(shù)據(jù)有20 個(gè)字節(jié),每個(gè)字節(jié)有11位二進(jìn)制。握手方式采用主機(jī)發(fā)送地址號(hào)(1~128)二進(jìn)制源碼(0x01)之后查詢接收數(shù)據(jù),也就是得到圖1中所示的液面高度 h。從機(jī)以中斷方式應(yīng)答,每次發(fā)送20個(gè)字節(jié)的方式。而數(shù)據(jù)的儲(chǔ)存則跟程序里面定義的結(jié)構(gòu)體函數(shù)的關(guān)鍵字有關(guān)。
(1)采集數(shù)據(jù)頻率分析:在本系統(tǒng)中采集間隔為10秒鐘,數(shù)據(jù)入庫頻率分為10秒鐘/次、10分鐘/次、1小時(shí)/次、1天/次等幾種。每10秒鐘程序向探頭采集1次數(shù)據(jù),計(jì)算出的瞬時(shí)數(shù)據(jù)為) 那么這10秒鐘的流量為10×N( ),這些瞬時(shí)數(shù)據(jù)通過內(nèi)存來存儲(chǔ)并一直累加到10分鐘;每10分鐘為一個(gè)間隔,那么這10分鐘內(nèi)共有10×6次采集,這些采集的10秒數(shù)據(jù)通過累加得到 10分鐘值,得到的值進(jìn)行入庫;每小時(shí)達(dá)到后進(jìn)行小時(shí)值計(jì)算,小時(shí)值的計(jì)算為各個(gè)10分鐘累加值。每天(23:59:59)計(jì)算天值1次,天值為當(dāng)日小時(shí) 值累加。每天(23:59:59)將天值加到累加值(Milage)中,Milage的初始值為0,累加的時(shí)間范圍為流量計(jì)開始工作至流量計(jì)停止這段時(shí) 間。
(2)流量算法:在使用標(biāo)準(zhǔn)巴歇爾槽進(jìn)行流量測(cè)量時(shí),流經(jīng)巴歇爾槽的水流量Q與水位高h(yuǎn)及槽的尺寸b的關(guān)系可以用以下公式計(jì)算:
2.2流量數(shù)據(jù)存儲(chǔ)
在本系統(tǒng)中,采用Flash存儲(chǔ),存儲(chǔ)內(nèi)容包括了以下內(nèi)容:流量計(jì)槽型,槽號(hào),槽高,瞬間值,累計(jì)流量;系統(tǒng)當(dāng)前時(shí)間;定時(shí)上報(bào)時(shí)間;實(shí)時(shí)上報(bào)時(shí)間間隔;測(cè)量數(shù)據(jù)。數(shù)據(jù)根據(jù)時(shí)間順序存儲(chǔ),30秒為1個(gè)記錄。
如果某個(gè)儀器沒有數(shù)據(jù)則其數(shù)據(jù)位為以符號(hào)“ -”表示。參數(shù)存儲(chǔ)在EEPROM物理位置如下:系統(tǒng)初始化值:0x0000-0x0010;系統(tǒng)口令: 4Byte,0x0010-0x0017當(dāng)前槽型: 1Byte 0x0018-0x001f;當(dāng)前槽高: 8Byte 0x0020-0x0027當(dāng)前瞬間值:10Byte 0x0028 -0x0037;累計(jì)流量:13Byte0x0038-0x0047在本系統(tǒng)中,當(dāng)存儲(chǔ)滿3條時(shí),系統(tǒng)會(huì)自定將所有數(shù)據(jù)從EEPROM(64K)中存入到 Flash(64M)中,進(jìn)行數(shù)據(jù)備份,然后原區(qū)域用0x00清空。
采集流量的結(jié)構(gòu)體函數(shù)如入下:
3系統(tǒng)初始化代碼編寫流程
在嵌人式系統(tǒng)中,啟動(dòng)時(shí)用于完成初始化操作的這段代碼被稱為Boot.1oader程序。通過這段程序,可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖。從而將系統(tǒng)的軟硬件環(huán)境設(shè)定在一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核、運(yùn)行用戶應(yīng)用程序準(zhǔn)備好正確環(huán)境。本系統(tǒng)的Boot.1oader流程 圖如圖2所示。
3.1操作系統(tǒng)
uc/os-II在LPC2138上的移植在本系統(tǒng)中采用了Arm7嵌入式計(jì)算機(jī)LPC2138為主控芯片,芯片內(nèi)部?jī)?nèi)置了寬范圍的串行通信接口和512kB的Flash存儲(chǔ)系統(tǒng),提供了大規(guī)模的緩沖區(qū)和強(qiáng)大的處理功能,非常適合于嵌入式系統(tǒng)的開發(fā)和應(yīng)用。
系統(tǒng)采用的操作系統(tǒng)為uc/os-II。uc/os-II是一種源碼公開的實(shí)時(shí)嵌入式操作系統(tǒng)。它是一種占先式的實(shí)時(shí)內(nèi)核,是基于優(yōu)先級(jí)的,即 總是讓就緒態(tài)中優(yōu)先級(jí)最高的任務(wù)先運(yùn)行,因此實(shí)時(shí)性比非占先式的內(nèi)核要好。它包含了實(shí)時(shí)內(nèi)核、任務(wù)管理、時(shí)間管理、任務(wù)間通信同步(信號(hào)量、郵箱、消息隊(duì) 列)和內(nèi)存管理等功能:它的絕大部分代碼是用C語言編寫的,可移植性強(qiáng)。 uc/os-II在LPC2138上的移植所采用的編譯器為ARM ADS自帶的C語言編譯器。具體做法主要包括:聲明10個(gè)與編譯器相關(guān)的數(shù)據(jù)類型(包括堆棧的數(shù)據(jù)類型),用#de-fine設(shè)置一個(gè)常量 (OS_CPU.H),表明堆棧的增長(zhǎng)方向;用C語言編寫6個(gè)與操作系統(tǒng)相關(guān)的函數(shù)(OS_CPU_C.C);任務(wù)堆棧初始化函數(shù);用匯編語言編寫4個(gè)與 處理器相關(guān)的函數(shù)和5個(gè)鉤子函數(shù):
(1)OSStartHighRdy0,用于在調(diào)度中使最高優(yōu)先級(jí)的任務(wù)處于就緒態(tài)并開始執(zhí)行,uC/OS-II啟動(dòng)時(shí)使用OSStartHighRdy運(yùn)行第一個(gè)任務(wù);
(2)OSCtxSw0。完成任務(wù)級(jí)的上下定義切換;
(3)OSIntCtxSw0。完成中斷級(jí)任務(wù)切換,其過程與OSCaSw0類似。只是在執(zhí)行中斷服務(wù)子程序后可能使更高優(yōu)先級(jí)的任務(wù)處于就緒態(tài),即中斷退出時(shí)的入口;
(4)SoftwareInterrupt是軟件中斷,用于提供一些系統(tǒng)服務(wù)。
3.2容錯(cuò)機(jī)制(程序的健壯性)
3.1.1查詢?nèi)蒎e(cuò)機(jī)制
查詢時(shí)刻值和時(shí)段值必須按格式才能實(shí)現(xiàn),如果格式輸入錯(cuò)誤將彈出錯(cuò)誤對(duì)話框提示用戶用正確的格式輸入,輸入的格式分別按(yyyy-mm-dd hh:mm:ss)時(shí)間格式輸入;如果查詢時(shí)沒有該時(shí)刻或者該時(shí)段數(shù)據(jù),系統(tǒng)將彈出數(shù)據(jù)庫無該時(shí)刻或者該時(shí)段對(duì)話框;查詢時(shí)段值時(shí)如果該時(shí)段的數(shù)據(jù)比較繁 多,無法正常顯示時(shí),將提示用戶縮小范圍進(jìn)行查詢。
3.2.2系統(tǒng)運(yùn)行容錯(cuò)機(jī)制
系統(tǒng)將不斷監(jiān)測(cè)串口的運(yùn)行情況,如發(fā)現(xiàn)串口出現(xiàn)異?,F(xiàn)象,將在人機(jī)界面中顯示出來。如果發(fā)現(xiàn)出現(xiàn)采集到異常數(shù)據(jù),系統(tǒng)將彈出報(bào)警對(duì)話框(出現(xiàn)超 標(biāo)數(shù)據(jù)!!! ),通知用戶進(jìn)行相應(yīng)的排除故障的操作,并將出錯(cuò)信息入庫。用戶也可以通過查詢出錯(cuò)信息的方式得知系統(tǒng)出錯(cuò)的原因以及時(shí)間等等。
4程序的人機(jī)界面設(shè)計(jì)
此部分主要完成人機(jī)對(duì)答,數(shù)據(jù)查詢,定時(shí)發(fā)送和定時(shí)采集時(shí)間設(shè)定等功能。實(shí)現(xiàn)人機(jī)智能化操作的目的。其系統(tǒng)啟動(dòng)界面、運(yùn)行界面、定時(shí)采樣及實(shí)時(shí) 上報(bào)時(shí)間間隔設(shè)置界面如圖3所示。在運(yùn)行界面中,采集時(shí)間按照年月日分秒來計(jì)如,年是后兩位,如圖3所示中的081202142342表示08年12月2 日14點(diǎn)23分42秒。“ TFF”兩位表示如下(從左至右):
是否登陸到中心 T(是)/F(否)
流量通信是否正常 T(是)/F(否)備用
備用 T(是)/F否)
本文提出了一種新型的軟硬件相結(jié)合的超聲波物位儀數(shù)據(jù)采集系統(tǒng),說明了該系統(tǒng)的軟件和硬件組成結(jié)構(gòu)。分析了該系統(tǒng)的特點(diǎn)和組成結(jié)構(gòu),闡述了軟件的實(shí)現(xiàn)過程以及軟件的運(yùn)行機(jī)制和運(yùn)行情況等。本監(jiān)測(cè)系統(tǒng)不但運(yùn)行穩(wěn)定、適應(yīng)環(huán)境性強(qiáng),而且界面友,容錯(cuò)機(jī)制強(qiáng)。
本文作者創(chuàng)新點(diǎn):本文采用成本比較低廉的聲波物位儀與源碼對(duì)外免費(fèi)開放的uc/os-II嵌入式系統(tǒng)相結(jié) 合,提出了一種新型的軟硬件相結(jié)合的環(huán)境數(shù)據(jù)采集和系統(tǒng),該系統(tǒng)容錯(cuò)機(jī)制強(qiáng)、擴(kuò)展性能好、其外接監(jiān)測(cè)設(shè)備的寬接入性能高,滿足當(dāng)前環(huán)境數(shù)據(jù)采集和監(jiān)測(cè)系統(tǒng)的需求。