習海旭, 張 杰, 時國龍, 李民強
(1.江蘇理工學院 計算機工程學院,江蘇 常州 213001;2.中國科學院合肥智能機械研究所 智能傳感器件研究中心,安徽 合肥 230031)
水是重要的環境要素之一, 也是人體的重要組織成分[1]。然而隨著我國人口數量的持續增長,資源消耗、能源需求的迅速增長[2],水總量的減少引起水污染加劇,水資源的供需矛盾越來越突出[3]。食用水不僅受日常污染,更受有毒有害離子污染,實時監測飲用水中重金屬元素的濃度,對人類生產生活具有及其重要的意義[4]。
目前水中離子的檢測多數使用離線檢測,即取水后異地測試,這種測試方式的缺點是樣品在采集、運輸、檢測等過程中受到的污染較為嚴重,因而影響到了測試結果的準確性,而且整個測試的周期很長[5]。世界上當前最先進的測試方式是全自動現場實時監測待測地水中的元素含量,通過網絡手段實時反映水中各微量含量的變化。這種方式最大的優點在于能夠獲得水中微量元素含量變化的連續記錄[6]。相比與傳統測試儀器,該儀器操作簡單、成本較低、針對性強、測試精度高,自動化程度高,能夠實現無人值守和遠程無線控制,使飲用水中有害離子實現實時快速監測成[7]。
本文設計的基于GPRS的嵌入式無線控制系統總體設計,分為硬件和軟件設計,主要包括信號采集與處理系統,自動控制系統,系統集成與人機界面軟件,無線通信監測模塊等。自動控制系統主要實現水樣和測試試劑的自動精確進樣控制及測試儀器的常用遠程控制功能;信號采集與處理系統通過數據采集卡采集檢測電路中的信號,轉換并進行去噪處理,形成離子溶度數據;無線通信監測模塊實時監測數據和控制信號,按需通過實地測試儀上安裝的支持串口數據傳輸的無線數據發送和接收模塊和室內設立的監測服務器進行數據和信號的交互;系統集成于人機界面將接收到的數據和業務流程進行統一管理,提供給操作員使用系統的友好界面。該系統具有操作簡單、低成本、針對性強、測試精度高,自動化程度高等優點的同時,能夠實現無人值守和遠程無線控制現場實時快速監測。
該系統所涉及的數據通信和控制網絡區域范圍比較廣,包括智能研究所、北京的管理部門、水樣檢測示范地及服務器機房所在地。地區之間的通信都基于移動網絡和Internet網。在水樣檢測過程中,水樣的離子溶度測試數據首先被保存在現場測試儀器的硬盤中,之后利用無線數據傳輸模塊將數據發送至遠程的中心服務器端,智能所的測試人員能夠在實驗室環境內利用數據管理系統軟件查看離子溶度數據并進一步處理。測試人員也可以根據實際需要,在指定的時間遠程啟動分析儀,待其測試完畢之后數據會自動發送至服務器端,所處理的數據按照需要可報送至北京有關管理部門,以便其查看統計。
系統整體工作流程見圖1。系統開始工作時,測試人員通過網址登錄遠程控制與實時監測主界面,選擇示范地監測點,設置或選擇相應的系統參數,確定后主界面指示分析儀的通訊狀況(正常、不正常),分析儀的數據發送時間,飲用水處理前后的砷、氟濃度等信息。研究人員可以點擊主界面上的開啟按鈕,系統將會檢測GPRS模塊、下位機等網絡及設備連接是否正常,通過Internet網絡把指令發送到位于下位機處的GPRS模塊。然后遠程控制處理系統通過串口接收GPRS模塊發送的指令啟動并且遠程啟動現場測試儀器,原始數據也可通過點擊主界面進行下載。

