




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于PLC與單片機(jī)的智能牧場(chǎng)實(shí)時(shí)監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要畜牧業(yè)的生產(chǎn)力取決于品種、飼料、環(huán)境以及是否有合理有效的管理方案,不適宜的環(huán)境條件,比如:光照、水分、溫度、空氣質(zhì)量、衛(wèi)生情況等不合適都會(huì)使畜牧生產(chǎn)力下降,牧場(chǎng)的實(shí)時(shí)監(jiān)控和檢測(cè)可以有效地應(yīng)對(duì)場(chǎng)內(nèi)的突發(fā)情況,合理高效的管理方弌、智能的處理系統(tǒng)對(duì)保證牧場(chǎng)高產(chǎn)、高效運(yùn)轉(zhuǎn)具有積極意義。本創(chuàng)意作品能夠針對(duì)智能農(nóng)場(chǎng)的實(shí)際情況,綜合運(yùn)用智能傳感器模塊、單片機(jī)STC89C52系統(tǒng)、PLC、NRF24L01P射頻芯片、無(wú)線傳輸技術(shù)進(jìn)行實(shí)時(shí)的適當(dāng)調(diào)節(jié),是能夠?qū)δ翀?chǎng)的溫濕度、食物重量、飲用水水位等參數(shù)進(jìn)行實(shí)時(shí)監(jiān)測(cè)、具有日常管理功能的智能牧場(chǎng)。關(guān)鍵詞:?jiǎn)纹瑱C(jī)STC89C52系統(tǒng);無(wú)線傳輸;NRF24L01P射頻芯片;PLC目錄TOC\o"1-3"\h\u1引言 智能牧場(chǎng)系統(tǒng)軟件設(shè)計(jì)對(duì)于智能牧場(chǎng)系統(tǒng)的整體設(shè)計(jì),編程以C語(yǔ)言和三菱PLC編程語(yǔ)言為主。C語(yǔ)言是面向過(guò)程的、抽象化的編程語(yǔ)言。它是一種以簡(jiǎn)易的方式\t"/item/c%E8%AF%AD%E8%A8%80/_blank"編譯、處理低級(jí)\t"/item/c%E8%AF%AD%E8%A8%80/_blank"存儲(chǔ)器,并在不需要任何運(yùn)行環(huán)境下僅通過(guò)產(chǎn)生少量的\t"/item/c%E8%AF%AD%E8%A8%80/_blank"機(jī)器碼便能運(yùn)行的編程語(yǔ)言。同時(shí),C語(yǔ)言具有語(yǔ)言簡(jiǎn)潔、數(shù)據(jù)類(lèi)型豐富、可讀性好、易于\t"/item/c%E8%AF%AD%E8%A8%80/_blank"調(diào)試、修改和移植的優(yōu)點(diǎn),不僅能夠直接對(duì)硬件進(jìn)行操作,還能用于開(kāi)發(fā)系統(tǒng)軟件和編寫(xiě)程序。三菱PLC編程語(yǔ)言一共有六種,分別是指令表編程、梯形圖編輯、步進(jìn)梯形圖、結(jié)構(gòu)文本語(yǔ)言、結(jié)構(gòu)化梯形圖和FBD功能模塊表。其中,最常用的就是梯形圖編輯,它是通過(guò)在圖示的畫(huà)面上使用順序符號(hào)和軟元件編號(hào)畫(huà)順控梯形圖的編輯方式。由于觸點(diǎn)符號(hào)和線圈符號(hào)是順控回路的主要特點(diǎn),所以程序的內(nèi)容會(huì)讓人更容易理解。4.1編程軟件介紹4.1.1Keil軟件Keil是51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),它提供了完整的開(kāi)發(fā)方案。它通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境,把C編譯器、鏈接器、宏匯編、庫(kù)管理以及一個(gè)功能強(qiáng)大的仿真調(diào)試器等組合在一起,這樣可以極大地提高在生成目標(biāo)代碼上的效率,并且可以讓其語(yǔ)句形成的匯編代碼更有邏輯、更緊湊、更能讓別人理解代碼的功能意義。4.1.2GXWorks2軟件GXWorks2是三菱公司推出的\t"/item/GX%20Works2/_blank"PLC編程軟件,它是一款致力于PLC設(shè)計(jì)、調(diào)試、維護(hù)的編程工具。這款軟件編程主要用于機(jī)械設(shè)備,一些指令的輸入和設(shè)置將通過(guò)軟件編程來(lái)完成,從而達(dá)到讓機(jī)械具備執(zhí)行邏輯運(yùn)算、順序控制、定時(shí)等功能。相對(duì)于傳統(tǒng)的GXDeveloper軟件,提高了功能及操作性能,變得更加容易使用。4.2軟件設(shè)計(jì)本設(shè)計(jì)采用C語(yǔ)言和PLC編程程序進(jìn)行編程。本設(shè)計(jì)的程序分為兩部分。一部分是由單片機(jī)所控制的牧場(chǎng)的基本飼養(yǎng)、消毒等功能的實(shí)現(xiàn),另一部分是由PLC控制的牧場(chǎng)防盜方面的實(shí)現(xiàn)。4.2.1自動(dòng)喂糧程序設(shè)計(jì)首先,由稱(chēng)重傳感器讀取當(dāng)前食物重量,基于原理需求,需要通過(guò)一個(gè)轉(zhuǎn)換函數(shù)讀取此刻的重量值,并通過(guò)線性方程轉(zhuǎn)換獲取此時(shí)的食物重量,計(jì)算食物重量程序如下所示:zxc=HX711_Read();zxc=(unsignedint)((float)zxc/GapValue); //計(jì)算實(shí)物的實(shí)際重量當(dāng)前采集的食物的重量與沒(méi)放食物前的重量的差值,若少于給定值則發(fā)出低電平,觸發(fā)電磁閥加糧;若大于給定值,則不加糧,持續(xù)檢測(cè)食物重量,其程序如下所示:voiddflt(u16te)//te為當(dāng)前食物重量與沒(méi)放食物前的重量的差值{ if(te>=0&&te<9999) { Tx_Buf1[0]=te/100; Tx_Buf1[1]=te%100; } else { Tx_Buf1[0]=99; Tx_Buf1[1]=99; } if(a1==0) { if(te<500) { pwm1=0; } else { pwm1=1; } }}4.2.2自動(dòng)喂水程序設(shè)計(jì)飲用水的水位由水位傳感器檢測(cè),檢測(cè)得到的模擬信號(hào)傳給XPT2046模塊進(jìn)行AD轉(zhuǎn)換,轉(zhuǎn)換成數(shù)字量后傳給單片機(jī),單片機(jī)把得到的數(shù)值與給定值比較。當(dāng)飲用水低于某一規(guī)定值時(shí),將發(fā)出低電平信號(hào),驅(qū)動(dòng)水泵抽水,直至水位達(dá)到規(guī)定水位則停止抽水。自動(dòng)喂水程序如下所示:ad1=Read_AD_Data(0xE4); //讀取水位傳感器模擬量并轉(zhuǎn)為數(shù)字量Tx_Buf1[2]=ad1/100;Tx_Buf1[3]=ad1%100;if(a2==0) { if(ad1<200) { pwm2=1; } else { pwm2=0; } } 4.2.3定時(shí)通風(fēng)消毒程序設(shè)計(jì)本設(shè)計(jì)的通風(fēng)消毒采用中斷函數(shù)每間隔15s,輸出一次低電平驅(qū)動(dòng)外接元器件進(jìn)行消毒通風(fēng)一次,每次持續(xù)5s的時(shí)間,定時(shí)通風(fēng)消毒程序如下:voidTimer0()interrupt1using0{ xianshi+=1; if(xianshi==mubiao) { pwm6=0; } if(xianshi==20000) { xianshi=0; pwm6=1; } TH0=(65536-1000)/256; TL0=(65536-1000)%256;}4.2.4藍(lán)牙控制程序設(shè)計(jì)本設(shè)計(jì)使用的是HC-05藍(lán)牙模塊,在編程時(shí),需要初始化串口,設(shè)置好串口的通信波特率,開(kāi)啟串口中斷,編寫(xiě)串口中斷函數(shù)。當(dāng)手機(jī)藍(lán)牙與本設(shè)計(jì)藍(lán)牙配對(duì)成功后,藍(lán)牙模塊接收手機(jī)發(fā)送的信號(hào),將信號(hào)通過(guò)串口發(fā)送給單片機(jī),單片機(jī)接收到信號(hào)后,執(zhí)行相應(yīng)的操作。串口初始化的程序函數(shù)如下所示:voidUsartInit(){SCON=0X50; //設(shè)置為工作方式1TMOD&=0X0F;//清0T1的控控制位TMOD|=0X20; //設(shè)置計(jì)數(shù)器工作方式2PCON|=0X80; //波特率加倍TH1=0XF3; //計(jì)數(shù)器初始值設(shè)置TL1=0XF3; ET1=0;//禁止T1中斷ES=1; //打開(kāi)接收中斷 EA=1; //打開(kāi)總中斷TR1=1; //打開(kāi)計(jì)數(shù)器}串口通信中斷函數(shù)的程序如下所示:voidUsart()interrupt4{if(RI){ receiveData=SBUF;//出去接收到的數(shù)據(jù)RI=0;//清除接收中斷標(biāo)志位SBUF=receiveData;//將接收到的數(shù)據(jù)放入到發(fā)送寄存器Tx_Buf1[8]=receiveData-'0'+0;}while(!TI); //等待發(fā)送數(shù)據(jù)完成TI=0; //清除發(fā)送完成標(biāo)志位} 藍(lán)牙控制元器件實(shí)現(xiàn)自動(dòng)喂糧、自動(dòng)喂水、通風(fēng)、遮陽(yáng)擋雨功能的程序如下所示: if(receiveData=='0') { a0=0;a1=0;a2=0;a3=0;a4=0; } if(receiveData=='a')//停止放糧 { AS='a'; a1=1;pwm1=1;a0=1; } elseif(receiveData=='b')//放糧 { AS='a'; a1=1;pwm1=0;a0=1; } if(receiveData=='c') { a2=1; AS='b';pwm2=1;a0=1; } elseif(receiveData=='d') { a2=1; AS='b';pwm2=0;a0=1; } if(receiveData=='e') { a3=1; AS='c';pwm3=1;a0=1; } elseif(receiveData=='f') { a3=1; AS='c';pwm3=0;a0=1; } if(receiveData=='g')//正轉(zhuǎn) { a4=1; AS='d';pwm4=1;a0=1; } elseif(receiveData=='h')//停止正轉(zhuǎn) { a4=1; AS='d';pwm4=0;a0=1; } if(receiveData=='i')//停止反轉(zhuǎn) { a4=1; AS='e';pwm5=0;a0=1; } elseif(receiveData=='j')//反轉(zhuǎn) { a4=1; AS='e';pwm5=1;a0=1; }4.2.5溫濕度檢測(cè)程序設(shè)計(jì)本設(shè)計(jì)采用DHT11溫濕度傳感器來(lái)自動(dòng)檢測(cè)牧場(chǎng)溫濕度,并將溫濕度的數(shù)據(jù)顯示在屏幕上,溫濕度傳感器數(shù)據(jù)處理與顯示的程序如下所示:voidDHT11_receive(){ucharR_H,R_L,T_H,T_L,RH,RL,TH,TL,revise;DHT11_start();if(Data==0){while(Data==0);DHT11_delay_us(40);R_H=DHT11_rec_byte();R_L=DHT11_rec_byte();T_H=DHT11_rec_byte();T_L=DHT11_rec_byte();revise=DHT11_rec_byte();DHT11_delay_us(25);if((R_H+R_L+T_H+T_L)==revise){RH=R_H;RL=R_L;TH=T_H;TL=T_L;}rec_dat[0]=RH/10+'0';rec_dat[1]=(RH%10)+'0';rec_dat[2]='%';rec_dat[3]='R';rec_dat[4]='H';rec_dat[5]='';rec_dat[6]='';rec_dat[7]=(TH/10)+'0';rec_dat[8]=(TH%10)+'0';rec_dat[9]='^';rec_dat[10]='C';Tx_Buf1[4]=RH;Tx_Buf1[5]=TH; }}4.2.6無(wú)線傳輸模塊程序設(shè)計(jì)GT-24無(wú)線傳輸模塊程序根據(jù)官方的庫(kù)文件以及數(shù)據(jù)手冊(cè)進(jìn)行編程設(shè)置。通過(guò)進(jìn)行設(shè)置接收地址、裝載數(shù)據(jù)、發(fā)送指令等一系列操作,從而達(dá)到無(wú)線傳輸數(shù)據(jù)。GT-24無(wú)線傳輸模塊程序如下所示:voidNRF24L01TxPacket(u8*tx_buf){ CE=0; //StandByI模式 Spi24L01WriteBuf(WRITE_REG+RX_ADDR_P0,TX_ADDRESS,TX_ADR_WIDTH);//裝載接收端地址 Spi24L01WriteBuf(WR_TX_PLOAD,tx_buf,TX_PLOAD_WIDTH); //裝載數(shù)據(jù) CE=1; //置高CE,激發(fā)數(shù)據(jù)發(fā)送}4.2.7密碼輸入程序當(dāng)按下輸入密碼按鍵X12后,輔助繼電器M26線圈和定時(shí)器T1線圈得電,定時(shí)器T1開(kāi)始計(jì)時(shí),M26常開(kāi)接點(diǎn)閉合,由于定時(shí)器T1的時(shí)鐘脈沖為100ms,而設(shè)定值K為1,即100ms后,定時(shí)器T1的常開(kāi)接點(diǎn)閉合,開(kāi)始調(diào)用執(zhí)行指針標(biāo)號(hào)為P0的子程序,此時(shí)開(kāi)始輸入第一個(gè)數(shù)字,按下數(shù)字按鍵X0~X11中的一個(gè),即把對(duì)應(yīng)的數(shù)字輸入到寄存器D4中,并使輔助繼電器M13線圈和定時(shí)器T2線圈得電,此時(shí)定時(shí)器T2的常閉觸點(diǎn)立刻斷開(kāi),T2的常開(kāi)觸點(diǎn)立即閉合,輔助繼電器M13常開(kāi)觸點(diǎn)也閉合,從而導(dǎo)致定時(shí)器T2線圈將持續(xù)得電,在定時(shí)時(shí)間結(jié)束后,其常閉觸點(diǎn)則一直在斷開(kāi)狀態(tài),而定時(shí)器T2的常開(kāi)觸點(diǎn)仍然閉合,導(dǎo)致定時(shí)器T1的線圈失電,其常開(kāi)觸點(diǎn)斷開(kāi),此時(shí)跳出指針編號(hào)為P0的子程序,開(kāi)始執(zhí)行指針編號(hào)為P1的子程序。同樣地,剩下的三個(gè)數(shù)字的輸入與此類(lèi)似。在執(zhí)行指針編號(hào)為P1的子程序時(shí),按下要輸入的數(shù)字按鍵后數(shù)值就被存入寄存器D5,輔助繼電器M14線圈和定時(shí)器T3線圈就會(huì)通電,此時(shí)定時(shí)器T3的常閉觸點(diǎn)立即斷開(kāi),跳出指針編號(hào)為P1的子程序,而定時(shí)器T3的常開(kāi)觸點(diǎn)立即閉合,開(kāi)始執(zhí)行指針編號(hào)為P2的子程序。再次按下需要的數(shù)字按鍵后數(shù)值被存入寄存器D6,并使輔助線圈M15線圈和定時(shí)器T4線圈得電,此時(shí)定時(shí)器T4的常閉觸點(diǎn)立即斷開(kāi),跳出指針編號(hào)為P2的子程序,常開(kāi)接點(diǎn)立即閉合,開(kāi)始執(zhí)行指針編號(hào)為P3的子程序。按下需要的數(shù)字按鍵后數(shù)值被存入寄存器D7,至此,輸入的數(shù)字將分別存放在寄存器D4~D7中,下一步將與正確的密碼進(jìn)行驗(yàn)證。這樣的操作使得在輸入下一個(gè)數(shù)字時(shí),不會(huì)改變前面存入寄存器數(shù)字,使輸入的數(shù)字得以保存來(lái)進(jìn)行密碼識(shí)別。密碼輸入程序如圖4.1所示:圖4.1密碼輸入程序4.2.8密碼檢驗(yàn)程序由四位數(shù)字組成開(kāi)鎖密碼,當(dāng)輸入密碼后,按下確認(rèn)密碼按鍵X13開(kāi)始驗(yàn)證密碼,比較指令將從輸入的第一個(gè)數(shù)字開(kāi)始驗(yàn)證,與真實(shí)密碼的第一個(gè)數(shù)值進(jìn)行比較,比較指令中,當(dāng)被比較值大于比較值,M0=1,被比較值等于比較值,M1=1,被比較值小于比較值,M2=1,即只有數(shù)值相同時(shí),才能使常開(kāi)觸點(diǎn)M1閉合,從而才能繼續(xù)驗(yàn)證輸入的第二個(gè)數(shù)字。若有一個(gè)數(shù)值不相同,則不開(kāi)鎖并記錄錯(cuò)誤次數(shù)。只有當(dāng)四位數(shù)字全部驗(yàn)證成功,才會(huì)開(kāi)門(mén)。密碼檢驗(yàn)程序如圖4.2所示:圖4.2密碼檢驗(yàn)程序4.2.9修改密碼程序當(dāng)輸入正確密碼驗(yàn)證成功開(kāi)門(mén)后,常開(kāi)觸點(diǎn)M10的閉合使得輔助繼電器M20線圈得電,常開(kāi)觸點(diǎn)M20閉合,此時(shí)按下修改密碼按鍵X14才能修改密碼,按下X14后,輔助繼電器線圈M25得電,觸發(fā)常開(kāi)接點(diǎn)M25閉合,開(kāi)始執(zhí)行指針編號(hào)為P4的子程序,此時(shí)按下修改的密碼的第一個(gè)數(shù)字對(duì)應(yīng)的按鍵后,寄存器D200中的數(shù)值就會(huì)被改變,與此同時(shí),輔助繼電器M16線圈和定時(shí)器T5線圈得電,觸發(fā)了常開(kāi)觸點(diǎn)M16和T5閉合,常閉觸點(diǎn)T5斷開(kāi),此時(shí)跳出指針編號(hào)為P4的子程序,開(kāi)始執(zhí)行指針標(biāo)號(hào)為P5的子程序,此時(shí)按下數(shù)字按鍵,將不會(huì)改變寄存器D200中的密碼值,而是改變寄存器D201中的值并使輔助繼電器M17線圈和定時(shí)器T6線圈得電,觸發(fā)了常開(kāi)觸點(diǎn)M17和T6閉合,常閉觸點(diǎn)T6斷開(kāi),從而跳出指針編號(hào)為P5的子程序,開(kāi)始執(zhí)行指針標(biāo)號(hào)為P6的子程序,按下需要改變的數(shù)字按鍵后,會(huì)保存在寄存器D202中并觸發(fā)輔助繼電器M18和定時(shí)器T7的常閉接點(diǎn)斷開(kāi),常開(kāi)接點(diǎn)閉合,從而跳出指針編號(hào)為P6的子程序,開(kāi)始執(zhí)行指針標(biāo)號(hào)為P7的子程序,輸入需要改變的密碼后,寄存器D203中的數(shù)值被改變,定時(shí)器T8的線圈被觸發(fā),它的常閉接點(diǎn)將會(huì)斷開(kāi),從而不再進(jìn)入修改密碼的代碼中,此時(shí)再次按下修改密碼按鍵X14,密碼就修改完成了,此時(shí)修改密碼程序中的定時(shí)器和輔助繼電器將復(fù)位,以用于下一次修改密碼。修改密碼程序如圖4.3所示:圖4.3修改密碼程序4.2.10防盜報(bào)警程序只有當(dāng)輸入的密碼與寄存器中的真實(shí)密碼一致時(shí),才能使對(duì)應(yīng)輔助接點(diǎn)閉合,由于密碼錯(cuò)誤時(shí),常開(kāi)的輔助接點(diǎn)M0、M2、M3、M5、M6、M8、M9、M11均有可能閉合,此時(shí)其常閉的輔助接點(diǎn)斷開(kāi),在經(jīng)過(guò)取反指令后,將會(huì)觸發(fā)輔助繼電器M12,從而使得計(jì)數(shù)器C100計(jì)數(shù)一次并清零定時(shí)器T0~T8和輔助繼電器M0~M15,當(dāng)輸錯(cuò)三次密碼后,計(jì)數(shù)器C100將得電觸發(fā),其常開(kāi)接點(diǎn)C100閉合,觸發(fā)閃蜂鳴器Y1報(bào)警,此時(shí)位于檢驗(yàn)密碼程序的Y1的常閉觸點(diǎn)斷開(kāi),不再執(zhí)行檢驗(yàn)密碼的程序,直至警報(bào)解除才能檢驗(yàn)密碼開(kāi)鎖。防盜報(bào)警程序如圖4.4所示:圖4.4防盜報(bào)警程序4.2.11污水處理程序低液位由下液位傳感器開(kāi)關(guān)X16檢測(cè),高液位由上液位傳感器開(kāi)關(guān)X17檢測(cè)。當(dāng)污水水位低于低液位時(shí),下液位傳感器開(kāi)關(guān)X16斷開(kāi),無(wú)需開(kāi)啟水泵抽水;當(dāng)污水水位高于低液位,且低于高液位時(shí),下液位傳感器開(kāi)關(guān)X16閉合,開(kāi)啟水泵1處理污水;當(dāng)污水高于高液位時(shí),上、下液位傳感器開(kāi)關(guān)都將會(huì)閉合,水泵1、水泵2共同啟動(dòng)處理污水,若污水量減少,污水液位低于高液位時(shí),上液位傳感器開(kāi)關(guān)將會(huì)斷開(kāi),水泵2將停止工作,以節(jié)省能源。污水處理程序如圖4.5所示:圖4.5污水處理程序5智能牧場(chǎng)系統(tǒng)調(diào)試調(diào)試即為將寫(xiě)好的程序?qū)?yīng)下載到單片機(jī)和PLC編程軟件中,通過(guò)實(shí)踐操作和系統(tǒng)仿真,逐步驗(yàn)證。根據(jù)系統(tǒng)的任務(wù)目標(biāo)來(lái)判斷實(shí)際是否達(dá)到要求,若沒(méi)有達(dá)到要求,則再次對(duì)硬件和軟件進(jìn)行修改。5.1硬件調(diào)試首先,對(duì)照原理圖、I/O接線圖將元器件進(jìn)行接線,首先進(jìn)行主機(jī)元器件的連接,把溫濕度傳感器、稱(chēng)重傳感器、水位傳感器、雨滴傳感器、無(wú)線通信模塊、藍(lán)牙模塊按照原理圖的接線接到主機(jī)的對(duì)應(yīng)的IO口,從電源模塊中接出的直流正極和負(fù)極中各接出端子排,供給水泵、風(fēng)扇、藍(lán)牙、水位傳感器、雨滴傳感器、同步電機(jī)、電磁閥等使用。接下來(lái)進(jìn)行從機(jī)的連接,把TFTLCD屏幕接在從機(jī)對(duì)應(yīng)IO口上,并把無(wú)線通信模塊接到對(duì)應(yīng)的IO口。在上電之前,先測(cè)量各主路、分路電源是否短路,避免燒毀芯片。接著要檢查各線路是否存在接線錯(cuò)誤,是否存在線路接觸不良的情況。上電之后,觀察各器件指示燈是否亮起,若有器件指示燈未亮起,斷電之后仔細(xì)檢查接線是否正確。在多次運(yùn)行調(diào)試過(guò)程中,發(fā)現(xiàn)了以下問(wèn)題:(1)當(dāng)要在PLC輸入點(diǎn)接入有源開(kāi)關(guān)時(shí),需要接上電源,若AC型有源開(kāi)關(guān)工作電壓為24V,則可以連接PLC內(nèi)部24V電源,也可以采用外部電源。但對(duì)于DC型有源開(kāi)關(guān)則不要連接PLC內(nèi)部24V電源。(2)有一些線路接好之后沒(méi)有進(jìn)行加固,線路容易松動(dòng)造成線路接觸不良,使器件無(wú)法運(yùn)行,因此在上電之前一定要檢查線路。(3)因?yàn)橐恍┴?fù)載的工作電壓不一致,因此采用電源適配器模塊統(tǒng)一輸出12V的直流電壓后通過(guò)降壓模塊使其降到所需的5V工作電壓,但由于降壓模塊質(zhì)量問(wèn)題影響了輸出電壓的穩(wěn)定,從而導(dǎo)致了系統(tǒng)的穩(wěn)定性,在發(fā)現(xiàn)問(wèn)題后,迅速更換模塊,提高系統(tǒng)穩(wěn)定性的同時(shí)解決這個(gè)供電不穩(wěn)定而帶來(lái)的安全隱患。(4)在初步調(diào)試硬件時(shí),把單片機(jī)輸出端與負(fù)載直接連接,通電后發(fā)現(xiàn)負(fù)載根本不能運(yùn)行,經(jīng)過(guò)逐步查找原因,從而發(fā)現(xiàn)單片機(jī)輸出電壓只有5V,輸出電流有限,無(wú)法驅(qū)動(dòng)大功率的負(fù)載,若要使負(fù)載運(yùn)行,需要連接一個(gè)繼電器來(lái)驅(qū)動(dòng)負(fù)載。5.2軟件調(diào)試通過(guò)逐步編譯,檢查編寫(xiě)的程序是否存在邏輯錯(cuò)誤,在仔細(xì)檢查過(guò)程中沒(méi)有發(fā)現(xiàn)錯(cuò)誤并成功編譯后,把代碼分別重新燒錄到單片機(jī)和PLC中,在調(diào)試過(guò)程中注意觀察,與單片機(jī)相連接的繼電器的燈亮起時(shí),相對(duì)應(yīng)連接的元器件是否正確動(dòng)作,器件均能正確動(dòng)作后,才證明代碼可行。首先,打開(kāi)電源,把PLC的指針撥到運(yùn)行,PLC電源指示燈和運(yùn)行指示燈亮起,其余指示燈均熄滅,說(shuō)明程序無(wú)邏輯錯(cuò)誤,可以開(kāi)始輸入密碼驗(yàn)證,密碼鎖能正確動(dòng)作,則證明程序編寫(xiě)無(wú)誤。用物體靠近接在PLC的X16、X17輸入端的接近開(kāi)關(guān),電容式接近開(kāi)關(guān)的指示燈亮起,隨機(jī)水泵開(kāi)啟,說(shuō)明傳感器無(wú)損壞,水泵可正常工作。PLC調(diào)試運(yùn)行圖如圖5.1所示。圖5.1PLC調(diào)試運(yùn)行單片機(jī)上電之后,連接在P26接口的風(fēng)扇在間隔15s后開(kāi)啟并在工作5s后停止,控制風(fēng)扇的繼電器隨著它工作而亮起,停止而熄滅,如此循環(huán)。在稱(chēng)重傳感器上加上些許重物,觀察TFTLCD屏幕上的食物重量的數(shù)值是否發(fā)生變化,然后再慢慢減少稱(chēng)重傳感器上的重物,使其達(dá)到可驅(qū)動(dòng)電磁閥打開(kāi)的閾值,與電磁閥相連的繼電器工作指示燈亮起,電磁閥正確動(dòng)作。慢慢減少水槽里的水,使其達(dá)到動(dòng)作閾值后,與水泵相連的繼電器工作指示燈亮起,水泵開(kāi)始抽水。打開(kāi)手機(jī)藍(lán)牙,與單片機(jī)藍(lán)牙進(jìn)行配對(duì),發(fā)送字母b,與電磁閥相連的繼電器工作指示燈亮起,電磁閥打開(kāi);發(fā)送字母a,電磁閥關(guān)閉,與電磁閥相連的繼電器工作指示燈熄滅。發(fā)送字母c,與水泵相連的繼電器工作指示燈亮起,水泵開(kāi)始工作,發(fā)送字母d,水泵停止工作,與水泵相連的繼電器工作指示燈熄滅;發(fā)送字母e,開(kāi)啟風(fēng)扇,與風(fēng)扇相連的繼電器工作指示燈亮起;發(fā)送字母f,風(fēng)扇停止工作,與風(fēng)扇相連的繼電器工作指示燈熄滅;發(fā)送字母g,控制卷簾的電機(jī)正轉(zhuǎn),控制電機(jī)正轉(zhuǎn)的繼電器工作指示燈亮起,發(fā)送字母h,電機(jī)正轉(zhuǎn)停止,控制電機(jī)正轉(zhuǎn)的繼電器工作指示燈熄滅;發(fā)送字母j,控制卷簾的電機(jī)反轉(zhuǎn),控制電機(jī)反轉(zhuǎn)的繼電器工作指示燈亮起,發(fā)送字母i,電機(jī)反轉(zhuǎn)停止,控制電機(jī)反轉(zhuǎn)的繼電器工作指示燈熄滅。調(diào)試結(jié)果如圖5.2所示。圖5.2調(diào)試結(jié)果實(shí)物圖在調(diào)試過(guò)程中,也曾出現(xiàn)過(guò)很多次調(diào)試失敗的情況。比如,在編譯代碼的時(shí)候,總是報(bào)錯(cuò)沒(méi)有定義reg52.h文件里的一些IO口,通過(guò)檢查后在主函數(shù)文件中添加引用了reg52.h文件。再比如,通過(guò)按鍵輸入密碼的時(shí)候,在輸入下一個(gè)數(shù)字時(shí),總會(huì)覆蓋前面輸入的數(shù)字,因此我采用了定時(shí)器和輔助繼電器相結(jié)合的方法解決這個(gè)問(wèn)題,我設(shè)計(jì)程序使得定時(shí)器的常閉觸頭與控制輸入第一個(gè)數(shù)字的子程序調(diào)用指令相連,常開(kāi)觸頭與控制第二個(gè)數(shù)字的子程序調(diào)用指令相連,當(dāng)輸入數(shù)字后,第一個(gè)定時(shí)器開(kāi)始計(jì)時(shí),并觸發(fā)輔助繼電器線圈動(dòng)作,使輔助繼電器常開(kāi)觸頭自鎖,從而使得定時(shí)器線圈持續(xù)通電,此時(shí)定時(shí)器的常閉觸頭立即斷開(kāi),輸入第一個(gè)數(shù)字的指令也將立即斷開(kāi),不再執(zhí)行,而常開(kāi)觸頭迅速閉合,接通輸入第二個(gè)數(shù)字的指令。這樣的設(shè)計(jì)在輸入下一位數(shù)字時(shí)就不會(huì)再改變上一位寄存器中存儲(chǔ)的數(shù)字。6結(jié)語(yǔ)通過(guò)對(duì)課題的應(yīng)用、目前的市場(chǎng)需求以及相關(guān)的研究進(jìn)行大致的了解后,對(duì)要實(shí)現(xiàn)的設(shè)計(jì)有了整體的構(gòu)想,通過(guò)系統(tǒng)硬件的搭建、系統(tǒng)軟件中程序的編寫(xiě)、以及軟硬件的聯(lián)合調(diào)試等方面工作的開(kāi)展,基本完成了初期的任務(wù)要求,設(shè)計(jì)出的智能牧場(chǎng)系統(tǒng)基本上能夠達(dá)到預(yù)期的效果。本設(shè)計(jì)采用PLC和STC89C52單片機(jī)作為核心器件,使得設(shè)計(jì)出來(lái)的牧場(chǎng)能夠智能、可靠、有效地運(yùn)行,實(shí)現(xiàn)了牧場(chǎng)的自動(dòng)化喂養(yǎng)、智能環(huán)境消毒以及智能防盜,能夠從一定程度減少養(yǎng)殖畜產(chǎn)品的成本的同時(shí)實(shí)現(xiàn)畜產(chǎn)品養(yǎng)殖的高效、高質(zhì)??偨Y(jié)這整個(gè)設(shè)計(jì)的實(shí)踐過(guò)程,我覺(jué)得最重要的還是代碼的編程與學(xué)習(xí)。雖然以前在課堂上也學(xué)習(xí)過(guò)單片機(jī)和PLC的程序編程,但是課堂上的學(xué)習(xí)只是比較系統(tǒng)地去學(xué)習(xí)這方面的知識(shí),但真正去編寫(xiě)程序?qū)崿F(xiàn)功能的時(shí)候,一些代碼編寫(xiě)的細(xì)節(jié)上的規(guī)則,以及一些代碼的編寫(xiě)順序?qū)δ軐?shí)現(xiàn)的影響都是在發(fā)現(xiàn)錯(cuò)誤的時(shí)候通過(guò)逐步修改調(diào)試,才能夠真正地清楚這些細(xì)節(jié)部分對(duì)實(shí)現(xiàn)功能的影響。所要運(yùn)用的元器件都必須先去了解它的原理,然后再慢慢地去讀透它的驅(qū)動(dòng)程序,才能真正地把它運(yùn)用好。其實(shí)整個(gè)編程的過(guò)程就是在不斷學(xué)習(xí)和積累經(jīng)驗(yàn)的過(guò)程。本設(shè)計(jì)雖然基本上達(dá)到了預(yù)期的目標(biāo),但仍存在許多不足之處,系統(tǒng)在實(shí)際使用過(guò)程中仍存在一些問(wèn)題需要不斷完善和改進(jìn),比如:系統(tǒng)功能也有待增加和改善;系統(tǒng)檢測(cè)存在一定的延時(shí)等。所以,本設(shè)計(jì)尚未真正達(dá)到投入市場(chǎng)的應(yīng)用的標(biāo)準(zhǔn)仍,還需要自己從各個(gè)方面對(duì)設(shè)計(jì)進(jìn)行完善和提升。
參考文獻(xiàn)[1]阮友德.PLC、變頻器、觸摸屏綜合應(yīng)用實(shí)訓(xùn)[M].北京:中國(guó)電力出版社,2019[2]徐航.關(guān)于發(fā)展畜牧業(yè)的現(xiàn)狀及前景分析[J].今日財(cái)富,2019,000(004):P.191-191.[3]張國(guó)鋒,肖宛昂.智慧畜牧業(yè)發(fā)展現(xiàn)狀及趨勢(shì)[J].中國(guó)國(guó)情國(guó)力,2019(12).[4]吳靜進(jìn),何尚平,萬(wàn)彬.MCS-51單片機(jī)原理與應(yīng)用[M].重慶:重慶大學(xué)出版社,2019[5]金成龍,李青.OLED顯示技術(shù)概要及應(yīng)用領(lǐng)域的發(fā)展趨勢(shì)[J].數(shù)字技術(shù)與應(yīng)用,2020,v.38;No.362(08):226-229.[6]海濤,黃清寶,肖根福,陳雪云,易澤仁,趙晚昭,陳柏軒.電氣控制與PLC實(shí)驗(yàn)教程[M].重慶:重慶大學(xué)出版社,2020[7]孫加軍,王相宇.由國(guó)外養(yǎng)殖業(yè)發(fā)展看我國(guó)畜牧業(yè)規(guī)?;B(yǎng)殖[J].農(nóng)業(yè)開(kāi)發(fā)與裝備,2016,000(008):59-59.[8]歐陽(yáng)晨星.基于物聯(lián)網(wǎng)的智能牧場(chǎng)[J].數(shù)碼世界,2019(6).[9]潘銀松顏燁高瑜張強(qiáng).C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)教程[M].重慶:重慶大學(xué)出版社,2019[10]HuiWang.OptimalDesignofSingleChipMicrocomputerMulti-machineSerialCommunicationbasedonSignalVerificationTechnology[J].InternationalJournalofIntelligentInformationandManagementScience,2020,9(1)[11]SensorResearch;FindingsfromNationalResearchTomskPolytechnicUniversityYieldsNewDataonSensorResearch(Single-chipSolutionforElectronicsUnitofaSmartPressureSensor)[J].JournalofEngineering,2020.[12]WangZG,ZhangY,Yan-MinLI.ControlApplicationofPLCTechnologyinElectricalAutomation[J].WorldNonferrousMetals,2019.
附錄附錄A實(shí)物圖本文設(shè)計(jì)作品的單片機(jī)控制部分的實(shí)物圖如A1所示,PLC控制部分的實(shí)物圖如A2所示。圖A1單片機(jī)控制部分的實(shí)物圖圖A2PLC控制部分的實(shí)物圖附錄B單片機(jī)部分源程序#include"Hummerbot.h"#include"BluetoothHandle.h"#include"ProtocolParser.h"#include"KeyMap.h"#include"reg52.h" #include"XPT2046.h" //AD轉(zhuǎn)換#include"HX71101.h"http://壓力傳感器#include"DHT11.h"http://溫濕度傳感器#include"keydown.h"http://按鍵#include"2401.h"http://無(wú)線傳輸#ifndefu8#defineu8unsignedchar//對(duì)數(shù)據(jù)類(lèi)型進(jìn)行聲明定義#endif#ifndefu16#defineu16unsignedint#endif#ifndefu32#defineu32unsignedint#endif#ifndeful#defineulunsignedlong#endif#ifndefuchar#defineucharunsignedchar//對(duì)數(shù)據(jù)類(lèi)型進(jìn)行聲明定義#endif#ifndefuint#defineuintunsignedint#endif#ifndefulong#defineulongunsignedlong#endifexternunsignedinttarget;externunsignedintpgus;externunsignedintpgms;externunsignedintpgs;unsignedcharKeyalce[10];sbitpwm1=P2^3;sbitpwm2=P2^4;sbitpwm3=P3^3;sbitpwm4=P3^2;sbitpwm5=P2^7;sbitpwm6=P2^6;bita0,a1,a2,a3,a4;#defineGapValue400u16jnsm=0;u16ad1;//水位傳感器u16ad2;//光敏電阻u16ad3;//雨滴傳感器u8JOV[4];u8x,y;ulzxc,vbn;u8receiveData;//串口u8AS;u16aa12aa=0;u8Tx_Buf1[13]={1}; //24L01發(fā)送的數(shù)組unsignedintmubiao=15000,xianshi=0;voiddatapros();voidDigDisplay();voiddflt(u16te);//1122voidUsartInit();//串口voiddelay_ms2401(u16z); //2401延時(shí)函數(shù)voidTimer0Initial();voidinitial_Timer();voiddelay(unsignedintx);voidkeyscan();voidUsartInit(){ SCON=0X50; //設(shè)置為工作方式1 TMOD&=0X0F;//清0T1的控控制位 TMOD|=0X20; //設(shè)置計(jì)數(shù)器工作方式2 PCON|=0X80; //波特率加倍 TH1=0XF3; //計(jì)數(shù)器初始值設(shè)置 TL1=0XF3; ET1=0;//禁止T1中斷 ES=1; //打開(kāi)接收中斷 EA=1; //打開(kāi)總中斷 TR1=1; //打開(kāi)計(jì)數(shù)器}voidmain(){ u16as2401=0; intbs2401=0;initial_Timer(); UsartInit(); zxc=0; vbn=HX711_Read(); vbn=(unsignedint)((float)vbn/GapValue); InitNRF24L01(); while(NRF24L01Check()) //檢查不到24l01則小燈閃爍提示報(bào)警 { } while(1) { zxc=HX711_Read(); zxc=(unsignedint)((float)zxc/GapValue);//計(jì)算實(shí)物的實(shí)際重量 zxc=zxc-vbn; dflt(zxc); //壓力數(shù)據(jù)處理與顯示函數(shù) datapros(); //AD數(shù)據(jù)處理與顯示函數(shù) DHT11_receive();//溫濕度數(shù)據(jù)處理與顯示函數(shù) if(a3==0) { if(Tx_Buf1[4]>=50||Tx_Buf1[5]>=27) { pwm3=1; } else { pwm3=0; } } if(receiveData=='0') { a0=0;a1=0;a2=0;a3=0;a4=0; } if(receiveData=='a')//停止放糧 { AS='a'; a1=1;pwm1=1;a0=1; } elseif(receiveData=='b')//放糧 { AS='a'; a1=1;pwm1=0;a0=1; } if(receiveData=='c') { a2=1; AS='b';pwm2=1;a0=1; } elseif(receiveData=='d') { a2=1; AS='b';pwm2=0;a0=1; } if(receiveData=='g')//正轉(zhuǎn) { a4=1; AS='d';pwm4=1;a0=1; } elseif(receiveData=='h')//停止正轉(zhuǎn) { a4=1; AS='d';pwm4=0;a0=1; } if(re
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 校長(zhǎng)課堂唱歌活動(dòng)方案
- 校長(zhǎng)述職活動(dòng)方案
- 江蘇互聯(lián)網(wǎng)培訓(xùn)活動(dòng)方案
- 殘疾人送鮮花活動(dòng)方案
- 水電安全活動(dòng)方案
- 漢堡店充值活動(dòng)方案
- 正規(guī)公司服裝策劃方案
- 河南微信活動(dòng)方案
- 汽車(chē)俱樂(lè)部開(kāi)展活動(dòng)方案
- 殘疾人集中服務(wù)活動(dòng)方案
- GB/T 3672.2-2002橡膠制品的公差第2部分:幾何公差
- GB/T 31848-2015汽車(chē)貼膜玻璃貼膜要求
- GB/T 25146-2010工業(yè)設(shè)備化學(xué)清洗質(zhì)量驗(yàn)收規(guī)范
- GB/T 18884.2-2015家用廚房設(shè)備第2部分:通用技術(shù)要求
- GB/T 12239-2008工業(yè)閥門(mén)金屬隔膜閥
- 行政法培訓(xùn)講義課件
- DB32T 4174-2021 城市居住區(qū)和單位綠化標(biāo)準(zhǔn)
- 基本原理與性能特點(diǎn)多自由度電磁軸承課件
- 北京輸變電工程標(biāo)準(zhǔn)工藝應(yīng)用圖冊(cè)(圖文并茂)
- 三相負(fù)荷(380V)及單相(220V)最大供電距離計(jì)算表及電壓降計(jì)算表
- 國(guó)家職業(yè)技能標(biāo)準(zhǔn) (2021年版) 嬰幼兒發(fā)展引導(dǎo)員
評(píng)論
0/150
提交評(píng)論