吳強(qiáng)澤,袁永明,2
(1.南京農(nóng)業(yè)大學(xué) 無錫漁業(yè)學(xué)院,江蘇 無錫214081;
2.中國水產(chǎn)科學(xué)研究院 淡水漁業(yè)研究中心 國家羅非魚產(chǎn)業(yè)技術(shù)研發(fā)中心農(nóng)業(yè)部淡水漁業(yè)和種質(zhì)資源利用重點(diǎn)實(shí)驗(yàn)室,江蘇 無錫214081)
投飼機(jī)已成為池塘投喂必不可少的設(shè)備,常用的投飼機(jī)按控制方式分為兩大類[1],一種是機(jī)械定時的普通投飼機(jī),另一種是以單片機(jī)或可編程邏輯控制器(programmable logic controller,PLC)為核心的智能程控投飼機(jī),這兩種都不具備感知飼料量的功能,只能根據(jù)定時時間來估算。目前,稱重傳感技術(shù)不僅普及于日常生活,也用于很多行業(yè)的連續(xù)計量過程,如中藥材溯源[2]和食品動態(tài)稱重[3]等。而PLC 技術(shù)也可用于很多稱重系統(tǒng)設(shè)計的控制部分,如,陸雪影[4]設(shè)計的稱重加料系統(tǒng);吳任和等人[5]研究的在線動態(tài)稱重分揀系統(tǒng)。PLC 可以讀取稱重傳感器的輸出信號,完成對飼料量的數(shù)據(jù)采集,然后反饋給投飼機(jī),實(shí)現(xiàn)對投喂過程的控制。
計重投喂系統(tǒng)主要包括三部分:負(fù)責(zé)投喂的投飼機(jī);感知重量的稱重裝置;實(shí)現(xiàn)控制的PLC。其中,稱重裝置安裝在投飼機(jī)的底部,用于實(shí)時計重;PLC 接收稱重裝置的輸出信號,從而控制投飼機(jī)的投喂過程。
1)設(shè)計一種能隨投飼機(jī)大小伸縮的稱重裝置,以適用于不同類型的投飼機(jī)。從外形上看,稱重裝置是由4 個相同規(guī)格的三角箱通過可伸縮滑軌連接而成的底座式結(jié)構(gòu),傳感器置于三角箱的內(nèi)部。整個稱重裝置如圖1 所示。
圖1 稱重裝置Fig 1 Weighing apparatus
2)稱重傳感器選用深圳科普瑞傳感儀器公司的平行梁式稱重傳感器CPR392B(50 kg),輸出靈敏度為2.0×(1±10%)mV/V。4 只傳感器組合使用,總量程約為200 kg。稱重變送器選用原廠日本NMB 公司的CSA—591,能放大輸出±10 V 給外圍PLC 控制系統(tǒng)。
3)系統(tǒng)的PLC 選用三菱FX 系列小型PLC,型號為FX2N—32MR—D。輸入和輸出繼電器各16 點(diǎn);PLC 采用24VDC 供電;帶一組RS—232 接口和RS—485 接口,內(nèi)置時鐘;配FX2N—2AD 模擬量輸入模塊;A/D 轉(zhuǎn)換單元含2 個模擬輸入通道占用輸入端子分別為:CH1 和CH2;輸入范圍為0 ~5 V,0 ~10 V,0 ~20 mA 可選。
稱重裝置內(nèi)的4 只傳感器實(shí)時感知投飼機(jī)的重量,連接變送器進(jìn)行信號放大。輸出的模擬量信號,PLC 無法直接讀取,需通過AD 模塊進(jìn)行A/D 轉(zhuǎn)換。PLC 接收信號后,通過預(yù)先設(shè)定的程序?qū)?shù)據(jù)進(jìn)行計算、比較、分析,從而控制投飼機(jī)的啟動和停止。投飼機(jī)則是直接面向養(yǎng)殖對象,執(zhí)行投喂的重要部分。圖2 是系統(tǒng)工作的原理圖。
圖2 系統(tǒng)原理Fig 2 System principle
計重投喂系統(tǒng)最基本的功能就是根據(jù)飼料量來控制整個投飼過程,工作時稱重裝置實(shí)時感知投飼機(jī)的重量,當(dāng)投喂的飼料量達(dá)到預(yù)先設(shè)定值時,投飼機(jī)立即停止工作,到下一次設(shè)定的投喂時間,投飼機(jī)按同樣的流程執(zhí)行投喂。
普通投飼機(jī)不設(shè)置無料停機(jī)功能,在人力不足的情況下,可能會出現(xiàn)飼料投完的狀況,這時投飼機(jī)空轉(zhuǎn)既浪費(fèi)電力,又容易造成機(jī)器故障。而計重投喂系統(tǒng)能實(shí)時感知料箱內(nèi)的剩余飼料量,當(dāng)余料不足以支持投喂時,不執(zhí)行投喂并發(fā)出投飼機(jī)需要加料的提醒。
首先,設(shè)定參數(shù),包括每次投喂需達(dá)到的量和每次投喂開始的時間。投喂前,需進(jìn)行剩余飼料量檢查,余料是料箱總重量減去投飼機(jī)的凈重得到。料箱內(nèi)的余料必須大于最低投喂量(可設(shè)定為一次或一天的投喂量);否則,不執(zhí)行投喂并發(fā)出加料提醒的指令。這種設(shè)定免除了料箱無料時,機(jī)器空轉(zhuǎn)的情況。到了定時投喂時間,投飼機(jī)開始工作,這時從傳感器得到一個初始重量,投喂過程中傳感器都會實(shí)時輸出重量,初始重量減去實(shí)時重量即為當(dāng)時的投喂量。若投喂量達(dá)到之前設(shè)定的值時,PLC 發(fā)出指令,投飼機(jī)停止工作,并進(jìn)入下一次計時。具體流程如圖3 所示。
圖3 工作流程Fig 3 Working flow
實(shí)現(xiàn)計重投喂功能,PLC 首先需要讀取稱重傳感器輸出的模擬量信號,而FX2N 系列并不自帶A/D 轉(zhuǎn)換功能,需擴(kuò)展一個模擬量輸入模塊,本系統(tǒng)選用FX2N—2AD,帶有2 路AD 輸入通道。稱重傳感器的信號從CH1 接入PLC。具體I/O 接線如圖4 所示。
圖4 I/O 接線圖Fig 4 I/O wiring diagram
設(shè)計的主程序負(fù)責(zé)控制投飼機(jī)的定時投喂,子程序主要用來實(shí)現(xiàn)飼料的重量信息采集,并將數(shù)據(jù)存儲到特定的單元中,計算出投飼機(jī)實(shí)時的投喂量,再判斷是否需要加料,從而實(shí)現(xiàn)計重投喂。首先設(shè)定投飼機(jī)開啟的定時時間,這需要讀取PLC 的內(nèi)置時鐘。參考三菱FX 系列編程手冊可知,內(nèi)置時鐘保存在特殊數(shù)據(jù)寄存器D8013 ~D8019 中,依次為秒、分、時、日、月、年、星期。三菱PLC 的時間讀取指令為TRD 指令。“TRD D0”代表的含義是:將PLC 的實(shí)時時鐘的數(shù)據(jù)讀入以D0 寄存器為首的7 個寄存器里。時間比較指令為TCMP,用于實(shí)時時間與設(shè)置開啟的時間的比對。投飼機(jī)每天都是定時開啟,所以,只需從小時位比較。若定時時間設(shè)為上午8:30,那么,定時投喂的梯形程序圖如圖5 所示。
圖5 定時梯形圖Fig 5 Timing ladder diagram
投飼機(jī)根據(jù)設(shè)定的時間開始投喂,停止投喂由投飼量決定。投飼量由稱重傳感器得出,傳感器接變送器后的輸出范圍為0 ~10V,F(xiàn)X2N—2AD 的精度為212,即4096,一般作增益偏移調(diào)整,取值0 ~4 000。當(dāng)0 ~4 000 的數(shù)值跟0 ~10 V 的模擬值并用時,數(shù)字值40 等于一個模擬輸入量100 mV。
三菱PLC 與AD 模塊之間的數(shù)據(jù)通信是由FROM 指令和TO 指令來執(zhí)行的。FROM 指令是將讀取特殊功能模塊內(nèi)的緩沖寄存器的數(shù)據(jù),TO 指令是將數(shù)據(jù)寫入到特殊功能模塊內(nèi)的緩沖寄存器中[7]。基本格式為“FROM(TO)Kn1Kn2Dn3Kn4”。Kn1為特殊模塊的地址編號;Kn2為要讀取的緩沖區(qū)的地址;Dn3為目標(biāo)寄存器起始地址編號(TO 為源寄存器起始地址編號)。也可用“K2M100”這樣的格式表示,K2 代表從特殊模塊BFM 讀取的二進(jìn)制的位數(shù),以4 位(bit)為單位,M100 為中間繼電器;Kn4 表示傳送的點(diǎn)數(shù)。實(shí)際上PLC 對AD 模塊的讀、寫操作都是對緩沖寄存器BFM進(jìn)行的。BFM 這一緩沖寄存器區(qū)由32 個16 位的寄存器組成,編號為BFM#0 ~#31。通道分配如表1 所示。
表1 FX2N-2AD BFM 分配表Tab 1 FX2N-2AD BFM allocation table
#17 緩存器中,b0 的數(shù)值是選擇哪一個通道,b1=1時開始進(jìn)行模擬量轉(zhuǎn)換。所以,讀取稱重傳感器的梯形程序圖如圖6 所示。
圖6 模擬量轉(zhuǎn)換梯形圖Fig 6 Analog conversion ladder diagram
梯形圖中,H0 即“0 0 0 0”選擇CH1 通道,H2 即“0 0 1 0”CH1 通道開始模擬量轉(zhuǎn)換?!癋ROM K0 K0 K2M100 K2”不是把BFM#0 和BFM#1 存到K2M100 中,而是把BFM#0存到K2M100,BFM#1 存到K2M108 中。
系統(tǒng)的投喂控制和缺料警報都需用到比較指令,投喂控制是與設(shè)定的投喂參數(shù)比較,缺料警報是與余料最低值比較。數(shù)值比較指令為CMP 指令[8]。以缺料警報為例,若從傳感器中得到的余料的數(shù)值存儲在D200 中,設(shè)定的最低余料為5 kg,由于量程為0 ~200 kg,所以,10 kg 根據(jù)線性關(guān)系相當(dāng)于數(shù)值100,比較指令為“CMP D200 K100 M100”,若D200 等于或小于K100 時,M101,M102 都指向Y004。這時缺料警報的燈亮起,投飼機(jī)不執(zhí)行投喂。
為檢驗(yàn)系統(tǒng)的穩(wěn)定性,對其進(jìn)行投喂測試。設(shè)定每次的投喂量分別為2.5,5,10 kg,每個級別各投喂5 次。記錄PLC 接收得到的傳感器數(shù)值并換算為重量,然后計算平均值及其相對誤差、標(biāo)準(zhǔn)差。具體數(shù)據(jù)如表2 所示。
表2 系統(tǒng)測試數(shù)據(jù)Tab 2 System test datas
觀察表2 可知,投喂的量越大,相對誤差越小,且均不超過5%。每5次投喂量的標(biāo)準(zhǔn)差都較小,說明系統(tǒng)運(yùn)行穩(wěn)定,無太大起伏。觀察所有數(shù)據(jù),發(fā)現(xiàn)實(shí)際投喂量大都低于設(shè)定值,考慮為投飼機(jī)工作時,震動產(chǎn)生的影響使傳感器的感知數(shù)值在上下波動,其最大值達(dá)到設(shè)定值時,系統(tǒng)感知并已發(fā)出停止投喂的信號,這時真實(shí)的投喂量并沒有達(dá)到要求,這說明系統(tǒng)很好地實(shí)現(xiàn)了計重投喂。
本系統(tǒng)是基于稱重傳感器和PLC 控制技術(shù)設(shè)計的一種定時開啟、實(shí)時稱重,并根據(jù)量來控制整個投飼過程的計重投喂系統(tǒng)。實(shí)際使用時,考慮投飼機(jī)震動沖擊的影響,傳感器輸出值與真實(shí)的投喂量存在一定的誤差,經(jīng)測試,誤差不到投喂量的5%,實(shí)際養(yǎng)殖中并不影響投喂效果。計重投喂系統(tǒng)符合現(xiàn)代化漁業(yè)生產(chǎn)的需要,使飼料投喂變得簡單而精準(zhǔn),具有廣闊的市場前景。
[1] 肖 忠,張新建,莫洪林.程控投餌機(jī)自動控制系統(tǒng)設(shè)計[J].農(nóng)機(jī)化研究,2007(12):79-82.
[2] 何 菊,陸明洲,王 珍,等.中藥材溯源系統(tǒng)中的高精度稱重傳感器節(jié)點(diǎn)設(shè)計[J].傳感器與微系統(tǒng),2015,34(3):123-125.
[3] 劉立業(yè),李 青.粘性塊狀食品動態(tài)定量稱重系統(tǒng)設(shè)計[J].機(jī)電工程,2008,25(8):62-65.
[4] 陸雪影.基于PLC 控制的稱重加料系統(tǒng)設(shè)計分析[J].電子技術(shù)與軟件工程,2015(2):179-180.
[5] Beggs Edwin J,Costa José Félix,,Tucker John V.Physical oracles:The turing machine and the Wheatstone bridge[J].Studia Logica,2010,95(1):279-300.
[6] 朱建梅,黃松和.平行梁式稱重傳感器的動態(tài)仿真分析[J].計算機(jī)應(yīng)用技術(shù),2014,41(11):31-35,76.
[7] 廖常初.PLC 模擬量輸入模塊的使用方法[J].電工技術(shù),2003(10):23-24.
[8] 李生明,楊 紅.三菱FX 系列PLC 比較指令的應(yīng)用[J].清遠(yuǎn)職業(yè)技術(shù)學(xué)院學(xué)報,2009(3):32-34.