圖1 自動檢測系統工作流程圖
無線控制水樣檢測系統整體結構如圖2所示。系統主要由①信號采集與處理模塊,②自動控制模塊,③系統集成與人機界面模塊,④無線通信監測模塊四部分組成。自動控制模塊具有液體自動進樣和遠程控制功能。其中液體自動進樣系統包括水樣采集系統、離子檢測自動進樣系統的軟硬件設計,通過測量儀器的功能設定和所需自動進樣試劑的種類,自動抽取大量液體,精確加入微量標準液,接收遠程控制信號,驅動相關硬件系統協調工作。信號采集與處理模塊包括水樣自動檢測和數據處理系統,包括檢測系統的電路設計、硬件設計和離子檢測的軟件設計及差分脈沖溶出伏安法數據處理中的小波分析[8]軟件等,實現水樣中離子的自動監測,數據轉換和信號去噪分析,從而快速準確得到水樣中離子的濃度。無線通信監測模塊具有信號監測和無線數據傳輸功能,它采用GPRS技術[9],自動監測所獲得的數據,控制中心服務器端和遠程自動控制、檢測模塊之間的數據和控制指令的傳輸。系統集成與人機界面模塊包括數據伺服系統和數據管理系統功能,數據伺服系統在中心服務器端接收數據和發送控制指令。數據管理系統是基于數據庫技術的信息管理系統,它是用戶與自動控制、檢測系統交互的界面,它包括實時數據曲線顯示、日常業務管理功能。數據庫由示范地地址相關信息表和離子溶度值表組成,采用可視化曲線顯示離子溶度和變化趨勢,對超出安全標準值的示范地點進行報警并對傳回自動控制、檢測系統的控制信息進行參數修正。

圖2 自動檢測系統結構圖
無線通信監測模塊監測到計算機數據處理系統處理過后的數據,啟動無線數據傳輸功能模塊,將數據通過GPRS模塊發送到中心服務器中,中心服務器的數據伺服系統啟動線程,實時接收傳輸過來的數據,將數據進行拆分,寫入數據管理系統的數據庫對應表中。數據傳送原理圖如圖3所示。

圖3 文本數據的發送流程圖
本系統數據實時曲線的繪制采用IOCOMP控件,它是常用的第三方繪圖控件,具有強大的繪圖功能,能根據需要實時繪制不同線型、不同寬度、不同顏色的曲線。它主要包含iPlot、iXYPlot和iScope三個方面的繪圖功能,iPlot顯示了該控件繪制圖表的功能。iXYPlot功能是iPlot的擴展功能,它用在當X軸的值不是一直增加或者減少的條件下,當使用它時,需要對一些繪圖特征和速度等進行設置。iScope是對基于硬件的數字模擬電路事務的直接顯示,需要數據采集卡傳輸數據與之匹配[10]。
控件具有多個子對象接口,如通道、坐標軸等,許多重要的性質和方法都影響著控件的功能,它們分布在控件的主界面上。例如,打印機配置、背景和喜好等功能配置都分部在主界面上。通道接口和主界面接口的相似之處是它們具有相同的文件I/O功能接口,主界面的文件接口方法和性質屬于圖表中全部外部接口,而外部接口文件接口方法屬于特定的接口。分析儀測試顯示的連續曲線如圖4所示。
RS232又被稱做EIA-232-E,是一種工業標準[11],它的作用是確保各個工廠產品之間兼容性并于1962年發布。美國電子工業協會也規定了一個通用串行接口規范EIARS232-C[12]。由于RS232屬于單端信號傳送,所以它的傳輸距離比較短。而且傳送時具有共模噪聲等弊端,所以RS232通常適用20 m內的通訊。RS485繼RS232之后產生,它能夠彌補RS232傳送速度低和傳輸距離小等缺陷。RS485具有多點和雙向的通訊能力,發送器的動力和出錯保護機制也得到了有效的提高。

