貝 巖,張樹明
(1.渤海大學(xué)高等職業(yè)技術(shù)學(xué)院,遼寧 錦州 121000; 2.渤海大學(xué)信息科學(xué)與技術(shù)學(xué)院,遼寧 錦州 121013)
在城市中,自來水水源地機(jī)泵的可靠、安全和高效運(yùn)行,對(duì)水源地的運(yùn)行管理和維護(hù)至關(guān)重要。由于水源地機(jī)泵分布點(diǎn)多而且距離較遠(yuǎn),不能及時(shí)掌握機(jī)泵的狀態(tài),特別是對(duì)水泵的啟、??刂?,當(dāng)出現(xiàn)事故時(shí)不能迅速處理,經(jīng)常會(huì)出現(xiàn)電機(jī)受損等現(xiàn)象,不僅城市供水出現(xiàn)問題,而且造成大量的經(jīng)濟(jì)損失。因此對(duì)水源地機(jī)泵進(jìn)行監(jiān)控已成為必須解決的問題。
iCAN 系統(tǒng)全稱為“工業(yè)CAN-bus 現(xiàn)場(chǎng)總線控制系統(tǒng)(Industry CAN-bus Fieldbus Control System)”,核心是iCAN 協(xié)議,iCAN 協(xié)議(Industrial CAN Protocol)是基于現(xiàn)場(chǎng)總線CAN-bus的應(yīng)用層協(xié)議[1]。CANbus(Controller Area Network,控制器局域網(wǎng))是國際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一,CAN-bus是一種多主方式的串行通訊總線,基本設(shè)計(jì)規(guī)范要求有高的位速率,高抗電磁干擾性,而且能夠檢測(cè)出產(chǎn)生的任何錯(cuò)誤。作為一種技術(shù)先進(jìn)、可靠性高、功能完善、成本合理的遠(yuǎn)程網(wǎng)絡(luò)通訊控制方式,CAN-bus 已被廣泛應(yīng)用到各個(gè)自動(dòng)化控制系統(tǒng)中[2-6]。為了解決水源地機(jī)泵管理問題,本文采用iCAN 系統(tǒng)的分布式數(shù)據(jù)采集控制解決方案設(shè)計(jì)并實(shí)現(xiàn)水源地機(jī)泵監(jiān)控系統(tǒng)。
典型的iCAN 系統(tǒng)由1個(gè)主機(jī)和多個(gè)從機(jī)構(gòu)成,主機(jī)由工控機(jī)或PC 機(jī)加上PC-CAN 接口卡組成,主要作用是獲取從機(jī)傳輸?shù)臄?shù)據(jù)并作相應(yīng)的處理。從機(jī)由多個(gè)相同或不同的iCAN 模塊組成,主要作用是負(fù)責(zé)數(shù)據(jù)的采集和傳輸。
根據(jù)水源地機(jī)泵監(jiān)控系統(tǒng)的功能和性能需求,主機(jī)選擇了工控機(jī)和PCI-9820I 接口卡,PCI-9820I是一款符合工業(yè)級(jí)溫度范圍(- 25℃~+ 85℃),兼容PCI2.2 規(guī)范,有2 路CAN 通道的PCI-CAN 通訊接口卡,通過DB9 針型連接器與實(shí)際的CAN-bus 網(wǎng)絡(luò)進(jìn)行連接[7]。其中1 號(hào)CAN 通道用來收集水源地機(jī)泵的狀態(tài)參數(shù)和控制機(jī)泵啟停,0 號(hào)CAN 通道用來控制機(jī)泵狀態(tài)指示燈。
從機(jī)采用iCAN-3800 和iCAN-2505 模塊。iCAN-3800 模塊用于采集模擬量輸入信號(hào)。iCAN-3800 模塊具有8 路模擬量輸入通道,每個(gè)通道有獨(dú)立可設(shè)置的4個(gè)量程,內(nèi)部具有信號(hào)調(diào)理電路,模擬量信號(hào)的分辨率為12 位[8]。iCAN-2505 模塊提供繼電器輸出通道,有5 路具有自保持功能的繼電器輸出通道,為防止繼電器切換引起的干擾,iCAN-2505 模塊的繼電器輸出通道與控制部分采用了光電隔離措施[9]。
1 號(hào)CAN 通道使用iCAN-3800 模塊采集數(shù)據(jù),iCAN-3800 模塊的AI7、AI6、AI5、AI4 四個(gè)通道使用電流信號(hào)作為模擬量輸入(0 ~20MA)分別采集機(jī)泵的實(shí)際電流、實(shí)際電壓、水壓和室外溫度,AI3 通道使用電壓信號(hào)輸入(0 ~5V)檢測(cè)機(jī)泵當(dāng)前運(yùn)行狀態(tài)。使用iCAN-2505 模塊控制機(jī)泵的啟停,iCAN-2505 模塊的繼電器3 輸出端子DO3為機(jī)泵啟動(dòng)觸點(diǎn),繼電器4 輸出端子DO4為機(jī)泵停止觸點(diǎn)。0 號(hào)CAN 通道使用iCAN-2505 模塊控制機(jī)泵的狀態(tài)指示燈(紅燈表示停止,綠燈表示啟動(dòng))。整個(gè)系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
iCAN 協(xié)議的主機(jī)是通過從機(jī)MAC ID 來區(qū)分從機(jī)的,在使用iCAN 系列模塊時(shí),必需設(shè)置模塊的MAC ID 地址和CAN 波特率。由于大多數(shù)水源地距離較遠(yuǎn),而且CAN 網(wǎng)絡(luò)的干線長度由數(shù)據(jù)傳輸速率和所使用的電纜類型決定,所以設(shè)置模塊的CAN 波特率為5kbps,這樣系統(tǒng)中最大電纜距離可以達(dá)到
10000m。
由于iCAN 系統(tǒng)基于Windows API 標(biāo)準(zhǔn)提供了一套完整的基于iCAN 協(xié)議的主站函數(shù)庫,所以開發(fā)平臺(tái)和語言采用了Microsoft Visual Basic 6.0。軟件設(shè)計(jì)主要包括初始化模塊、機(jī)泵啟停模塊、檢測(cè)模塊3個(gè)部分。
首先在Visual Basic 應(yīng)用程序中聲明外部過程通過API方式訪問iCAN 協(xié)議的主站函數(shù)庫Control-CAN.dll 和icandll.dll[10]。
其次定義數(shù)據(jù)結(jié)構(gòu)ROUTECFG 用來設(shè)置初始化iCAN 網(wǎng)絡(luò)所需要的一些必要參數(shù),然后定義參數(shù)并添加iCAN 網(wǎng)絡(luò),通過設(shè)置參數(shù)iCANInd 值來區(qū)分0號(hào)CAN 通道和1 號(hào)CAN 通道
最后啟動(dòng)系統(tǒng)并添加iCAN-3800 和iCAN-2505從站
在iCAN-2505 模塊中,輸出狀態(tài)為“1”時(shí),繼電器輸出開關(guān)閉合;輸出狀態(tài)為“0”時(shí),繼電器輸出開關(guān)斷開,這樣就可以控制機(jī)泵的啟停。
機(jī)泵啟停模塊先檢測(cè)對(duì)應(yīng)的iCAN-2505 從站模塊是否已經(jīng)連接,如果未連接要進(jìn)行連接,當(dāng)連接不通時(shí)顯示錯(cuò)誤信息并退出程序模塊;如果連接則根據(jù)當(dāng)前機(jī)泵的啟停狀態(tài),確定是開啟機(jī)泵還是停止機(jī)泵并進(jìn)行操作提示,待確認(rèn)后再發(fā)出控制指令,然后啟動(dòng)定時(shí)器,5 秒后將對(duì)應(yīng)的繼電器輸出端子置0[11],這是因?yàn)閕CAN-2505 模塊繼電器輸出通道有自保持功能,實(shí)際使用中不需要長時(shí)間開關(guān)閉合。其程序流程圖如圖2所示。
圖2 機(jī)泵啟停程序流程圖
檢測(cè)模塊先檢測(cè)對(duì)應(yīng)的iCAN-3800 從站模塊是否已經(jīng)連接,如果未連接要進(jìn)行連接,當(dāng)連接不通時(shí)顯示錯(cuò)誤信息并退出程序模塊;如果連接則進(jìn)行數(shù)據(jù)采集。
首先采集對(duì)應(yīng)iCAN-3800 從站模塊的AI3 通道的電壓信號(hào)輸入值,對(duì)輸入測(cè)量數(shù)據(jù)與實(shí)際測(cè)量電壓值進(jìn)行換算得到實(shí)際電壓值(電壓信號(hào)0 ~5V),通過實(shí)際電壓值來判斷機(jī)泵處于什么狀態(tài),如果是開啟狀態(tài),需要控制對(duì)應(yīng)的狀態(tài)指示燈綠燈亮,如果是停止?fàn)顟B(tài),需要控制對(duì)應(yīng)的狀態(tài)指示燈紅燈亮。
為了節(jié)約成本,0 號(hào)CAN 通道使用單個(gè)iCAN-2505 模塊控制多個(gè)狀態(tài)指示燈,由于iCAN-2505 模塊沒有輸入緩存區(qū),所以必須通過程序設(shè)置存儲(chǔ)變量來存儲(chǔ)繼電器輸出端子DO0 ~DO4的狀態(tài),通過按位置1 或0的方式控制繼電器輸出通道[12]。
然后采集對(duì)應(yīng)iCAN-3800 從站模塊的AI7、AI6、AI5、AI4 四個(gè)通道的電流信號(hào)模擬量輸入值,對(duì)輸入測(cè)量數(shù)據(jù)與實(shí)際測(cè)量電流值進(jìn)行換算得到實(shí)際電流值(電流信號(hào)0 ~20MA),并進(jìn)行線性補(bǔ)償,得到機(jī)泵的實(shí)際電流、實(shí)際電壓、水壓和室外溫度值進(jìn)行顯示和存儲(chǔ)。
水源地機(jī)泵監(jiān)控系統(tǒng)能夠很好地完成數(shù)據(jù)采集、狀態(tài)檢測(cè)和機(jī)泵控制等功能,并且適應(yīng)遠(yuǎn)距離工作要求,抗干擾能力良好,解決了水源地機(jī)泵難以監(jiān)控和管理的問題。系統(tǒng)構(gòu)建靈活,結(jié)構(gòu)簡單,成本較低,具有良好的可靠性和穩(wěn)定性。
[1]周立功.iCAN 現(xiàn)場(chǎng)總線原理與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2007.
[2]周立功.項(xiàng)目驅(qū)動(dòng)—CAN-bus 現(xiàn)場(chǎng)總線基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2012.
[3]龍志強(qiáng),李曉龍,竇峰山,等.CAN 總線技術(shù)與應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2013.
[4]劉維弋,金遠(yuǎn)平.基于CAN 總線的通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(12):207-209.
[5]劉承智,丁國良,原亮,等.改進(jìn)型CAN 總線協(xié)議的實(shí)時(shí)性研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(7):81-84.
[6]席燦江.基于CAN 總線的設(shè)計(jì)應(yīng)用[J].中國新通信,2012(14):57,66.
[7]廣州致遠(yuǎn)電子有限公司.PCI-9820I 產(chǎn)品用戶手冊(cè)[DB/OL].http://wenku.baidu.com/view/893e078402d276a2002-92e17.html,2006-09-11.
[8]廣州致遠(yuǎn)電子有限公司.iCAN-3800 產(chǎn)品用戶手冊(cè)[Z].廣州致遠(yuǎn)電子有限公司,2011.
[9]廣州致遠(yuǎn)電子有限公司.iCAN-2505 產(chǎn)品用戶手冊(cè)[Z].廣州致遠(yuǎn)電子有限公司,2008.
[10]張寧.Visual Basic 核心編程及通用模塊開發(fā)[M].北京:清華大學(xué)出版社,2012.
[11]求是科技,仵浩,齊燕杰,等.Visual Basic 串口通信工程開發(fā)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2003.
[12]李江全.Visual Basic 數(shù)據(jù)采集與串口通信測(cè)控應(yīng)用實(shí)戰(zhàn)[M].北京:人民郵電出版社,2010.