《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 污水處理在線監(jiān)測系統(tǒng)研究
污水處理在線監(jiān)測系統(tǒng)研究
來源:微型機與應(yīng)用2011年第23期
蒲 旺1,郝小江2,竇小磊3
(1.中國石油川慶鉆探工程公司科技信息處,四川 成都 610051; 2.攀枝花學(xué)院 電氣信息工程學(xué)
摘要: 針對當(dāng)前污水處理沒有實現(xiàn)自動控制和污水處理工藝分散的特點,設(shè)計了基于CAN總線結(jié)構(gòu)的污水處理集散控制系統(tǒng)(DCS)模型構(gòu)建一體化氧化溝的整個控制系統(tǒng)。用CAN總線對上位機與下位機之間進行數(shù)據(jù)通信,解決了多臺設(shè)備監(jiān)控的實時傳輸。對CAN總線和DeviceNet協(xié)議作了詳細的解釋,并給出了DLL以及DeviceNet協(xié)議中控室的應(yīng)用程序。
Abstract:
Key words :

摘  要: 針對當(dāng)前污水處理沒有實現(xiàn)自動控制和污水處理工藝分散的特點,設(shè)計了基于CAN總線結(jié)構(gòu)的污水處理集散控制系統(tǒng)(DCS)模型構(gòu)建一體化氧化溝的整個控制系統(tǒng)。用CAN總線對上位機與下位機之間進行數(shù)據(jù)通信,解決了多臺設(shè)備監(jiān)控的實時傳輸。對CAN總線和DeviceNet協(xié)議作了詳細的解釋,并給出了DLL以及DeviceNet協(xié)議中控室的應(yīng)用程序。
關(guān)鍵詞: CAN總線;DeviceNet協(xié)議;DCS

 當(dāng)今世界的水環(huán)境面臨兩大問題:水資源短缺和水污染加重。造成水污染的主要原因是工業(yè)廢水、農(nóng)田排水及城鄉(xiāng)生活污水向江河湖海大量排放,造成地面水和地下水水質(zhì)受到污染,嚴(yán)重制約了經(jīng)濟的發(fā)展并危害著人類的健康,因此,近年來各國對控制水污染越來越引起重視,全球都在加大和加快水污染治理的力度和速度。我國污水處理設(shè)備的制造水平和科技含量都比較低,本文對污水處理設(shè)備在線監(jiān)測系統(tǒng)設(shè)計方案進行分析,并對其軟件開發(fā)提供了一定的指導(dǎo)作用[1-2]。
1 污水處理系統(tǒng)現(xiàn)狀
 目前,對污水處理系統(tǒng)運行狀況進行在線監(jiān)測已成為發(fā)展趨勢,國外已開發(fā)出一些污水處理在線監(jiān)測系統(tǒng),并設(shè)計了一些基于神經(jīng)網(wǎng)絡(luò)、小波變化、專家系統(tǒng)等技術(shù)的診斷軟件。現(xiàn)有的污水處理在線監(jiān)測系統(tǒng)設(shè)計方案大多采用傳統(tǒng)的上下位機結(jié)構(gòu)。下位機完成現(xiàn)場設(shè)備運行狀況和污水處理狀態(tài)信號的在線監(jiān)測,大多采用工控機和單片機來實現(xiàn)。上位機負責(zé)污水處理狀態(tài)參數(shù)的監(jiān)測顯示、報警、故障診斷及識別等。這種結(jié)構(gòu)對少量設(shè)備的幾個狀態(tài)參數(shù)的檢測,實時處理效率較高,當(dāng)需要對多個設(shè)備進行監(jiān)測時,上下位機通信成為系統(tǒng)實時性和可靠性的瓶頸。另外,這些系統(tǒng)的在線監(jiān)測和故障診斷相對脫離,即各成一套系統(tǒng),即使有些系統(tǒng)將兩者合在一起,當(dāng)多個設(shè)備對多種診斷功能提出診斷請求時,整個系統(tǒng)的工作效率會明顯降低,造成系統(tǒng)集成性差,不便于軟件升級和擴充[2-3]。
2 污水處理軟件開發(fā)
 為了便于用戶監(jiān)控和管理整個污水處理廠處理情況,本文開發(fā)了中控室通信與應(yīng)用控制程序,提供了良好的人機操作界面。ADAM5000系列CAN模塊與許多軟件兼容,DeviceNet和CANopen可用來配置系統(tǒng),建立在這兩個協(xié)議上的動態(tài)鏈接庫DLL可用于Windows程序設(shè)計。PCL-841附帶軟件包提供了7個函數(shù),分別為初始化模塊CanInitHW()、退出模塊CanExitHW()、復(fù)位模塊CanReset()、配置模塊CanConfig()、設(shè)置正常運行狀態(tài)模塊CanNormRun()、發(fā)送幀模塊CanSendMsg()及接收幀模塊CanReceiveMsg()。其源文件在Can841.h中,運用這幾個函數(shù)和DeviceNet指令集就可構(gòu)成系統(tǒng)應(yīng)用軟件各個功能子程序,實現(xiàn)各個節(jié)點模塊間數(shù)據(jù)傳送數(shù)據(jù)采集和控制輸出。PC機與CAN適配卡的聯(lián)絡(luò)采用命令的通信協(xié)議,即“命令+參數(shù)”形式和“多主競爭的總線仲裁”方式實現(xiàn)。
 適配卡設(shè)備驅(qū)動程序、動態(tài)連接庫和所要開發(fā)的Ring3層應(yīng)用程序的關(guān)系如圖1所示。


 Ring3應(yīng)用層對CAN適配卡的訪問全部通過動態(tài)鏈接庫實現(xiàn),這種訪問主要包括對CAN卡的初始化、發(fā)送報文、接收報文以及其他操作。CAN卡初始化除了對CAN適配卡本身的初始化外,還包括虛擬設(shè)備驅(qū)動程序的動態(tài)加載和初始化(設(shè)置中斷號和I/O地址)。
 污水處理自控軟件的設(shè)計如圖2所示。

2.1 對CAN串口的操作
 適配卡PCL-841上提供了兩個獨立的CAN串口,對該串口的操作有幾種方法可以使用,如直接使用Windows AP對該串口進行操作,使用包裝好的控件(例如MSComm),也可以先把涉及到串口操作的WindowsAPI都封裝到一個類里面供開發(fā)使用。在本系統(tǒng)中,使用一個封裝好的串口類來對串口進行操作。該類能支持多串口、多線程,并能在所有主流Windows系統(tǒng)下使用。serialPortEx類的用戶只需熟悉少數(shù)幾個公共成員函數(shù),就能輕易在自己的程序中加入串口的支持。必須注意的是該類并不支持串口通信協(xié)議,因為不同應(yīng)用場合下可能需要使用不同的協(xié)議,在本系統(tǒng)中使用的是DeviceNet協(xié)議。
2.2 實時運行數(shù)據(jù)的讀取
 監(jiān)控軟件中設(shè)備實時運行狀態(tài)的顯示通過對設(shè)備實時運行數(shù)據(jù)的讀取來實現(xiàn)。實時數(shù)據(jù)的讀取通過定時發(fā)送狀態(tài)請求(STATUS REQUEST)信號來實現(xiàn),定時器的間隔足夠小(例如1 s),那么每隔1 s監(jiān)控軟件都能夠?qū)⑵湎到y(tǒng)運行狀態(tài)顯示和現(xiàn)場設(shè)備的運行狀態(tài)同步,這就保證了監(jiān)控軟件中系統(tǒng)狀態(tài)顯示的實時性。如果定時器的精度要求不高、定時器的間隔不是太小,使用Windows定時器就可以了,一般用SetTimer()函數(shù)來啟動一個定時器,用KillTimer()函數(shù)來結(jié)束一個定時器。對于污水處理系統(tǒng),通常每隔1 s左右讀取一次系統(tǒng)狀態(tài)信息就可以滿足系統(tǒng)實時性的要求,因此使用Windows定時器完全可以滿足要求。實時數(shù)據(jù)的讀取步驟是:在監(jiān)控軟件啟動時打開定時器,每次定時器被觸發(fā)后,發(fā)送一條狀態(tài)請求信號;接收到回應(yīng)的狀態(tài)信號后,再更新系統(tǒng)運行狀態(tài)的顯示,在下一次定時器被觸發(fā)之后,再發(fā)送一條狀態(tài)請求信號。不斷循環(huán),直到監(jiān)控軟件退出為止[2-7]。

 


