技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 一種基于VC的Modem分布式遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)

一種基于VC的Modem分布式遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)

時(shí)間:2008-11-26 11:01:00來源:ronggang

導(dǎo)語:?針對(duì)邊遠(yuǎn)地區(qū)光伏電站不易值守的問題,本文設(shè)計(jì)了一種利用VC開發(fā)Modem通信來實(shí)施遠(yuǎn)程監(jiān)控的系統(tǒng)。系統(tǒng)按分布式結(jié)構(gòu)設(shè)計(jì),可實(shí)現(xiàn)對(duì)多個(gè)電站的實(shí)時(shí)監(jiān)控
摘 要: 針對(duì)邊遠(yuǎn)地區(qū)光伏電站不易值守的問題,本文設(shè)計(jì)了一種利用VC開發(fā)Modem通信來實(shí)施遠(yuǎn)程監(jiān)控的系統(tǒng)。系統(tǒng)按分布式結(jié)構(gòu)設(shè)計(jì),可實(shí)現(xiàn)對(duì)多個(gè)電站的實(shí)時(shí)監(jiān)控。實(shí)踐證明,該系統(tǒng)經(jīng)濟(jì)穩(wěn)定、操作方便。 關(guān)鍵詞: VC;Modem;遠(yuǎn)程監(jiān)控;單片機(jī);串行通信;光伏電站 Abstract: For the problem of operation of Photovoltaic Plant in remote area, the paper design a system of developing modem communication by VC to realize remote control. The system is designed in distributing structure, it can monitor and control a lot of plants at real time. Practices prove that the system is economical and credible and the operation is simple. Keyword: VC; Modem; Distant monitoring; Single-chip microcomputer; Serial communication; Photovoltaic plant 1 引言   目前,太陽能光伏發(fā)電技術(shù)已日趨成熟。是最具可持續(xù)發(fā)展的可再生能源技術(shù)之一。截止2004年,太陽能光伏發(fā)電的應(yīng)用領(lǐng)域遍及我們生活的各個(gè)方面,如交通、通訊、公共設(shè)施(如照明)、家庭生活用電等。尤其是在邊遠(yuǎn)地區(qū),太陽能光伏發(fā)電更加顯示出它的優(yōu)勢。但由于供電系統(tǒng)具有站點(diǎn)分散、傳輸距離遠(yuǎn)的特點(diǎn),加上偏遠(yuǎn)地區(qū)的自然環(huán)境比較惡劣,隨著太陽能電源在這些地區(qū)的普及,系統(tǒng)的日常維護(hù)要耗費(fèi)大量的人力和物力[1]。針對(duì)這個(gè)問題,本文基于VC和Modem設(shè)計(jì)出一種用于光伏電站的分布式遠(yuǎn)程監(jiān)控系統(tǒng)。 2 系統(tǒng)組成和工作原理   對(duì)于大多數(shù)分布式控制系統(tǒng),下位機(jī)通常是單片機(jī)系統(tǒng),為了實(shí)現(xiàn)PC的集中監(jiān)測、控制和管理,需將下位機(jī)的信息傳送到中心管理PC機(jī)上來。PC機(jī)和單片機(jī)之間的信息交換有許多形式,用MODEM通過電話線路實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)傳輸是一種靈活方便、經(jīng)濟(jì)實(shí)用的方案。因此,本文就采用這種方法,系統(tǒng)由一臺(tái)PC機(jī)和多個(gè)Modem通過程控交換網(wǎng)實(shí)現(xiàn)對(duì)多個(gè)光伏電站單片機(jī)控制器的遠(yuǎn)程監(jiān)控。系統(tǒng)的框圖如圖1所示。監(jiān)控中心的計(jì)算機(jī)和遠(yuǎn)端的各個(gè)單片機(jī)控制器都通過RS-232串口與Modem相連,再接入程控交換網(wǎng)。光伏電站現(xiàn)場數(shù)據(jù)的采集和處理采用性價(jià)比較高、使用方便的89C51單片機(jī)[2]來完成,包括A/D模數(shù)轉(zhuǎn)換電路、I/O接口電路、RS232通信電路、液晶顯示電路、鍵盤設(shè)定電路、看門狗電路等。監(jiān)控中心的PC機(jī)設(shè)計(jì)出友好的界面,當(dāng)需要監(jiān)控光伏電站的運(yùn)行狀況時(shí), PC機(jī)先通過串口向Modem發(fā)送撥號(hào)命令,撥打相應(yīng)電站的電話號(hào)碼,與單片機(jī)控制器建立握手連接,當(dāng)連接成功后,兩者就可以通過電話線互傳數(shù)據(jù),包含對(duì)電站運(yùn)行參數(shù),如蓄電池電壓,蓄電池溫度,充電電流,環(huán)境溫度,風(fēng)速,光強(qiáng)等的采集,以及對(duì)電站單片機(jī)控制器的控制指令。PC機(jī)可以對(duì)接受的電站運(yùn)行數(shù)據(jù)實(shí)時(shí)顯示、打印,做下一步處理。 [align=center] 圖1 系統(tǒng)框圖[/align] 3 Modem通信   Modem通信是利用現(xiàn)有電話網(wǎng)實(shí)現(xiàn)計(jì)算機(jī)之間遠(yuǎn)距離通信的一種通信方式。電話網(wǎng)是為傳輸模擬信號(hào)而設(shè)計(jì)的,而計(jì)算機(jī)和單片機(jī)處理的信息都是數(shù)字信號(hào)。因此計(jì)算機(jī)和單片機(jī)要借助電話網(wǎng)傳送數(shù)據(jù)時(shí),發(fā)送端首先進(jìn)行調(diào)制,將數(shù)字信號(hào)變成模擬信號(hào)。到了接收端,還要有解調(diào)裝置將模擬信號(hào)還原成數(shù)字信號(hào)。Modem便是完成這一功能的設(shè)備。和其他通信標(biāo)準(zhǔn)一樣,Modem通信也有自己的一套規(guī)則和標(biāo)準(zhǔn),Hayes公司制定的AT命令相當(dāng)于事實(shí)上的業(yè)界標(biāo)準(zhǔn)[3],幾乎所有的Modem都支持Hayes的AT命令。在遠(yuǎn)程控制中用到的AT命令主要有以下幾條:  ?。?)ATDTn Modem使用音頻撥號(hào),n為電話號(hào)碼。  ?。?)ATS0=r Modem自動(dòng)應(yīng)答方式,收到r聲鈴聲后Modem自動(dòng)摘機(jī)并試圖連接。  ?。?)+++ Modem從在線狀態(tài)切換到在線命令狀態(tài)。  ?。?)ATHn Modem掛機(jī)/摘機(jī)命令,0:掛機(jī);1:摘機(jī)。   為了監(jiān)測命令的執(zhí)行情況和電話的線路狀態(tài),Modem接受AT命令后都會(huì)返回結(jié)果碼,   結(jié)果碼的形式可以是字符型或數(shù)值型。Modem工作時(shí),除了撥號(hào)占據(jù)短暫的時(shí)間外,它總是處于離線命令狀態(tài)、在線命令狀態(tài)和在線數(shù)據(jù)狀態(tài)中的一種狀態(tài)。當(dāng)Modem 啟動(dòng)后,首先處于命令狀態(tài),連接建立后進(jìn)入在線狀態(tài)。在命令狀態(tài)下,Modem以AT命令形式接受命令,例如指示Modem去撥號(hào)或者當(dāng)電話響鈴時(shí)自動(dòng)應(yīng)答。在在線狀態(tài)下,Modem與遠(yuǎn)端系統(tǒng)通信,此時(shí)Modem這幾種狀態(tài)的切換如圖2所示[4]。 [align=center] 圖2 Modem狀態(tài)轉(zhuǎn)換示意圖[/align]   在本系統(tǒng)的設(shè)計(jì)中,我們采用金浪公司大眾Ⅱ型標(biāo)準(zhǔn)外置式56K調(diào)制解調(diào)器,和大多數(shù)外置Modem一樣,它提供的是標(biāo)準(zhǔn)的RS-232接口,所以和PC機(jī)相連的Modem可以通過串口直接連接,而單片機(jī)的串口為TTL電平,它和Modem相連必須進(jìn)行電平轉(zhuǎn)換,這里我們采用MAX232芯片,連接原理圖如圖3所示。89C51雖然有串行輸入、輸出口,但不具備RTS、CTS、DTR等標(biāo)準(zhǔn)接口握手信號(hào)線,考慮到單片機(jī)和上位機(jī)的通信量并不大,所以在連接時(shí)采用簡單的“三線制”即只通過TXD、RXD和地線GND進(jìn)行連接,其它信號(hào)在對(duì)Modem初始化時(shí)發(fā)送AT指令將其忽略。 [align=center] 圖3 Modem和單片機(jī)通信接口電路[/align] 4 基于VC的串口通訊   在眾多的開發(fā)工具中,VC由于具有串行通訊和數(shù)據(jù)處理的強(qiáng)大功能而成為開發(fā)遠(yuǎn)程通訊控制的首選開發(fā)語言。在Windows環(huán)境下完成串口通訊,目前通常有以下幾種方法:  ?。?) 利用Windows API通信函數(shù)。   (2) 利用VC的標(biāo)準(zhǔn)通信函數(shù)_inp、_inpw、_inpd、_outpw、_outpd等直接對(duì)串口進(jìn)行操作。   (3) 使用現(xiàn)有的ActiveX控件即MSComm控件來實(shí)現(xiàn)。  ?。?) 利用第三方編寫的通信類即CSerial類來實(shí)現(xiàn)。   以上幾種方法中第一種使用面較廣,但由于比較復(fù)雜,專業(yè)化程度較高,使用困難;使用第二種方法需要了解硬件電路結(jié)構(gòu)原理。在本系統(tǒng)中我們采用第三種方法, MSComm控件是微軟公司提供的一個(gè)可實(shí)現(xiàn)串行通信的ActiveX控件,擁有完善的串口數(shù)據(jù)接收和發(fā)送功能,并具有很多屬性,它屏蔽了通信過程中的底層操作,只需設(shè)置并監(jiān)視控件的屬性和事件就可完成對(duì)串口的初始化和數(shù)據(jù)的發(fā)送接收。   MSComm控件提供了兩種處理通信問題的方法:一種是事件驅(qū)動(dòng)方法,一種是查詢法[3]。其中事件驅(qū)動(dòng)方法響應(yīng)及時(shí),可靠性高,適用于較復(fù)雜的串口通信,本系統(tǒng)的設(shè)計(jì)就采用這種方法。 5 軟件設(shè)計(jì)   5.1 初始化程序設(shè)計(jì)   初始化程序設(shè)計(jì)主要完成串行口的初始化和Modem的初始化,首先為MSComm控件定義一個(gè)變量:CMSComm m_ctrlComm,相應(yīng)的程序如下:   BOOL CModemDlg::OnInitDialog()  ?。?   ……   if(m_ctrlComm.GetPortOpen())   m_ctrlComm.SetPortOpen(FALSE);   m_ctrlComm.SetCommPort(1); //選擇com1   if( !m_ctrlComm.GetPortOpen())   m_ctrlComm.SetPortOpen(TRUE);//打開串口   else   AfxMessageBox("串口1已被占用,請(qǐng)選擇其他串口");   m_ctrlComm.SetSettings("9600,n,8,1");   m_ctrlComm.SetInputMode(1);   m_ctrlComm.SetRThreshold(1);   m_ctrlComm.SetInputLen(0);   m_ctrlComm.GetInput();   CString strTemp;   strTemp="ATZ0\r\n";//Modem軟件復(fù)位   m_ctrlComm.SetOutput(COleVariant(strTemp));   strTemp="ATS0=1\r\n"; //Modem自動(dòng)等待連接   m_ctrlComm.SetOutput(COleVariant(strTemp));   strTemp="AT&D0&S0&R1\r\n"; //簡化Modem控制方式   m_ctrlComm.SetOutput(COleVariant(strTemp));   ……   }   5.2 撥號(hào)程序設(shè)計(jì)   void CModemDlg::OnDial()  ?。?   CString strTemp;   //向Modem發(fā)送指令   strTemp = "ATDT" + m_strPhoneNumber + "\r"+"\n"; // m_strPhoneNumber為電話號(hào)碼   m_ctrlComm.SetOutput(COleVariant(strTemp));  ?。?   5.3 數(shù)據(jù)發(fā)送程序設(shè)計(jì)   void CModemDlg::SendData(CString m_strSend)  ?。?   char TxData[100];   int Count=m_strSend.GetLength();   for(int i=0; i   TxData[i]=m_strSend.GetAt(i);   CByteArray array;   array.RemoveAll();   array.SetSize(Count);   for(i=0; i   array.SetAt(i,TxData[i]);   m_ctrlComm.SetOutput(ColeVariant(array));   }   5.4 數(shù)據(jù)接受程序設(shè)計(jì)   void CModemDlg::OnComm()  ?。?   VARIANT variant_inp;   COleSafeArray safearray_inp;   LONG len,k;   BYTE rxdata[2048]; //設(shè)置BYTE數(shù)組   CString strtemp;   CString strshuzu[100];   if(m_ctrlComm.GetCommEvent()==2) //事件值為2表示接收緩沖區(qū)內(nèi)有字符  ?。鹶ariant_inp=m_ctrlComm.GetInput(); //讀緩沖區(qū)   safearray_inp=variant_inp; //VARIANT型變量轉(zhuǎn)換為ColeSafeArray型變量   len=safearray_inp.GetOneDimSize(); //得到有效數(shù)據(jù)長度   for(k=0;k   safearray_inp.GetElement(&k,rxdata+k);//轉(zhuǎn)換為BYTE型數(shù)組   for(k=0;k   {BYTE bt=*(char*)(rxdata+k); //字符型   strtemp.Format("%02X ",bt);   strshuzu[k]=strtemp;}   ……//對(duì)接收的數(shù)據(jù)進(jìn)行相應(yīng)的處理,如數(shù)據(jù)的實(shí)時(shí)顯示、向數(shù)據(jù)庫添加等  ?。? 6 結(jié)束語   實(shí)驗(yàn)表明,該系統(tǒng)設(shè)計(jì)成本低,運(yùn)行穩(wěn)定可靠,能很好達(dá)到遠(yuǎn)程監(jiān)控的預(yù)期目的。對(duì)邊遠(yuǎn)地區(qū)的太陽能光伏發(fā)電技術(shù)的進(jìn)一步推廣和應(yīng)用有重大的意義。   本文作者創(chuàng)新點(diǎn):針對(duì)光伏電站的特點(diǎn),提出了利用VC控制Modem實(shí)現(xiàn)遠(yuǎn)程監(jiān)控的方案。 參考文獻(xiàn):   [1]劉福才,高秀偉等.光伏電站遠(yuǎn)程監(jiān)控系統(tǒng)單片機(jī)智能控制器的設(shè)計(jì)[J].計(jì)算機(jī)測量與控制2003,11(41):270-272   [2]張毅剛,彭喜元等.新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2003   [3]李現(xiàn)勇.Visual C++串口通信技術(shù)與工程實(shí)踐[M].北京:人民郵電出版社,2004   [4]喬奕,王超,陶維青.基于MSCOMM控件Modem通信的實(shí)現(xiàn).微計(jì)算機(jī)信息(測控自動(dòng)化)2004,20(7):102-103

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:小型水電站計(jì)算機(jī)監(jiān)控系統(tǒng)實(shí)...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)