rs485轉(zhuǎn)rs232接口電路
由于adc0809芯片內(nèi)部沒(méi)有時(shí)鐘脈沖源, 可利用單片機(jī)89c51提供的地址鎖存控制輸入信號(hào)ale經(jīng)d觸發(fā)器四分頻后,作為adc0809的時(shí)鐘輸入。當(dāng)cpu訪問(wèn)外部存儲(chǔ)器時(shí).ale的輸出作為外部鎖存地址的低字節(jié)的控制信號(hào):當(dāng)不訪問(wèn)外部存儲(chǔ)器時(shí),ale端以1/6的時(shí)鐘振蕩頻率固定地輸出正脈沖,可取單片機(jī)的時(shí)鐘頻率為12 mhz。則ale端輸出的頻率為2 mhz。再經(jīng)四分頻后為500khz,符合adc0809對(duì)時(shí)鐘的要求。
如圖2所示。adc0809內(nèi)部設(shè)有地址鎖存器,通道地址由p2口的低3位直接與adc0809的a、b、c相連,通道基本地址為0000h~0007h。模擬量由adc0809的in0~in7輸入.數(shù)字量由adc0809的do~d7輸出并接到單片機(jī)i/o口的p0口,adc0809其他引腳如:start、oe、ale、a、b、c等直接接到單片機(jī)的p2口。最后adc0809的結(jié)束信號(hào)端口直接接到單片機(jī)的p2.7口。
圖2 adc0809與單片機(jī)的接口電路
3 軟件設(shè)計(jì)
3.1 單片機(jī)程序設(shè)計(jì)
下位機(jī)程序完成a/d轉(zhuǎn)換和通信收發(fā)的功能,串口接收采用中斷方式.為方便上位機(jī)識(shí)別數(shù)據(jù)以及減少錯(cuò)誤率,發(fā)送時(shí)加上前后校驗(yàn)碼。照度、溫度、電壓、電流4類(lèi)數(shù)據(jù)分別采用不同的前后校驗(yàn)碼。在主程序中,a/d轉(zhuǎn)換完成后,將數(shù)據(jù)處理后并儲(chǔ)存,緊接著查看上位機(jī)發(fā)送回來(lái)的信息,將指定類(lèi)型數(shù)據(jù)發(fā)送給上位機(jī)。
3.2 上位機(jī)程序設(shè)計(jì)
上位機(jī)主要是完成3項(xiàng)任務(wù):與下位機(jī)的通信;將下位機(jī)發(fā)送回來(lái)的數(shù)據(jù)進(jìn)行處理及存儲(chǔ):設(shè)計(jì)一個(gè)顯示界面。把數(shù)據(jù)變化情況以圖表形式顯示出來(lái)。
程序采用labview軟件平臺(tái)進(jìn)行編寫(xiě),labview是當(dāng)下最流行的圖形化編程開(kāi)發(fā)軟件,利用它可以大量使用圖表、菜單、圖形等可視化工具,使系統(tǒng)具有豐富、靈活的畫(huà)面和圖表顯示功能。
labview通過(guò)visa與串行接口儀器通信。visa是應(yīng)用于儀器編程的標(biāo)準(zhǔn)i/o應(yīng)用程序接口(api),它本身并不具有儀器編程能力,而是為用戶提供了一套獨(dú)立的可方便調(diào)用的標(biāo)準(zhǔn)i/o底層函數(shù)。利用hbview中的visa函數(shù),可實(shí)現(xiàn)上位機(jī)與單片機(jī)之間的通信。通過(guò)labview平臺(tái)內(nèi)豐富的底層函數(shù),可進(jìn)行高速精確的數(shù)據(jù)處理。其設(shè)計(jì)分為前面板和后面板,前面板為可視化的用戶界面,而后面板就是支撐系統(tǒng)運(yùn)行的程序,并且采用圖形化的編程,數(shù)據(jù)的傳輸通過(guò)各函數(shù)之間的連線實(shí)現(xiàn)。
在前面板設(shè)立5個(gè)波形圖表控件,分別用于顯示照度、溫度、電流、電壓、功率5類(lèi)數(shù)據(jù)信息的實(shí)時(shí)變化情況,若干數(shù)值顯示控件用于顯示各數(shù)據(jù)的平均值及發(fā)電量總值。
后面板串口通信利用labview中的visa配置串口函數(shù)、visa寫(xiě)入函數(shù)、visa讀取函數(shù)可完成對(duì)串口的配置及串口收發(fā)。visa關(guān)閉函數(shù)用于關(guān)閉visa資源名稱指定的串口會(huì)話句柄或事件對(duì)象。是一個(gè)串口接收和發(fā)送的子vi,上位機(jī)可以向單片機(jī)發(fā)送命令及接受單片機(jī)發(fā)送回來(lái)的 數(shù)據(jù)。
主程序采用平鋪式順序結(jié)構(gòu),先利用子vi生成5個(gè)電子表格文件以保存當(dāng)天的數(shù)據(jù),然后在循環(huán)結(jié)構(gòu)下,調(diào)用串口收發(fā)子vi為每類(lèi)數(shù)據(jù)分別發(fā)送獲取指令,讓下位機(jī)把相應(yīng)數(shù)據(jù)發(fā)送過(guò)來(lái)。接收數(shù)據(jù)后,比對(duì)前后校驗(yàn)碼,若有誤則重新發(fā)送,若正確則獲取數(shù)據(jù)碼進(jìn)行數(shù)據(jù)處理。數(shù)據(jù)處理包括將數(shù)據(jù)還原、存人相應(yīng)表格文件以及送人波形圖表控件進(jìn)行顯示。
此外。設(shè)計(jì)子vi從各電子表格文件中獲取儲(chǔ)存的累計(jì)數(shù)據(jù).則可計(jì)算各類(lèi)數(shù)據(jù)的平均值以及總發(fā)電量,便可得到光伏發(fā)電系統(tǒng)的發(fā)電信息。在labview中可自行設(shè)立用戶菜單,程序運(yùn)行時(shí)操作用戶菜單,可方便用戶設(shè)置串vi參數(shù)及查看歷史數(shù)據(jù)。
4 結(jié)語(yǔ)
經(jīng)系統(tǒng)實(shí)際運(yùn)行測(cè)試。系統(tǒng)可穩(wěn)定地監(jiān)測(cè)到各類(lèi)參數(shù)的變化情況。各類(lèi)參數(shù)的平均值和總發(fā)電量通過(guò)儲(chǔ)存的累計(jì)數(shù)據(jù)得到,并通過(guò)控件顯示。整個(gè)系統(tǒng)可完成數(shù)據(jù)的采集、處理、儲(chǔ)存、統(tǒng)計(jì)、顯示等功能,實(shí)現(xiàn)對(duì)光伏發(fā)電系統(tǒng)的監(jiān)測(cè)目的。將系統(tǒng)運(yùn)用到光伏發(fā)電領(lǐng)域中,能夠供電站工作人員實(shí)時(shí)了解電站的環(huán)境情況及發(fā)電信息,還可對(duì)歷史數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。通過(guò)監(jiān)測(cè)界面能夠及時(shí)有效地發(fā)現(xiàn)電站運(yùn)行故障。以實(shí)現(xiàn)系統(tǒng)檢修及有針對(duì)性地進(jìn)行維護(hù),提高光伏運(yùn)行效率。
評(píng)論