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