吳強(qiáng)澤 袁永明
摘要 投飼機(jī)是繼增氧機(jī)后又一種量大面廣、顯著效益的水產(chǎn)養(yǎng)殖機(jī)械,傳統(tǒng)的漁用投飼機(jī)多采用機(jī)械定時(shí)的控制模式,常因精度差、定時(shí)不準(zhǔn)而造成飼料浪費(fèi)。針對(duì)這一問(wèn)題,該文提出一種基于PLC控制技術(shù)的解決方案。研究了以水溫為輸入?yún)?shù)的定時(shí)控制方法,重點(diǎn)對(duì)定時(shí)控制器的硬件構(gòu)成和 PLC 控制軟件的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行了詳細(xì)闡述,最后對(duì)其進(jìn)行實(shí)際運(yùn)行測(cè)試。測(cè)試結(jié)果表明,系統(tǒng)操作簡(jiǎn)單、運(yùn)行穩(wěn)定,投喂效果良好。
關(guān)鍵詞 投飼機(jī);PLC;水溫;定時(shí)控制器;軟件設(shè)計(jì)
中圖分類(lèi)號(hào) TP273;S951.2 文獻(xiàn)標(biāo)識(shí)碼 A 文章編號(hào) 0517-6611(2015)34-350-03
2007年的中央一號(hào)文件明確指出,發(fā)展現(xiàn)代化農(nóng)業(yè)是社會(huì)主義新農(nóng)村建設(shè)的首要任務(wù)[1]。現(xiàn)代漁業(yè)作為現(xiàn)代農(nóng)業(yè)的重要部分,具有規(guī)模化、集約化、標(biāo)準(zhǔn)化和產(chǎn)業(yè)化的特征。相對(duì)于我國(guó)水產(chǎn)養(yǎng)殖行業(yè)的規(guī)模,以及國(guó)外設(shè)施漁業(yè)的發(fā)展水平,我國(guó)的現(xiàn)代漁業(yè)相對(duì)滯后,自動(dòng)化程度較低,尤其在投飼方面較為突出[2-3]。漁用投飼機(jī)集定點(diǎn)、定時(shí)和定量于一體,具有投飼面積廣、投飼均勻、減少飼料浪費(fèi)、降低水質(zhì)污染的優(yōu)點(diǎn)。使用該機(jī)械既減輕了漁民的勞動(dòng)強(qiáng)度,又增加了魚(yú)的產(chǎn)量。投飼機(jī)是繼增氧機(jī)后又一種量大面廣、有顯著效益的水產(chǎn)養(yǎng)殖機(jī)械[4]。現(xiàn)有的投飼機(jī)大多采用機(jī)械定時(shí)的簡(jiǎn)易控制系統(tǒng)。這種定時(shí)方式有著兩個(gè)核心問(wèn)題:一是需要人工定時(shí),不能自動(dòng)開(kāi)啟;二是由于定時(shí)原理簡(jiǎn)單,常因接觸不良造成定時(shí)不準(zhǔn),甚至因?yàn)橥W叨锻觑暳?,造成浪費(fèi)并污染水質(zhì)?;赑LC的定時(shí)控制器可很好地解決上述問(wèn)題,同時(shí)也是漁業(yè)生產(chǎn)自動(dòng)化過(guò)程的重要嘗試,對(duì)池塘養(yǎng)殖的現(xiàn)代化發(fā)展具有重要意義。
1 傳統(tǒng)投飼機(jī)控制
1.1 常用控制器類(lèi)型 投飼機(jī)的控制器的主要功能是開(kāi)關(guān),定時(shí)和間歇控制功能,一般分為機(jī)械定時(shí)、電子定時(shí)和PLC或單片機(jī)為核心的控制器。按自動(dòng)化程度分為半自動(dòng)和全自動(dòng)兩種。機(jī)械控制器采用機(jī)械旋鈕的定時(shí)方式,一般設(shè)有開(kāi)機(jī)、定時(shí)時(shí)間、每次拋料的時(shí)間以及落料間隔時(shí)間這幾個(gè)控制按鈕。除了機(jī)械定時(shí),市面上也有很多電子定時(shí)的控制盒,這種控制器摒除了不準(zhǔn)確的機(jī)械旋鈕記時(shí)方式,采用電子控制按鍵,并且支持LED顯示的較為先進(jìn)的模式,但是仍不能設(shè)定長(zhǎng)時(shí)間的投飼計(jì)劃。PLC或單片機(jī)為核心的控制器,屬于全自動(dòng)的控制模式。符合更先進(jìn)的漁業(yè)生產(chǎn)需要。但是考慮到養(yǎng)殖成本問(wèn)題,目前投放到市場(chǎng)的上仍以機(jī)械定時(shí)控制的投飼機(jī)為主流。
1.2 機(jī)械定時(shí)器原理 定時(shí)器按結(jié)構(gòu)和性能,一般可分為3類(lèi):機(jī)械發(fā)條式、電子式和電動(dòng)式[5]。由于機(jī)械發(fā)條式定時(shí)器價(jià)格低,操作方便、維修容易、適應(yīng)面較廣等特點(diǎn),普通投飼機(jī)也采用這種機(jī)械定時(shí)控制裝置,相當(dāng)于一個(gè)內(nèi)置機(jī)械時(shí)鐘,通過(guò)齒輪和發(fā)條的轉(zhuǎn)動(dòng)來(lái)記錄時(shí)間。
機(jī)械定時(shí)器內(nèi)部結(jié)構(gòu)主要由3部分組成:第1部分是動(dòng)力部件,由發(fā)條[6]、上發(fā)條的單向機(jī)構(gòu),人工擰轉(zhuǎn)時(shí)發(fā)條擰緊就提供了整個(gè)系統(tǒng)的動(dòng)力;第2部分是釋放部件,由一系列的齒輪組成,齒輪變速,使發(fā)條松弛時(shí)的旋轉(zhuǎn)周數(shù)增加,在齒輪系的末端有擒縱輪、擒縱爪和游絲,用來(lái)保證齒輪系在發(fā)條的驅(qū)動(dòng)下以恒定的速度轉(zhuǎn)動(dòng)。游絲上設(shè)有調(diào)整游絲長(zhǎng)度的裝置,以調(diào)整擒縱爪擺動(dòng)的頻率,保證齒輪按設(shè)定的轉(zhuǎn)速旋轉(zhuǎn),避免將已擰緊的發(fā)條一下子松完,同時(shí)也不受發(fā)條松緊的影響而導(dǎo)致轉(zhuǎn)速的變化;第3部分是定時(shí)觸發(fā)裝置,使齒輪系中某個(gè)齒輪轉(zhuǎn)到一定角度后發(fā)出一個(gè)電信號(hào)或機(jī)械信號(hào),停止供電。
1.3 局限性分析 這種以機(jī)械定時(shí)器為控制核心的投飼機(jī)只是單純的取代手工拋灑這一重復(fù)性動(dòng)作[7],有著諸多的局限性。
(1)自動(dòng)化程度低。傳統(tǒng)的投飼機(jī)工作時(shí)必須人工設(shè)定時(shí)間,每次定時(shí)只能完成一次投喂。一天投喂多次時(shí)需每次提前轉(zhuǎn)動(dòng)定時(shí)旋鈕。在炎熱天氣,人力不足時(shí)造成養(yǎng)殖戶(hù)很大困擾;(2)定時(shí)不準(zhǔn)確。這種以機(jī)械定時(shí)器為控制核心的投飼機(jī),設(shè)定定時(shí)檔時(shí),需轉(zhuǎn)動(dòng)旋鈕到需要的時(shí)間刻度,然后發(fā)條開(kāi)始松動(dòng),機(jī)器開(kāi)始工作。這樣多次摩擦過(guò)后發(fā)條和齒輪被損耗,導(dǎo)致定時(shí)不準(zhǔn)。(3)容易停走。機(jī)械定時(shí)裝置工作一段時(shí)間后,內(nèi)部結(jié)構(gòu)長(zhǎng)時(shí)間磨損,受環(huán)境腐蝕,發(fā)條與齒輪轉(zhuǎn)動(dòng)不順暢,甚至卡住,導(dǎo)致投飼機(jī)停走。這種情況下飼料可能一次被投完,從而造成浪費(fèi)。
這種機(jī)械定時(shí)的控制方式雖然能滿(mǎn)足日常的池塘魚(yú)類(lèi)養(yǎng)殖需要,但受限于其局限性,必將被新型的定時(shí)裝置所取代。
2 PLC控制方案設(shè)計(jì)
2.1 基本方法 控制器以PLC為控制核心,水溫為控制變量,時(shí)間為輸出變量。魚(yú)類(lèi)生長(zhǎng)對(duì)水溫有著很高的要求,以羅非魚(yú)為例,養(yǎng)殖水溫要求在18~32 ℃之間[8], 最適水溫為28~30 ℃[9],這種水溫條件下攝食效率最高。水溫傳感器選用Troll9500多參數(shù)水質(zhì)監(jiān)測(cè)儀,支持RS485接口,可測(cè)水溫范圍為-5~50 ℃。PLC支持RS485接口,讀取的溫度值可被存儲(chǔ)。計(jì)算前一天的水溫平均值作為輸入變量決定第2天的定時(shí)方案。具體設(shè)計(jì)如下:當(dāng)水溫低于20 ℃或高于30 ℃時(shí),每天只投喂1 次,投飼時(shí)間定在上午9 點(diǎn);當(dāng)水溫在20~25 ℃之間時(shí),每天投喂2次,投飼時(shí)間選在上午9點(diǎn)及下午5點(diǎn);當(dāng)水溫在25~30 ℃之間時(shí),每天投喂3次,時(shí)間分別設(shè)定在上午8時(shí)、下午 2 時(shí)和 6 時(shí)。確定投喂次數(shù)后,再?zèng)Q定每次的投喂量。由于魚(yú)類(lèi)有在早上進(jìn)食欲望高于傍晚的習(xí)性,因此可早上多投,傍晚少投。投飼量在PLC設(shè)計(jì)時(shí)以時(shí)間長(zhǎng)度推算,具體時(shí)間由投飼機(jī)的投飼速率試驗(yàn)得出。
2.2 投飼速率 試驗(yàn)所用投飼機(jī)為振動(dòng)離心式投飼機(jī)。具體為江蘇省無(wú)錫市凱靈電泵廠(chǎng)的凱靈STLZ120WB投飼機(jī)。整機(jī)重量35 kg;配套電壓220 V;料箱容量60 kg;投飼距離3~15 m;投飼扇形角90~130度;最大投飼能力≥200 kg/h;投飼破碎率≤5%;適用水面0.66 7~1 hm2。
試驗(yàn)前,調(diào)整投飼機(jī)的落料時(shí)間為5 s,間隔時(shí)間為7 s。為統(tǒng)計(jì)方便,把開(kāi)關(guān)撥到常開(kāi),用手機(jī)計(jì)時(shí)5 min后手動(dòng)關(guān)閉,投出的飼料用大塑料袋收集,然后稱(chēng)出重量,連續(xù)測(cè)5次,計(jì)算其平均值。試驗(yàn)中發(fā)現(xiàn)機(jī)器開(kāi)啟時(shí)都有17 s的預(yù)熱時(shí)間,之后才開(kāi)始投喂飼料,因此實(shí)際計(jì)算時(shí)需減掉17 s的時(shí)間,具體數(shù)據(jù)見(jiàn)表1。
由表1可知,5次投喂,所投飼料重量的平均值為8.465 kg,其標(biāo)準(zhǔn)差只有0.158 8,說(shuō)明相同時(shí)間內(nèi)的投飼機(jī)的投飼量是相對(duì)穩(wěn)定的,用投飼速率表示投飼機(jī)的工作效率是可靠的。所得重量除以時(shí)間即可計(jì)算出投飼機(jī)的投飼速率,約為29.91 g/s。
2.3 定時(shí)分配 試驗(yàn)選在尼羅羅非魚(yú)和奧利亞羅非魚(yú)混養(yǎng)模式池塘,飼料選用通威配合飼料1038,袋裝40 kg。初期放養(yǎng)魚(yú)體總重331 kg,平均體重約158 g每尾。若日投喂量占魚(yú)體總重的3%,即一天需投喂飼料9.93 kg。投飼機(jī)的投飼速率為29.91 g/s,可計(jì)算一天總的投喂時(shí)間為332 s。由于投喂次數(shù)和時(shí)間根據(jù)水溫有所不同。需分配每次的投喂時(shí)長(zhǎng),不考慮天氣等諸多因素,設(shè)當(dāng)天正常投喂。定時(shí)1次:投喂全部飼料;定時(shí)2次:早上和傍晚的投喂比例為3∶2;定時(shí)3次:早上、中午以及傍晚的比例為4∶3∶3。每次開(kāi)機(jī)時(shí)間需加上預(yù)熱17 s,具體投飼時(shí)間如表2所示。
養(yǎng)殖周期內(nèi),魚(yú)類(lèi)會(huì)急速增重,這時(shí)具體投喂時(shí)間需根據(jù)魚(yú)的規(guī)格及時(shí)調(diào)整。
3 PLC實(shí)現(xiàn)
3.1 硬件選型 PLC選用國(guó)產(chǎn)耐特LT200系列,具體型號(hào)為“CPU224XP AC/DC/RLY”。24VDC電源供電,14DI/10DO晶體管,2AI/1AO,可連接7個(gè)模塊,2個(gè)485編程通信口支持,可采用PPI協(xié)議連接市面上常用的文本、觸摸屏和上位組態(tài)軟件。功能指令均可兼容西門(mén)子CPU224系列產(chǎn)品。人機(jī)交互選用LTMD204L可編程文本顯示器,通過(guò)編輯軟件TP200CN在計(jì)算機(jī)上制作畫(huà)面,自由輸入漢字及設(shè)定 PLC 地址,使用串口通訊下載畫(huà)面,20個(gè)按鍵可被定義成功能鍵,有數(shù)值輸入小鍵盤(pán),操作簡(jiǎn)便。
3.2 程序設(shè)計(jì) LT200系列支持IEC 11313及SIMATIC指令集[10],支持中英文編程,可直接使用STEP7MICRO/WIN SP9軟件編程,支持梯形圖、指令表以及功能圖等多種編程語(yǔ)言。
3.2.1 系統(tǒng)符號(hào)定義。設(shè)計(jì)程序時(shí),為方便修改參數(shù),預(yù)先自定義符號(hào)及其地址。如“addr0”表示傳感器地址,“addr1”表示保存寄存器的地址。這種自定義符號(hào)并分配地址后,修改參數(shù)時(shí)無(wú)需重新編寫(xiě)程序,改變寄存地址的數(shù)值即可。具體地址和初始賦值見(jiàn)表3。
3.2.2 傳感器值讀取。所選傳感器支持RS485通信口,在西門(mén)子S7200系列PLC編程中需安裝MODBUS協(xié)議庫(kù)。首先需初始化主站和從站。初始化從站的程序片段如圖1所示。
SM為特殊標(biāo)志繼電器。“SM0.1”是首次掃描為1,以后為0,常用來(lái)對(duì)程序進(jìn)行初始化?!癝M0.0”表示始終接通。圖1中“addr0”為傳感器地址?!皃arity”為校驗(yàn)位?!癕ode”為1表示執(zhí)行Modbus協(xié)議。波特率選用9600?!癉elay”為延遲?!癕axAI”為保存寄存器最大數(shù)目。“MaxIQ”為I和Q最大數(shù)目?!癕axHold”表示保存寄存器最大數(shù)目,“Holdstart”表示保存寄存器在V內(nèi)存中的起始地址。
初始化后使用MBUS_MSG指令(或用于端口1的MBUS_MSG_P1)用于啟動(dòng)對(duì)Modbus從站的請(qǐng)求并處理應(yīng)答,程序如圖3所示。
“Slave”為從站設(shè)備地址,允許范圍是0-247?!癛W”為讀寫(xiě)指令。值為“0”表示讀,值為“1”表示寫(xiě)?!癈ount”表示指定要在該請(qǐng)求中讀或?qū)懙臄?shù)據(jù)元素?cái)?shù)目。對(duì)位數(shù)據(jù)類(lèi)型而言,Count是位數(shù),對(duì)字?jǐn)?shù)據(jù)類(lèi)型而言,Count是字?jǐn)?shù)?!癉ataPtr” 是間接地址指針,該指針指向S7200 CPU中與讀或?qū)懻?qǐng)求相關(guān)的數(shù)據(jù)的V存儲(chǔ)器。利用此指令可讀出傳感器的一串?dāng)?shù)據(jù)值。
3.2.3 定時(shí)控制。水溫決定定時(shí)控制的方案。依據(jù)表2,T<20、T >30時(shí)輸出“M1.1”,定時(shí)1次。20≤T ≤25時(shí)輸出“M1.2”,定時(shí)2次。25 程序設(shè)計(jì)時(shí)首先使用讀實(shí)時(shí)時(shí)鐘(TODR)指令從硬件時(shí)鐘中讀當(dāng)前時(shí)間和日期,并把它裝載到一個(gè)8字節(jié),起始地址為T(mén)的時(shí)間緩沖區(qū)中[11-12]。程序片段如圖4所示。 “SM0.5”表示時(shí)鐘脈沖,每1秒讀取1次。T設(shè)為“VB0”表示以“VB0”為起始地址的 8 字節(jié)緩沖區(qū),依次存放年“VB0”、月“VB1”、日“VB2”、時(shí)“VB3”、分“VB4”、秒“VB5”、0“VB6”和星期“VB7”。 投飼機(jī)的定時(shí)控制不需要考慮年、月、日,因?yàn)槊刻於级〞r(shí)定點(diǎn)開(kāi)啟。所以只需比較時(shí)、分、秒。參考前文可知投飼機(jī)每次投喂時(shí)間不超過(guò)1 h,所以小時(shí)位不會(huì)變動(dòng)。分秒同時(shí)進(jìn)行比較。由于“VW1”等同于“VB1”和“VB2” ,“VB3”為時(shí),“VW4”即表示分和秒。具體定時(shí)控制梯形圖程序如圖5所示。