摘要:江蘇盱眙是國(guó)內(nèi)最大的淡水龍蝦養(yǎng)殖基地,實(shí)現(xiàn)高效現(xiàn)代化設(shè)施農(nóng)業(yè)改造,采用精細(xì)化養(yǎng)殖是提高經(jīng)濟(jì)效益的必由之路。根據(jù)本項(xiàng)目作業(yè)范圍大的特點(diǎn),系統(tǒng)采用了CAN總線作為現(xiàn)場(chǎng)總線,配合多種傳感器技術(shù)和遠(yuǎn)程控制技術(shù),實(shí)現(xiàn)了對(duì)現(xiàn)場(chǎng)的數(shù)據(jù)采集和設(shè)備控制。在此基礎(chǔ)上開發(fā)了一整套用于監(jiān)控和數(shù)據(jù)處理的智能化龍蝦養(yǎng)殖管理系統(tǒng)。
關(guān)鍵詞:CAN總線;傳感器;龍蝦養(yǎng)殖
中圖分類號(hào):TP399文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2009)35-10102-02
Design and Implement of Lobster breeding Monitoring System Based on CAN Bus
WANG Zhi-bo, ZONG Hong-sen, BI Yan-ru
(Huaian College of Information Technology, Huaian 223003, China)
Abstract: Jiangsu Xuyi is the largest freshwater lobster breeding base, modern facilities for efficient transformation of agriculture, and fining breed is the way to increase economic efficiency. According to large scope areas of this project, It uses CAN bus as the field bus, with a variety of sensor technology and remote control technology. On this basis, we have developed a set of software system of lobster aquaculture; it has an intelligent monitoring and data processing system.
Key words: CAN Bus; sensor; lobster breeding
1 前言
“盱眙龍蝦”是一種淡水龍蝦,學(xué)名克氏螯蝦,俗稱“小龍蝦”,原產(chǎn)于歐美國(guó)家,20世紀(jì)中期傳入我國(guó)并大量繁殖。小龍蝦早在18世紀(jì)時(shí),就成為歐洲和美洲人的重要食物,歐美市場(chǎng)小龍蝦需求量大,自給能力不足,我國(guó)一直是小龍蝦的出口國(guó),但近幾十年來(lái),中國(guó)人也開始大規(guī)模消費(fèi)小龍蝦,自然龍蝦資源不斷枯竭,為了緩解供需矛盾,上世紀(jì)八十年代初開始研究小龍蝦生物學(xué)特性,人工繁殖,人工養(yǎng)殖及加工,國(guó)內(nèi)外建立了大量的小龍蝦養(yǎng)殖場(chǎng),開始大規(guī)模人工養(yǎng)殖小龍蝦,幾十年來(lái),由于人們對(duì)小龍蝦的研究,基本上停留在對(duì)小龍蝦生物學(xué)特性的認(rèn)知層面,對(duì)于龍蝦養(yǎng)殖管理技術(shù)的研究投入不足,尤其是在現(xiàn)代計(jì)算機(jī)控制技術(shù)和多種信息采集技術(shù)突飛猛進(jìn),計(jì)算機(jī)技術(shù)迅速向各行各業(yè)滲透的今天,龍蝦養(yǎng)殖業(yè)的發(fā)展尚未有效地與計(jì)算機(jī)技術(shù)結(jié)合,這不能不說(shuō)是一種缺陷。不失時(shí)機(jī)地把龍蝦規(guī)?;B(yǎng)殖與信息化管理技術(shù)結(jié)合起來(lái),迅速提升龍蝦養(yǎng)殖產(chǎn)業(yè)管理技術(shù)水準(zhǔn),以現(xiàn)代裝備手段,推動(dòng)龍蝦養(yǎng)殖產(chǎn)業(yè)長(zhǎng)足發(fā)展,是龍蝦人工繁殖、養(yǎng)殖技術(shù)進(jìn)一步發(fā)展的重要任務(wù)。
本項(xiàng)目旨在建設(shè)“盱眙龍蝦規(guī)?;B(yǎng)殖與信息化管理技術(shù)相結(jié)合的數(shù)字監(jiān)控系統(tǒng)”,它是把現(xiàn)代成熟的計(jì)算機(jī)控制技術(shù)和多種信息采集技術(shù),系統(tǒng)地應(yīng)用到大規(guī)模龍蝦養(yǎng)殖產(chǎn)業(yè)工作中,其實(shí)質(zhì)是把龍蝦養(yǎng)殖這個(gè)新興產(chǎn)業(yè)與計(jì)算機(jī)現(xiàn)代高科技手段相結(jié)合,以現(xiàn)代測(cè)控技術(shù)為實(shí)施農(nóng)業(yè)服務(wù),形成技術(shù)集成創(chuàng)新,引領(lǐng)龍蝦養(yǎng)殖管理技術(shù)的發(fā)展趨勢(shì)。
2 系統(tǒng)總體設(shè)計(jì)
在項(xiàng)目設(shè)計(jì)和實(shí)施中,將系統(tǒng)分為前端數(shù)據(jù)采集和上位機(jī)數(shù)據(jù)處理兩部分。前端主要對(duì)龍蝦養(yǎng)殖環(huán)境因子進(jìn)行數(shù)據(jù)采集,其中主要包括池塘的水溫、水中溶解氧指標(biāo)、PH值、空氣溫度、大氣壓力、空氣濕度、光照度等環(huán)境數(shù)據(jù)。同時(shí),配合閉路監(jiān)控系統(tǒng)實(shí)時(shí)圖像采集,直觀觀察養(yǎng)殖現(xiàn)場(chǎng)的情況。在上位機(jī)控制端,根據(jù)采集到的環(huán)境因子結(jié)合專家系統(tǒng)進(jìn)行分析,并通過(guò)系統(tǒng)自動(dòng)控制養(yǎng)殖場(chǎng)的增氧機(jī)、注水水泵和排水水泵進(jìn)行相應(yīng)的調(diào)節(jié)。在上位機(jī)和遠(yuǎn)端傳感器間通過(guò)CAN總線進(jìn)行信號(hào)傳遞,總體設(shè)計(jì)如圖1所示。
3 CAN總線的設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)采用一整套CAN總線接收控制卡、前端數(shù)據(jù)A/D轉(zhuǎn)換模塊和數(shù)字量輸出模塊,分別實(shí)現(xiàn)對(duì)傳感器的數(shù)據(jù)采集,遠(yuǎn)端繼電器板單元?jiǎng)幼骺刂?,進(jìn)而控制現(xiàn)場(chǎng)電氣設(shè)備。
PCI控制卡總線寬度32位,同步工作頻率可達(dá)到33MHz,最高傳輸速率為132MB/S,設(shè)計(jì)標(biāo)準(zhǔn)中考慮了負(fù)載,即使擴(kuò)展卡超過(guò)了負(fù)載的最大值,系統(tǒng)也能正常工作。并且提供數(shù)據(jù)和地址奇偶校驗(yàn)功能,保證了數(shù)據(jù)的完整性和準(zhǔn)確性。CAN接口通訊協(xié)議采用CAN2.0B(PeliCAN)兼容CAN2.0A,符合ISO/ISO11898規(guī)范。通訊距離最長(zhǎng)為10公里,很好的適應(yīng)了大范圍的池塘養(yǎng)殖的環(huán)境要求。近距離的最高傳輸速率能夠達(dá)到1Mbps。本項(xiàng)目中根據(jù)具體硬件的特點(diǎn),將CAN通訊協(xié)議幀分為兩種[1],一種是標(biāo)準(zhǔn)幀,另一種為擴(kuò)展幀。
4 智能監(jiān)控系統(tǒng)的設(shè)計(jì)
在本項(xiàng)目中上位機(jī)系統(tǒng)由兩部構(gòu)成,分別是數(shù)據(jù)采集控制監(jiān)控系統(tǒng)和互聯(lián)網(wǎng)信息遠(yuǎn)程監(jiān)控系統(tǒng)。數(shù)據(jù)采集控制系統(tǒng)采用.Net FrameWork3.0為平臺(tái)框架,主要完成對(duì)CAN接口卡的初始化和數(shù)據(jù)采集與現(xiàn)場(chǎng)電機(jī)設(shè)備控制。并且,將實(shí)時(shí)采集的數(shù)據(jù)保存到服務(wù)器的數(shù)據(jù)庫(kù)中。根據(jù)養(yǎng)殖專家領(lǐng)域知識(shí)形成的龍蝦養(yǎng)殖專家?guī)斓慕?jīng)驗(yàn),判斷比較采集數(shù)據(jù),自動(dòng)開啟池塘的增氧機(jī)、給水水泵或排水水泵。Web信息平臺(tái)系統(tǒng)采用Struts1.2為系統(tǒng)框架,Tomcat6.0為Web服務(wù)器,結(jié)合FushionChar圖表等多種開源技術(shù),實(shí)現(xiàn)了對(duì)養(yǎng)殖場(chǎng)情況的動(dòng)態(tài)遠(yuǎn)程監(jiān)控。系統(tǒng)基于CAN硬件接口的底層動(dòng)態(tài)鏈接庫(kù)can_pci.dll進(jìn)行編程[2]。下面是初始化CAN PCI控制卡的部分核心代碼:
[DllImport(\"\\\\can_pci.dll\", EntryPoint = \"CAN_Open\")]
static extern Boolean CAN_Open(int mindex);
[DllImport(\"\\\\can_pci.dll\", EntryPoint = \"CAN_Reset\")]
static extern Boolean CAN_Reset(int mindex);
[DllImport(\"\\\\can_pci.dll\", EntryPoint = \"CAN_Init\")]
static extern Boolean CAN_Init(int mindex, Byte[] config);
[DllImport(\"\\\\can_pci.dll\", EntryPoint = \"CAN_Trans\")]
static extern Boolean CAN_Trans(int mindex, byte[] config, int wtimeout);
[DllImport(\"\\\\can_pci.dll\", EntryPoint = \"CAN_Recv\")]
static extern Boolean CAN_Recv(int mindex, byte[] config, int rtimeout);
public void openChannel(Byte station_, Byte channel)//打開can通道
{ long data, data1;
Byte[] canbuff = new Byte[11];
Byte func;
Byte[] canbuff1 = new Byte[5];
Byte setout1, setout2;
Byte station = station_;
func = 8; //置輸出數(shù)據(jù)指令為h8
setout1 = channel;//設(shè)定輸出通道1置位
setout2 = 0x0;//設(shè)定輸出通道9置位
data = cframe(station, func);
data = data 0xFFFF;
data1 = (data 0xFF00) / 256;
canbuff1[0] = 2;//第一字節(jié)填入本幀數(shù)據(jù)場(chǎng)長(zhǎng)度
canbuff1[1] = (byte)data1;
canbuff1[2] = (byte)(data 0xFF);
canbuff1[3] = setout1;//要輸出的1-8通道數(shù)據(jù)內(nèi)容
canbuff1[4] = setout2;//要輸出的9-16通道數(shù)據(jù)內(nèi)容
}
public long cframe(Byte station1, Byte func1) //處理轉(zhuǎn)發(fā)幀的信息頭
{long a1, b1;
a1 = (station1 * 32) 0xFF0;
b1 = func1;
b1 = (b1 * 4096) 0xF000;
return a1 | b1; }
5 結(jié)論
1) 將CAN總線技術(shù)應(yīng)用于遠(yuǎn)距離數(shù)據(jù)采集和控制工程中,隨著距離的增加通訊速率呈現(xiàn)明顯下降趨勢(shì),但對(duì)于實(shí)時(shí)性要求不高的控制系統(tǒng),完全能夠滿足使用要求。
2) 模塊化設(shè)計(jì)開發(fā),提高系統(tǒng)開發(fā)效率,降低開發(fā)成本。項(xiàng)目中分別對(duì)硬件底層編程、上位機(jī)監(jiān)控系統(tǒng)的開發(fā)和Web應(yīng)用服務(wù)的設(shè)計(jì)進(jìn)行了模塊化得分工。
3) 將計(jì)算機(jī)應(yīng)用技術(shù)與現(xiàn)代農(nóng)業(yè)相結(jié)合,提高農(nóng)業(yè)生產(chǎn)效率。
參考文獻(xiàn):
[1] 陽(yáng)憲惠.現(xiàn)場(chǎng)總線技術(shù)及其應(yīng)用[M].北京:清華大學(xué)出版社,2006.
[2] 鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1996.