圖4 分析儀測試顯示的連續曲線
因為通用串行通訊是上位機和別的硬件裝置之間產生通訊的常用手段,微軟公司的Windows在操作系統下提供了多種實現串口通信的應用程序接口函數[13]。串口在使用前需經過初始化,串口的初始化操作完成以后,接下來就可以進行讀操作和寫操作。串口的讀寫函數聲明如下[14]:
BOOL ReadComm(HANDLE Comm, //串口端口的句柄
LPVOID ComBuffer, // 設置讀取的數據的字節個數
WORD, // 指向一DWORD類型的數值
LPDWORD NumberOfBytesRead, // 重復操作時,該參數指向一個OVERLAPPED 結構,如果是同步操作,該參數為空。
LPOVERLAPPED Overlapped);
BOOL WriteComm( HANDLE Comm, //串口端口的句柄
LPCVOID lpBuffer,
WORD NumberOfBytesToWrite, //定義寫入字型數據的個數
LPDWORD NumberOfBytesWritten, // 重復操作時,該參數指向一個OVERLAPPED結構,如果同步操作,該參數為空。
LPOVERLAPPED lpOverlapped);
MSCOMM是由微軟公司開發的Windows環境下串口編程ActiveX控件[15],有了這個控件,程序員不用消耗過多時間去編寫復雜的應用程序接口(API)函數,使用起來非常便捷。上位機實現對蠕動泵的精確控制,需要建立合理完善的通訊控制協議。外控接口DB15-2連接的是485-B;DB15-3連接的是485-A。通訊協議的幀格式為flaghead(幀首) + address + length + pdua + fcsb。其中flaghead以E9H作幀首,傳輸時,幀頭以后的所有內容中,若出現E8H,則以E8H、00H代替。若出現E9H,則以E8H、01H代替。接收時將E8H、00H恢復為E8H,將E8H、01H恢復為E9H。address為一個字節的地址,范圍是1~31;length代表pdua的字節個數;fcsb為address、 length 、pdua的異或。pdua應用層編碼數據的部分內容如下:
(1) 讀取運行參數RJ。
應答:RJ+速度2byte+滿速、運行狀態1byte+正反轉1byte。
(2) 設置設備地址WID+新地址1 byte。
應答:WID
(3) 讀取設備地址:RID。
應答:RID,addr只能是泵的地址(1~30)。用于驗證所設地址的正確性。
在通訊協議中W、R、J、I、D分別對應ASCII碼值57H、52H、4AH、49H、44H;轉速高字節在前,低字節在后,最高轉速為50.0 r/min,即01F4H;全速、啟停狀態字節中的BIT0表示啟停狀態位,1表示運行,0表示停止;BIT1表示全速狀態位,1表示全速運行,0代表正常運轉;真反轉字節中,BIT0為正反狀態位,1代表正轉,0代表反轉;address位自定義為1。例如,設定蠕動泵(地址02)為正轉,速度是25 rpm,指令是:E9 02 06 57 4A 00 FA 01 01 E3。
注射泵可通過RS-232或RS-485兩種接口方式和上位機進行通訊,它支持兩種通訊協議,一種是OEM協議,另一種叫DT(終端)協議。OEM協議提供了增強的錯誤校驗,即采用了校驗和序號。其中,每幀數據以STX為幀頭,ETX為幀尾,校驗和是整個數據塊的終止。泵的地址從31H-3FH;序號為定值31H;數據塊由命令和參數構成,全部用ASCII表示,低位在后,高位在前,如I1000: 5 byte,表示為49 31 30 30 30。校驗和是數據串中最后一個字符,是從STX到ETX所有數據的異或(包括STX、ETX)。
蠕動泵的常用控制命令解析如下:E9 01 06 57 4A 01 F4 01 01 EF,其中E9H作幀頭,首個01H表示地址,06H代表pdu的長度,57H、4AH分別是W、J的ASCII碼值,01F4H表示全速運行,第二個01中,BIT0位為1表示運行,BIT1為0表示正常運行,第三個01H的BIT0位表示旋轉方向為順時針,EF是address、length、pdua的異或。如果需要讓蠕動泵反轉,將第三個01H的BIT0位改為0,然后重新計算addr、len、pdu的異或。對蠕動泵做停止操作,將第二個01H的BIT0位改為0,然后重新計算addr、len、pdu的異或。
對注射泵控制,首先要輸入固定命令 02 31 31 5A 52 03 09,02H代表一幀數據的開始,31H表示泵的地址,第二個31H是定值,5AH是Z的ASCII碼值表示初始化活塞,52H是R的ASCII碼值表示執行當前命令,03H代表一幀數據的結尾,09H是從STX到ETX所有數據的異或(包括STX和ETX)。
將注射泵的閥移動到輸入位置并抽取砷標準液然后排出需要執行命令:02 31 31 49 41 31 30 30 30 4F 41 30 52 03 64,其中02H代表一幀數據的開始,31H表示泵的地址,第二個31H是定值,49H是I的ASCII碼值表示移動閥到輸入口位置,41H是A的ASCII碼值表示命令移動活塞到絕對位置,31H、30H、30H、30H分別是字符1、0、0、0的ASCII碼值,4FH是O的ASCII碼值表示移動閥到輸出口位置,41H是A的ASCII碼值表示命令移動活塞到絕對位置,30H是字符0的ASCII碼值,52H是R的ASCII碼值表示執行當前命令,03H代表一幀數據的結尾,64H是從STX到ETX所有數據的異或(包括STX和ETX)。
實時監測飲用水中有害離子的含量在生態環境檢測、臨床、食品方面具有極其顯著的意義,對人們的生活健康極其重要?;贕PRS技術的嵌入式無線控制系統實現監測儀器的遠程啟動以及測試完畢的數據的自動發送,在具有操控簡單、低成本、針對性強、檢測精度高,全自動程度高等優點的同時,完全實現無人看守和遠距離無線操控,使飲用水中有害離子的現場實時快速監測成為可能。
[1] 楊延軍, 劉 建. 淺談水污染對人體健康的影響與危害[J]. 吉林水利, 2003,255(11):37-40.
YANG Yan-jun, LIU Jian. Discussion on the Influence and Harm of Water Pollution to Human Health[J]. Jilin Water Resources, 2003,255(11):37-40.
[2] Gordon G E, Receptor models [J]. Environmental Science & Technology, 1988, 22(10):1132-1142.
[3] Lee J H, Gigjiotti C L, Offenberg J H, etal. Sources of polycyclic aromatic hydrocarbons to the Hudson River Airshed [J]. Atmospheric Environment, 2004, 38(35):5971-598.
[4] 王銀瓶, 潘躍峰, 李 毅, 等. 海水痕量重金屬元素現場自動識別技術[J]. 浙江大學學報(工學版), 2007, 41(2): 230.
WANG Yin-ping,PAN Yue-feng,LI Yi,etal. In-situ auto-analysis technique of trace heavy metal in seawater [J]. Journal of Zhejiang University(Engineering Science), 2007, 41(2): 230.
[5] 王銀瓶. 海水重金屬元素現場分析儀器的軟件設計[D]. 杭州:浙江大學, 2006.
[6] 潘躍峰. 水污染動態監測的電子舌分析儀的設計[D]. 杭州:浙江大學, 2007.
[7] 韓 薇, 劉大偉, 肖文英. 陽極溶出伏安法測定血鉛[J]. 中外醫療, 2008(4): 66.
HAN Wei, LIU Da-wei, XIAO Wen-yin. Determination of lead in blood by anodic stripping voltammetry [J]. China Foreign Medical Treatment, 2008(4): 66.
[8] 孫 濤, 張宏建. 基于一階差分法的粗差剔除方法[J]. 儀器儀表學報, 2002, 23(2): 197.
SUN Tao, ZHANG Hong-jian. A Method of Outlier Detection and Correction Based on First Order Differential[J]. Chinese Journal of Scientific Instrument, 2002, 23(2): 197.
[9] 周積強. 基于GPRS的接地電阻自動檢測系統設計[J]. 氣象水文海洋儀器, 2011,12(4):57-64.
ZHOU Ji-qiang. Automatic test system for grounding resistance based on GPRS [J]. Meteorological,Hydrological and Marine Instruments, 2011,12(4):57-64.
[10] 紀友哲,祁曉野,楊明綏. Delphi實現基于OPC的PLC以太網監控[J]. 工業控制計算機, 2006,19(7):31-34.
JI You-ze, QI Xiao-ye, YANG Ming-sui. Using Delphi to realize the Supervising and Control of PLC by Ethernet Communication Based on OPC[J]. Industrial Control Computer, 2006,19(7):31-34.
[11] 李駒光,鄭 耿. 基于串行通信的應用程序開發[J]. 電腦編程技巧與維護,2006(2):76-80.
LI Ju-guang,ZHENG Geng. Development of applications based on serial communication[J]. Computer Programming Skills & Maintenance,2006(2):76-80.
[12] 黃天戍,祁 昶,向繼東.基于并行方式的LonWorks串口適配器的實現[J]. 工業控制計算機, 2002,15(7):16-17,44.
HUANG Tian-shu, QI Yong, XIANG Ji-dong. Realization of LonWorks serial adapter based on parallel mode [J]. Industrial Control Computer, 2002,15(7):16-17,44.
[13] 韓雪連,王 勇. 基于Windows CE的串口通信的研究[J]. 電子測試, 2010,2(2):73-79.
HAN Xue-lian, WANG Yong. Explore the principles of serial port communiciation[J]. Electronic Test, 2010,2(2):73-79.
[14] 吳龍華,郝青芳,李 凌. 潮汐模擬及其自動測控系統的設計與實現[J]. 實驗室研究與探索, 2008,27(5):20-22.
WU Loing-hua, HAO Qing-fang, LI Ling. Design and Realization of Tide Simulation and Its Automatic Measurement and Control System[J]. Research and Exploration in Laboratory, 2008,27(5):20-22.
[15] 張 群,楊 絮,張正言,等. 藍牙模塊串口通信的設計與實現[J]. 實驗室研究與探索, 2012,31(3):79-82.
ZHANG Qun,YANG Xu,ZHANG Zheng-yan,etal. Design and Realization of Serial Communication in Bluetooth Module[J]. Research and Exploration in Laboratory, 2012,31(3):79-82.