3 編寫程序代碼
 (1)使用Visual C++6.0的應(yīng)用程序向?qū)聞?chuàng)建一個基于文檔時間的“COMMSewageDlg”,修改標(biāo)題為“污水處理自動控制系統(tǒng)”,其他設(shè)置全部接受默認選項。
 (2)為了使用DLL,必須將DLL驅(qū)動函數(shù)庫的頭文件加入工程中。方法是:從Visual C++主菜單中選擇Project-Add to Project-Filesw…,在彈出的對話框中選擇driver.H,單擊確定即可。加入完該文件后,就可以看見DA&C常量定義、參數(shù)聲明和DLL函數(shù)定義等。這些函數(shù)都可以用在將要開發(fā)的應(yīng)用程序中。
 (3)選擇Build菜單,選中Settings選項,在彈出的對話框中選中Link頁,接著在類型欄選中Input,輸入adsapi32.lib于Object/library模塊中,然后單擊OK按鈕即可。
 (4)將SerialPort.h、SerialPort.cpp兩個類文件復(fù)制到工程文件夾中,用Project-Add to Project-Files命令將上述兩個文件加入工程,并在COMMSewageView.h中將頭文件SerialPort.h說明:#include "SerialPort.h"。
 (5) 人工添加消息響應(yīng)函數(shù)
 首先在CCOMMsewageView. h中添加串口字符接收消息WM COMM RXCHAR(串口接收緩沖區(qū)內(nèi)有一個字符)的響應(yīng)函數(shù)聲明:
 //{{AFXes MSG(COMMSewageView)
 afx_msgLONG onCommunication(WPARAM ch,LPARAM port);
 //}}AFXes MSG
 然后在S CPortTestView.cpp文件中進行WM_ COMM- RXCHAR消息映射:
 BEGIN_MESSAGE_MAP(COMMSewageView,CView)
 //{{AFX_ MSG MAP(COMMSewageView)
 ON_MESSAGE(WM_COMM_RXCHAR, On Communication)
 //}}AFX_ MSG MAP
 END_ MESSAGE_ MAP()
 接著在S CPortTestView. cpp中加入函數(shù)的實現(xiàn):
 LONG
 COMMSewageView::OnCommunication(WPARAM ch, LPARAM port){…};
 (6)在視創(chuàng)建時初始化串口,首先利用C1assWizardr生成OnInitialUpdate()函數(shù);
 (7)利用C1assWizard成COMMSewageView的時間消息WM_TIMER響應(yīng)函數(shù);
 (8)在OnCommunication(WPARAM ch,LPARAM port)函數(shù)中進行數(shù)據(jù)處理。
 本文詳細分析了污水處理的總體設(shè)計方案,介紹了CAN總線能實時處理上位機與下位機的數(shù)據(jù)通信,對CAN串口操作、數(shù)據(jù)的讀取以及編寫程序代碼的步驟都進行詳細的分析和介紹。本文的思想對我國的污水處理在線監(jiān)測系統(tǒng)的實時顯示和監(jiān)控起到一定的指導(dǎo)作用。
參考文獻
[1] 黃大貴.微機數(shù)控系統(tǒng)[M].成都:電子科技大學(xué)出版社,1996.
[2] 蒲旺.污水處理在線監(jiān)測系統(tǒng)及關(guān)鍵設(shè)備設(shè)計[D].成都:電子科技大學(xué),2004.
[3] 饒運濤,鄒繼軍.現(xiàn)場總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003.
[4] 鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,2002.
[5] 金以慧.過程控制[M].北京:清華大學(xué)出版社,2002.
[6] 李現(xiàn)勇.Visual c++串口通信技術(shù)與工程實踐[M].北京:人民郵電出版社,2003.
[7] 盧鴻權(quán),黃大貴等.基十CAN總線的一體化氧化溝DCS系統(tǒng)方案研究[J].電子科技大學(xué)學(xué)報,2001,30(3).
[8] 鄔寬明.CAN總線系統(tǒng)設(shè)計中的幾個問題[J].電子技術(shù)應(yīng)用,1998,24(9).

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。