【摘 要】為實(shí)現(xiàn)對(duì)礦井主冗風(fēng)機(jī)狀態(tài)有效監(jiān)測(cè)和控制,本文提出一種基于VB6.0的上位機(jī)與風(fēng)機(jī)控制器的通信解決方案,系統(tǒng)采用TI公司生產(chǎn)的MSP430F149單片機(jī)為控制器核心,采用USB-CAN總線實(shí)現(xiàn)上位機(jī)與控制器之間數(shù)據(jù)的遠(yuǎn)距離傳輸,上位機(jī)除可實(shí)現(xiàn)風(fēng)機(jī)運(yùn)行參數(shù)的實(shí)時(shí)監(jiān)測(cè)和控制外,還能對(duì)風(fēng)機(jī)故障產(chǎn)生報(bào)警。
【關(guān)鍵詞】USB-CAN總線;礦井風(fēng)機(jī);實(shí)時(shí)監(jiān)控;MCP2551
【Abstract】In order to realize the monitor-controlling of several Ventilators under mine, bring a kind of solution of communication between PC and Ventilator Monitor-controller Under Mine based on VB6.0 .System uses TI's MSP430F149 as the core controller, and realize the long distance transmission of control data between the host computer using RS232-RS485 converter, the upper-computer not only can realize monitoring and controlling of ventilator in real time, but also can generate alarm of ventilator fault.
【Key words】USB-CAN BUS;Ventilator;Real-time monitor-controling;MCP2551
隨著科技進(jìn)步和現(xiàn)代工業(yè)設(shè)備向自動(dòng)化、快速化、大型化等方向的的發(fā)展,對(duì)工業(yè)設(shè)備的質(zhì)量要求和管理效率也越來(lái)越高。計(jì)算機(jī)及一些微處理器被廣泛應(yīng)用到工業(yè)現(xiàn)場(chǎng)以加強(qiáng)對(duì)設(shè)備的管理[1]。但是,由于設(shè)備管理任務(wù)日益復(fù)雜、設(shè)備長(zhǎng)時(shí)間運(yùn)作以及中心控制系統(tǒng)與下位機(jī)之間信息傳輸量的不斷增加,通信的質(zhì)量和可靠性程度也要求達(dá)到一個(gè)更高的水平。CAN總線作為一種性價(jià)比較高且具有國(guó)際標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線,不僅通信速率快、可靠性高、穩(wěn)定性好、抗干擾能力強(qiáng),而且通信距離遠(yuǎn)、開(kāi)發(fā)成本低等特點(diǎn),是解決目前工業(yè)控制現(xiàn)場(chǎng)數(shù)據(jù)通信瓶頸的有效手段之一[2-3]。
1 硬件設(shè)計(jì)整體架構(gòu)
系統(tǒng)硬件整體架構(gòu)示意圖如圖1所示,系統(tǒng)由上位PC監(jiān)控平臺(tái)、USB-CAN網(wǎng)絡(luò)適配器、若干個(gè)監(jiān)測(cè)節(jié)點(diǎn)構(gòu)成。風(fēng)機(jī)站采用兩臺(tái)風(fēng)機(jī)做冗余,1臺(tái)工作風(fēng)機(jī)和1臺(tái)備用風(fēng)機(jī)。風(fēng)機(jī)的風(fēng)速等級(jí)由4個(gè)電動(dòng)機(jī)高、低速運(yùn)行的不同組合決定。多電機(jī)綜合保護(hù)系統(tǒng)由電機(jī)故障檢測(cè)電路檢測(cè)電機(jī)是否缺相、短路、過(guò)載及漏電故障,由瓦斯傳感器和風(fēng)量傳感器監(jiān)測(cè)井下環(huán)境情況,由電流傳感器和電壓傳感器監(jiān)測(cè)風(fēng)機(jī)的運(yùn)行狀態(tài)。
2 監(jiān)控系統(tǒng)硬件設(shè)計(jì)
2.1 CAN總線適配器硬件設(shè)計(jì)
監(jiān)控系統(tǒng)的CAN總線適配器在整個(gè)監(jiān)控網(wǎng)絡(luò)中起著至關(guān)重要的作用,其設(shè)計(jì)的好壞,關(guān)系到整個(gè)監(jiān)控系統(tǒng)數(shù)據(jù)傳輸?shù)目煽啃訹4]。目前市面上有一些總線適配器,比如RS232-CAN、RS485-CAN、PCI-CAN等,雖然他們?cè)跀?shù)據(jù)傳輸?shù)目煽啃院屯ㄐ啪嚯x上有比較大的優(yōu)勢(shì),但是在筆記本電腦盛行的今天因上位機(jī)無(wú)RS232串行接口而存在著調(diào)試不便的特點(diǎn),USB-CAN總線網(wǎng)絡(luò)適配器的設(shè)計(jì)正好彌補(bǔ)了這個(gè)缺陷,因而具有一定應(yīng)用價(jià)值和推廣價(jià)值。
USB-CAN總線網(wǎng)絡(luò)適配器由AT89C52微處理器芯片、CAN總線通信接口、USB通信接口等主要部件組成。USB-CAN總線適配器轉(zhuǎn)發(fā)來(lái)自CAN總線的信息和來(lái)自上位PC機(jī)的命令信息,起溝通CAN總線與PC機(jī)之間的橋梁作用。
USB接口電路采用南京沁恒公司生產(chǎn)的USB接口芯片CH375A。CH375具有8位數(shù)據(jù)總線和讀寫(xiě)、片選控制線及中斷輸出,可方便掛接到單片機(jī)等其他一些智能微控制器的總線上;內(nèi)部置有USB通信的底層協(xié)議,能自動(dòng)處理默認(rèn)端點(diǎn)所有任務(wù),本地微處理器AT89C52只需負(fù)責(zé)數(shù)據(jù)的交換;同時(shí)內(nèi)部提供了4個(gè)相互獨(dú)立的端對(duì)端邏輯傳輸通道,分別為數(shù)據(jù)上傳通道、數(shù)據(jù)下傳通道、中斷上傳通道及輔助數(shù)據(jù)下傳通道,因請(qǐng)求加應(yīng)答的通信模式數(shù)據(jù)傳輸速率較低,故采取單向數(shù)據(jù)流通信模式與PC上位機(jī)通信,同時(shí)使用中斷上傳端口上傳中斷特征值。USB通信接口電路如圖2所示。
2.2 下位機(jī)CAN總線通信接口電路設(shè)計(jì)
監(jiān)控節(jié)點(diǎn)設(shè)計(jì)以TI公司MSP430F149單片機(jī)為控制核心,此款單片機(jī)不僅具有5種低功耗模式,同時(shí)具有高速的運(yùn)算能力、豐富的片內(nèi)外設(shè)以及時(shí)鐘使用靈活等特點(diǎn)[5-6],在工業(yè)控制系統(tǒng)及工業(yè)通信中具有廣泛的應(yīng)用。CAN總線接口電路則采用Microchip公司MCP2510為總線控制器,該芯片完全支持CAN總線V2.0A/B技術(shù)規(guī)范,除能夠發(fā)送和接收標(biāo)準(zhǔn)及擴(kuò)展報(bào)文外,還同時(shí)具備驗(yàn)收過(guò)濾及報(bào)文管理功能,其內(nèi)含的三個(gè)發(fā)送緩沖器和兩個(gè)接收緩沖器大大減少了微處理器的管理負(fù)擔(dān),它與另外一款獨(dú)立的控制器SJA1000相比,具有接線更加簡(jiǎn)化、使用更加靈活的特點(diǎn), MCP2510總線控制器與MSP430單片機(jī)的硬件接口電路如圖3所示。
為了使CAN總線的性能更加穩(wěn)定可靠,收發(fā)器芯片采用Microchip公司配套生產(chǎn)的MCP2551。CAN總線接口電路主要完成3個(gè)部分的功能:接收上位PC機(jī)下傳的數(shù)據(jù)控制指令(含查詢信息命令);上傳監(jiān)控節(jié)點(diǎn)采集的風(fēng)機(jī)狀態(tài)監(jiān)測(cè)數(shù)據(jù);消除總線上的噪聲對(duì)監(jiān)控節(jié)點(diǎn)單元的影響;為提高M(jìn)CP2551與總線接口的抗干擾能力,在MCP2551的CANH端和CANL端各自用一個(gè)5Ω的電阻與CAN總線相連,可起到一定的限流效果,以保護(hù)MCP2551不因過(guò)流而燒壞。CANH端、CANL端與地之間再并聯(lián)兩個(gè)約3×10-11 F的電容,可濾除總線上高頻干擾并具有防電磁輻射的功效。另外,兩根CAN總線輸入端與地之間分別反接了一個(gè)保護(hù)二極管,當(dāng)CAN總線有較高的負(fù)電壓時(shí),通過(guò)二極管的短路可起到一定的過(guò)壓保護(hù)作用,具有較好防雷擊和防靜電的效果。同時(shí)為了降低MCP2551在通信空閑時(shí)的靜態(tài)功耗,將MCP2551第8腳RS端的電阻R4直接接在總線發(fā)送端CANTX,則可在通信空閑時(shí)讓其自動(dòng)進(jìn)入待機(jī)模式,從而大大降低系統(tǒng)的功耗實(shí)驗(yàn)結(jié)果證明,在不影響正??偩€通信的情況下,其功耗僅為典型電路功耗的22%,基于MCP2551自動(dòng)待機(jī)低功耗CAN接口電路如圖4所示[7]。
3 通信軟件設(shè)計(jì)
3.1 上位機(jī)通信軟件的設(shè)計(jì)
監(jiān)控系統(tǒng)上位機(jī)軟件的設(shè)計(jì)雖然不能算整個(gè)系統(tǒng)的重中之重,但其設(shè)計(jì)的好壞卻也關(guān)系到整個(gè)監(jiān)控系統(tǒng)的運(yùn)行質(zhì)量,因此,上位機(jī)軟件的設(shè)計(jì)也不能忽視。
上位機(jī)軟件的設(shè)計(jì)可以選用VB、VC++、Dephi等軟件進(jìn)行開(kāi)發(fā),但考慮到VB功能強(qiáng)大和簡(jiǎn)單易學(xué)的特點(diǎn),在上位機(jī)設(shè)計(jì)中選用了VB6.0軟件開(kāi)發(fā),其發(fā)布的可執(zhí)行文件可以脫離開(kāi)發(fā)軟件直接在Windows環(huán)境下運(yùn)行。上位機(jī)的軟件功能主要包括數(shù)據(jù)監(jiān)測(cè)和數(shù)據(jù)處理、人機(jī)接口,同時(shí)經(jīng)CAN總線實(shí)現(xiàn)對(duì)下位機(jī)監(jiān)測(cè)節(jié)點(diǎn)的控制。上位機(jī)軟件可分為主程序模塊、數(shù)據(jù)處理模塊和通訊模塊3部分,主程序模塊完成界面顯示、人機(jī)接口、模塊調(diào)用、輸出控制等功能;數(shù)據(jù)處理模塊完成數(shù)據(jù)采集、風(fēng)量、溫度等待測(cè)量的數(shù)字濾波、計(jì)算等處理功能;通訊模塊除了接收下位機(jī)上傳的數(shù)據(jù)外還向下位機(jī)發(fā)出風(fēng)機(jī)控制指令。上位機(jī)系統(tǒng)人機(jī)交互界面如圖5所示。
3.2 風(fēng)機(jī)控制器通信程序的設(shè)計(jì)
風(fēng)機(jī)控制器即下位機(jī)的通信程序設(shè)計(jì)主要包括硬件初始化模塊、數(shù)據(jù)處理模塊、故障處理模塊、SPI數(shù)據(jù)傳輸模塊等組成。SPI數(shù)據(jù)傳輸模塊程序流程如圖6所示。
CAN發(fā)送中斷處理模塊和CAN接收中斷處理模塊程序如下:
void CAN_Interrupt() //CAN中斷處理
{
/************************接收中斷處理*************** ******/
if (CANINTF BIT0)
{
CANINTF = 0;
MCP2510_ReadSequence(MCP2510_RXB0D0,RXData,8);
id[0] = Config.SBH ; // 發(fā)送源地址
// TXData[0] = 0 ; // 目的地址
TX_Idex = 0 ; //多幀索引
if ( RXData[2] == 0x3F ) //取動(dòng)態(tài)運(yùn)行參數(shù)第一幀
{
id[1] = 0x60 ; // 非結(jié)束多幀點(diǎn)對(duì)點(diǎn)
TXData[0] = WSND ; // 瓦斯?jié)舛?低8位
TXData[1] = WSND >> 8 ; // 瓦斯?jié)舛?高8位
TXData[2] = JXFW ; // 井下風(fēng)溫
TXData[3] = JXFS ; // 井下風(fēng)速
TXData[4] = FJDY ; // 風(fēng)機(jī)電壓 低8位
TXData[5] = FJDY >> 8; // 風(fēng)機(jī)電壓 高8位
TXData[6] = FJZS; // 風(fēng)機(jī)轉(zhuǎn)速 低8位
TXData[7] = FJZS >> 8; // 風(fēng)機(jī)轉(zhuǎn)速 高8位
MCP2510_TransmitStd(id, 8, TXData);
TX_Idex = 1 ; //多幀索引
}
}
/************************發(fā)送中斷處理**************** *****/
else if (CANINTF BIT2)
{
CANINTF = 0;
if ( RXData[2] == 0x3F TX_Idex == 1) //取動(dòng)態(tài)運(yùn)行參數(shù)第二幀
{
id[1] = 0x60 ;
TXData[0] = WSCX; //瓦斯超限標(biāo)志
TXData[1] = FJGZ ;//風(fēng)機(jī)故障標(biāo)志
TXData[2] = 0;
TXData[3] = 0 ;
TXData[4] = 0;
TXData[5] = 0 ;(下轉(zhuǎn)第206頁(yè))
(上接第214頁(yè))TXData[6] = 0;
TXData[7] = 0 ;
MCP2510_TransmitStd(id, 8, TXData);
TX_Idex = 0 ; //多幀索引
}
}
}
4 小結(jié)
在礦井風(fēng)機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)中,為實(shí)現(xiàn)對(duì)風(fēng)機(jī)狀態(tài)的監(jiān)測(cè)和控制,提出了一種基于VB6.0的上位機(jī)與風(fēng)機(jī)控制器的通信解決方案,該系統(tǒng)不僅較好地實(shí)現(xiàn)了系統(tǒng)的遠(yuǎn)程通信和控制,同時(shí)通過(guò)CAN接口電路的改造,大大降低了系統(tǒng)運(yùn)行的功耗。本文通過(guò)詳細(xì)闡述了MSP430單片機(jī)與基于MCP2510的CAN總線接口的硬件電路和軟件設(shè)計(jì),為在工業(yè)控制網(wǎng)絡(luò)上實(shí)現(xiàn)基于MCP2510的CAN總線進(jìn)一步推廣和應(yīng)用提供了借鑒。
【參考文獻(xiàn)】
[1]劉文杰.自行研制礦井通風(fēng)監(jiān)測(cè)系統(tǒng)[J].礦山機(jī)械,2001(8):57-58.
[2]陳在平.現(xiàn)場(chǎng)總線及工業(yè)控制網(wǎng)絡(luò)技術(shù)[M].北京:電子工業(yè)出版社,2008.
[3]馮鵠.淺談CAN總線的特點(diǎn)及應(yīng)用[J].科技信息,2009(17):47-49.
[4]常陽(yáng)光,張?jiān)伱?,劉濤,?專(zhuān)家智能電除塵器監(jiān)控系統(tǒng)設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2008,21(4):48-49.
[5]曹磊.MSP430單片機(jī)C程序設(shè)計(jì)與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2007:6-15.
[6]秦龍.MSP430單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講[M].北京:電子工業(yè)出版社,2006:372-375.
[7]蘇偉達(dá),吳允平,李汪彪,蔡聲鎮(zhèn),吳進(jìn)營(yíng),等.基于MCP2551的CAN接口電路低功耗設(shè)計(jì)[J].電子器件,2010,6:742-745.
[責(zé)任編輯:丁艷]