趙毅 趙爾迪 王偉 安鶴峰



摘要:根據國內奶牛飼喂技術的特點及發展現狀,采用PLC驅動飼喂機器人完成定位、給料、前后行走、轉彎等動作。介紹PLC技術的主要特點、控制原理,以及PLC技術與計算機的通信程序,為提高飼喂機器人的給料精度提供參考。
關鍵詞:PLC;奶牛飼喂;設計;機器人;通信
中圖分類號:TP273 文獻標識碼:A 文章編號:1674-1161(2016)02-0030-03
奶牛業在我國畜牧業中占有舉足輕重的地位。奶牛飼喂分為傳統飼喂技術、TMR飼喂技術和飼喂機器人技術3種,與這3種飼喂技術配套的設備都有各自的優點和不足。
1 奶牛飼喂技術發展現狀
目前,國內牛場普遍采用傳統飼喂技術。傳統飼喂技術有兩種方式:一是粗精飼料分類喂飼,將青貯、干草、塊根、糟渣類和精飼料分別喂給奶牛,每日3次擠奶、3次上槽飼喂。我國絕大部分奶牛場仍采用這種飼喂方式。二是經機械或人工攪拌后混合喂飼。傳統飼喂技術易造成奶牛挑食和搶食現象,且飼喂過程繁瑣,機械化作業困難,需要大量人工,生產率低。針對這一問題,國外一些發達國家于20世紀60年代開始推廣應用一種新的飼喂技術——全混合日糧飼喂方式(TOTAL Mixed Ration,TMR),我國于20世紀80年代引入該技術。TMR飼喂采用先進的控制方式,將奶牛的精飼料和粗飼料加工調制、攪拌混合、送料及喂料連成一體化,能夠使不同階段的牛群飼養實現機械化、自動化、定量化和營養均衡化。研究表明:該技術可以有效增加奶牛對飼料中干物質的需求,提高牛奶中蛋白質和脂肪的含量,簡化飼養程序,提高生產效率,提高產奶量約10%;受精/懷孕比從1.63提高至2.27;懷孕時間從395 d縮短到372 d。該飼喂方式也存在一些缺點,如成本過高、無法實現個體奶牛的飼喂等。而利用飼喂機器人(如圖1所示)代替人工作業,就可以有效地解決這個難題。通過PLC的精確自動控制,可以提高飼料利用率以及產奶率,降低勞動強度,減少浪費,進一步提高牛場的投入產出比。 2 PLC技術的主要特點及控制原理
2.1 PLC技術的主要特點
可編程序控制器(PLC)因具有功能性強、可靠性高、使用靈活方便、易于編程及適應工業環境下應用等一系列優點而被廣泛應用于工業控制。使用其作為系統的核心,不僅可使控制系統體積減小、功能易于擴展、系統工作更加穩定,還可大幅降低成本。PLC的主要特點為:1) 可靠性高,抗干擾能力強;2) 控制程序編程簡單,多數采用繼電器控制線路的梯形圖形式,具有很好的柔性;3) 豐富的I/O接口模塊,與外部設備連接方便,功能完善;4) 適應性強,應用靈活;5) 體積小、質量輕,是“機電一體化”特有的產品。
2.2 PLC飼喂控制原理
控制電路以PLC為核心。PLC接收嵌入式計算機的指令(同時向計算機發送相應響應),驅動周邊控制器件,以完成機器人的定位、給料、前后行走、轉彎等動作。采用PLC控制伺服電機,可使伺服電機控制螺旋桿更加精確地完成給料動作。該種方式的工作流程為:計算機負責將飼喂量數據轉換成數據字符串→數據字符串指令發送給PLC→PLC驅動步進電機完成給定的步進量,完成飼喂過程。流程如圖2所示。
通過軌道運行的飼喂機器人按奶牛個體體況飼喂相應的飼料。機器人由一個精料料斗和一個青貯料倉組成,懸掛于牛舍上部的工字鋼上,使用完全免維護的長效電池驅動,可以實現在工字鋼上運行到牛上方進行給料。
3 PLC與嵌入式計算機的通信程序設計
在現代工業控制領域,PLC已得到廣泛而深入的應用,然而它也存在一些固有的缺點,如數據的計算處理和管理能力較弱、無法提供人性化的交互界面等。將PLC與計算機結合起來能彌補這些不足,兩者結合的橋梁為PLC與計算機之間的通信?,F以松下PLC-FP0為例,討論PLC與計算機通信的規范和程序設計。
3.1 通信原理及規范
計算機與PLC間的通信一般采用RS485或RS232接口,信息交換以“幀”的格式進行。信息幀由ASCII字符串組成,其通信規范采用松下電工公司專用通信協議——MEWTOCOL-COM標準協議。在以計算機作為主站、PLC為從站的通信網絡中,通信由主站發起,將命令幀發向從站,從站以響應幀或錯誤幀作應答。MEWTOCOL-COM協議對命令幀、響應幀及錯誤幀格式做了嚴格規定。
在圖3所示的命令幀格式中:%OR<為MEWTOCOL-COM的命令幀開始標志,以%開頭的信息幀單幀最大長度為118字節,<為擴展頭,單幀最大長度可達2048字節;H,L為站地址的高位與低位;#為命令幀標識碼;命令代碼由兩個字節組成,讀寫IR/SR區時為RR和WR,讀寫DM區時為RD和WD;BCC為兩個字節的塊檢查碼,由從幀開始標志起到文本數據最后一個字節止的各字節相或得到;CR為回車結束符。在發送多幀命令時用字符“&”連接。
值得注意的是,在多幀命令發送的過程中,一幀發送后,只有當PLC發回響應消息后,下一幀才能發送。
圖4所示為錯誤幀格式,其中“!”為錯誤幀標識碼;“Err”為兩字節的錯誤標識碼。
計算機運用MEWTOCOL-COM協議提供的命令對PLC的寄存器(X)、寄存器(Y)、數據寄存器(D)、定時器(T)、輔助寄存器(R)、計數器(C)進行讀寫及監控。不同的命令將通過命令幀中的命令代碼來區別,MEWTOCOL-COM指令見表1。
3.2 通信程序的設計
上位機的通信程序基于C++語言編寫,將各PLC讀寫命令以函數的形式封裝到一個串行通信類CAccessPLC中。
3.2.1 CAN總線 CAN是Controller Area Network的縮寫,是ISO*1國際標準化的串行通信協議,被廣泛地應用于工業自動化、船舶、醫療設備、工業設備等領域。飼喂機器人的通信控制程序為:
voidCAccessCan::StartAccessCan()
{if(IsRun()) return;
m_CANRecv.m_pAccessCan = this;
StartThread();}
voidCAccessCan::StopAccessCan()
{StopThread();}
DWORD CAccessCan::RunThread()
while(!IsThreadAborted())
{Sleep(50);
m_CANRecv.Start();
WriteStationIDs();}
return 0;}
voidCAccessCan::WriteStationIDs()
{m_CANRecv.Start();
for (size_ti=0; i
CAN_PACKET Pkt;
//設置CAN Packet
memset(&Pkt;, sizeof(CAN_PACKET), 0 );
Pkt.dwType = CAN_PACKET_TYPE_STANDARD;
Pkt.dwID = 1;
Pkt.dwPrio = 0;
Pkt.dwDatLen = 8;
m_CANRecv.WriteCAN(&Pkt;);
strcpy(command, commandstr);
//定義BCC的高位和低位字符
char BCC_H, BCC_L;
3.2.2 生成BCC函數
charCAccessPLC:: exor(const char*rs, intlen, char*pH, char*pL)
{if (len<=0) return -1;
chareo;
if (len==1) eo =*rs;
elseeo = (*rs)^exor(rs+1,len-1, NULL, NULL);
if(pH &&pL;)
{if ( (eo>>4) < 0xA ) *pH = (eo>>4) + 0x30;
Else*pH = (eo>>4) + 0x37;
if ( (eo& 0x0F) < 0xA )
*pL = (eo& 0x0F) + 0x30;
Else*pL = (eo& 0x0F) + 0x37;}
returneo;}
3.2.3 接收響應 由于PLC與計算機的串行通信有一定延遲,所以在發送完一條指令后,應該等待一段時間再進行響應數據接收。
4 結論
機器人控制系統采用上、下機的控制結構,將管理和控制分離開來。機器人的控制作為下位機以嵌入式微處理實現控制任務。上位機為工業PC,主要實施奶牛場的管理。通過在牛舍安裝軌道,簡化移動式飼喂機器人的自主導航和定位,降低其控制系統的復雜程度和成本,為低價格飼喂機器人的推廣和應用奠定基礎。飼喂機器人的研究和開發,能夠推進畜牧業的自動化和奶牛場的科學管理,提高奶牛的產奶量和身體健康水平,可在奶牛場廣泛推廣應用。
參考文獻
[1] 范冠雄.基于Visual C++的數據庫訪問技術比較研究[J].計算機與數字工程,2010(1):54-57.
[2] 楊存志,李源源,楊旭,等.FR-200型奶牛智能化精確飼喂機器人的研制[J].農機化研究,2014(2):120-122.
[3] 李源源,王軍,閆景鳳,等.奶牛精確飼喂機器人的設計[J].農業科技與裝備,2013(11):36-37.