摘要: 為了對閥門進行遠(yuǎn)程監(jiān)控,本文作者通過CAN總線將各個閥門電動執(zhí)行器連接在一起,在與上位機相連時,選擇了CAN接口卡,并對通信的數(shù)據(jù)格式進行了定義,從而編寫了上位機界面程序,其中對于一個CAN節(jié)點也進行了電路設(shè)計。
關(guān)鍵詞: 閥門電動執(zhí)行器CAN總線CAN-bus遠(yuǎn)程通訊監(jiān)控
1.前言
在工業(yè)生產(chǎn)中閥門電動執(zhí)行器的應(yīng)用越來越廣泛,為了實現(xiàn)對閥門的遠(yuǎn)程控制,閥門電動執(zhí)行器應(yīng)當(dāng)具有網(wǎng)絡(luò)化控制的接口。通過網(wǎng)絡(luò)接口,閥門電動執(zhí)行器可以接受中央計算機的控制。目前主要的現(xiàn)場總線有五種:CAN(Control Area Network)總線,F(xiàn)F(Foundation Fieldbus,基金會現(xiàn)場總線),Profitbus(Processfieldbus),Lonworks(Local Operating Network,局部操作網(wǎng)絡(luò)),HART(Highway Addressable Remote Transducer)。其中CAN總線因為具有突出的差錯檢測機制,抗干擾能力強,價格低廉,故筆者采用了CAN總線來實現(xiàn)電動執(zhí)行器的網(wǎng)絡(luò)連接[1]。
2.CAN-bus遠(yuǎn)程監(jiān)控實現(xiàn)探討
要想使PC機方便地連到CAN總線上,實現(xiàn)CAN連接通訊,需要CAN-bus接口卡來實現(xiàn)連接功能。各個型號的CAN接口卡可以通過PCI、ISA、USB、COM、LPT、LAN接口與PC進行連接。采用的是PCI-9840四路非智能CAN接口卡[2]。
PCI-9840非智能CAN接口卡是一款高性能價格比的CAN-bus總線通訊適配卡,集成4路電氣隔離的CAN通道,使PC機方便地連接到CAN總線,實現(xiàn)CAN2.0B協(xié)議(兼容2.0A)的數(shù)據(jù)通訊。該接口卡符合PCI2.1規(guī)范,硬件上采用SMD表面安裝技術(shù),集成光電隔離模塊,實現(xiàn)完全電氣隔離的CAN接口,PCI控制電路,抗干擾能力強,是一款硬件上更穩(wěn)定、更可靠的CAN接口卡。
PCI-9840非智能CAN接口卡產(chǎn)品提供強大的軟件支持,其中包括測試工具、多語言版本的簡單應(yīng)用例程。軟件支持通用的ZLGVCI驅(qū)動程序接口,可進行軟件上完全獨立的4通道CAN相關(guān)操作,驅(qū)動支持Linux、Win98、Win2K及WinXP,適合于不同層次的開發(fā)人員在VC++、VB、Delphi和C++Builder等開發(fā)環(huán)境下進行設(shè)計,實現(xiàn)CAN-bus在高層協(xié)議中的應(yīng)用。
ZLGCAN系列接口卡還向用戶提供一個附加的小型CAN-bus數(shù)據(jù)監(jiān)控分析軟件ZLGCANtest軟件,供用戶分析、控制、測試CAN-bus總線上的傳輸數(shù)據(jù)。
以下是筆者設(shè)計的CAN-bus遠(yuǎn)程通訊監(jiān)控實現(xiàn)結(jié)構(gòu)圖:
3.閥門電動執(zhí)行器與上位機在應(yīng)用層的數(shù)據(jù)幀
上位機主要對下位機進行閥門開度和流量的設(shè)定,可定義如下數(shù)據(jù)幀:
Typedef struct HostCmd
{ char CommandCode;?搖?搖 ?搖 //---操作指令
unsigned char ValveAdd;?搖?搖?搖?搖 ?搖 //---閥門地址
char[n]CommanData; ?搖?搖?搖?搖?搖//----設(shè)定數(shù)據(jù)
}
其中命令碼CommandCode規(guī)定進行何種操作。
定義如下:
#define SET_OPEN 0X32?搖?搖?搖?搖?搖?搖?搖?搖?搖?搖?搖?搖//---設(shè)置開度
//(數(shù)據(jù)0~100,占用一個字節(jié))
例如給第3號閥門設(shè)定開度是75%,則按HostCmd的數(shù)據(jù)結(jié)構(gòu)給閥門發(fā)送的是數(shù)據(jù)為{0x32,0x03,0x4B}
#define SET_FLOW 0X33?搖?搖?搖?搖?搖?搖?搖?搖?搖?搖?搖//------設(shè)置流量
例如給第13號閥門設(shè)定流量是100L/min,則按HostCmd的數(shù)據(jù)結(jié)構(gòu)給閥門發(fā)送的是數(shù)據(jù)為{0x82,0x0D,0x64}
4.上位機通訊程序的設(shè)計
如圖2所示,本系統(tǒng)利用VB設(shè)計了如下上位機監(jiān)控界面:
在本系統(tǒng)中,操作人員可以對閥門的開度和流量進行遠(yuǎn)程設(shè)定,閥門的工作狀態(tài)參數(shù)可以通過CAN通訊在上位機中實時顯示出來,觀察非常方便。
5.CAN節(jié)點的設(shè)計
由CAN-bus遠(yuǎn)程通訊監(jiān)控結(jié)構(gòu)圖可以看出,在使用CAN連網(wǎng)時,電動執(zhí)行器是網(wǎng)絡(luò)中的一個節(jié)點。以下對電動執(zhí)行器的控制器與CAN-bus的連接進行設(shè)計。
(1)CAN控制器。采用C8051F040內(nèi)部集成的CAN控制器。C8051F040內(nèi)部集成的CAN控制器是Bosch全功能CAN模塊的完全實現(xiàn),完全符合規(guī)范CAN2.0B。
(2)CAN收發(fā)器。C8051F040內(nèi)部集成的CAN控制器只是個協(xié)議控制器,不提供物理層驅(qū)動,所以在使用時還需加CAN總線收發(fā)器。筆者采用PHILIPS的PCA82C250,是控制器局域網(wǎng)CAN協(xié)議控制器和物理總線之間的接口,可以在低至5Kbps的傳輸速率下工作,滿足遠(yuǎn)距離傳輸數(shù)據(jù)時的低速率要求。
下圖為一個節(jié)點的CAN收發(fā)器的原理圖。其中CANTX、CANRX為C8051F040單片機的兩個引腳[3]。
6.結(jié)語
使用CAN總線技術(shù)對閥門實行遠(yuǎn)程、集散控制非常方便。尤其是在一些人為對閥門觀察和設(shè)定不太方便的場合,遠(yuǎn)程通訊技術(shù)顯得就更為重要了。筆者設(shè)計的系統(tǒng)已經(jīng)在試驗室通過了模擬試驗,為以后產(chǎn)品化打下了堅實的技術(shù)基礎(chǔ)。
參考文獻:
[1]夏德海.現(xiàn)場總線技術(shù)[M].北京:中國電力出版社,2003:1-13.
[2]廣州周立功單片機發(fā)展有限公司.PCI-9840非智能4通道CAN接口卡[Z].廣州周立功單片機發(fā)展有限公司.
[3]廣州周立功單片機發(fā)展有限公司.CAN-bus應(yīng)用方案(1)[Z].廣州周立功單片機發(fā)展有限公司.