基于TCP/IP的實(shí)時(shí)監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
通信電源是通信網(wǎng)絡(luò)的動(dòng)力基礎(chǔ)。隨著我國(guó)電信事業(yè)的迅速發(fā)展,通信網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,需要操作與維護(hù)的設(shè)備種類(lèi)和數(shù)量大幅度提高,設(shè)備的技術(shù)含量和復(fù)雜度也越來(lái)越高,以前的人工監(jiān)測(cè)方式已無(wú)法滿(mǎn)足正常的工作要求。上世紀(jì)90年代初原郵電部提出了對(duì)通信電源設(shè)備及環(huán)境進(jìn)行集中監(jiān)控的要求,即通過(guò)對(duì)通信電源及環(huán)境進(jìn)行遙測(cè)、遙信和遙控,最終實(shí)現(xiàn)少人值守或無(wú)人值守,以提高設(shè)備維護(hù)質(zhì)量,降低運(yùn)行維護(hù)費(fèi)用,同時(shí)保證系統(tǒng)處于良好的運(yùn)行工作狀態(tài),從而大幅度提高整體運(yùn)行效率,提高通信質(zhì)量及電源系統(tǒng)的管理水平。
近年來(lái),隨著計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò)的迅速發(fā)展,通信與計(jì)算機(jī)互相促進(jìn),越來(lái)越多的智能通信設(shè)備在通信局站投入使用,為通信電源的集中監(jiān)控和科學(xué)管理打下了良好的基礎(chǔ)。通過(guò)這些智能設(shè)備所提供的通信接口(如串口服務(wù)器)直接通過(guò)Internet將其接入通信電源集中監(jiān)控管理系統(tǒng),可實(shí)時(shí)獲取設(shè)備運(yùn)行的 各種參數(shù)和實(shí)時(shí)數(shù)據(jù),發(fā)送遙控命令,進(jìn)行參數(shù)設(shè)置,同時(shí)獲取設(shè)備的告警信息和運(yùn)行狀態(tài),而不必再加額外的傳感器、變送器和控制器,但這一切都需要精簡(jiǎn)高效的通信協(xié)議支持。
2、監(jiān)控系統(tǒng)組成和體系結(jié)構(gòu)
2.1監(jiān)控系統(tǒng)的基本組成和結(jié)構(gòu)
電源設(shè)備通過(guò)協(xié)議轉(zhuǎn)換器將采集到的數(shù)據(jù)傳到監(jiān)控中心,監(jiān)控中心再將數(shù)據(jù)存入數(shù)據(jù)庫(kù),以方便隨時(shí)查詢(xún)。監(jiān)控系統(tǒng)的組成如圖1所示。
圖1監(jiān)控系統(tǒng)的組成
2.2監(jiān)控系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)
通信電源集中監(jiān)控系統(tǒng)是由不同層次、不同功能的計(jì)算機(jī)和通信設(shè)備組成的一個(gè)計(jì)算機(jī)網(wǎng)絡(luò),采用Internet的數(shù)據(jù)傳輸模式,監(jiān)控中心對(duì)各支局進(jìn)行不間斷的巡檢,向串口服務(wù)器發(fā)送數(shù)據(jù)采集、遙測(cè)和遙控指令,串口服務(wù)器接受指令后將各監(jiān)控模塊采集的設(shè)備運(yùn)行的各種參數(shù)和實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)化為服從TCP/IP協(xié)議的數(shù)據(jù),發(fā)送回監(jiān)控中心,存入數(shù)據(jù)庫(kù)服務(wù)器以支持遠(yuǎn)程數(shù)據(jù)瀏覽和查詢(xún)及數(shù)據(jù)統(tǒng)計(jì)工作,如設(shè)備出現(xiàn)故障可自動(dòng)報(bào)警,其監(jiān)控網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2監(jiān)控網(wǎng)絡(luò)結(jié)構(gòu)
2.3監(jiān)控系統(tǒng)的軟件結(jié)構(gòu)
通訊電源監(jiān)控系統(tǒng)的界面如圖3所示,其模塊組成如圖4所示。
圖3 通訊電源監(jiān)控系統(tǒng)的主界面
圖4 通訊電源監(jiān)控系統(tǒng)的功能模塊
基礎(chǔ)設(shè)定模塊是用于人員的權(quán)限設(shè)置,監(jiān)控中心和各局站的參數(shù)設(shè)置;實(shí)時(shí)監(jiān)控模塊主要是監(jiān)測(cè)電源相關(guān)運(yùn)行數(shù)據(jù),例如電流、電壓等,設(shè)備出現(xiàn)故障可進(jìn)行聲音和圖像告警;數(shù)據(jù)采集模塊是完成通信電源監(jiān)測(cè)數(shù)據(jù)的采集并將其寫(xiě)入數(shù)據(jù)庫(kù);數(shù)據(jù)庫(kù)維護(hù)模塊則是完成數(shù)據(jù)庫(kù)的管理;曲線(xiàn)圖表模塊是采用曲線(xiàn)的方式顯示通信電源在某一段時(shí)間范圍的實(shí)時(shí)數(shù)據(jù),如電壓、電流的變動(dòng)情況;數(shù)據(jù)查詢(xún)模塊可根據(jù)用戶(hù)要求查詢(xún)通信電源的實(shí)時(shí)運(yùn)行數(shù)據(jù)、告警信息、遙控命令、月統(tǒng)計(jì)和值班狀況等信息,并可輸出相關(guān)報(bào)表。
3、通信協(xié)議設(shè)計(jì)與實(shí)現(xiàn)
二十一世紀(jì)是一個(gè)以網(wǎng)絡(luò)為核心的信息時(shí)代,TCP/IP Internet協(xié)議簇已經(jīng)成為計(jì)算機(jī)工業(yè)中開(kāi)放系統(tǒng)互聯(lián)的事實(shí)上的標(biāo)準(zhǔn)。
3.1監(jiān)控系統(tǒng)通信協(xié)議要求
監(jiān)控系統(tǒng)的底層由硬件組成,為了更好的傳輸數(shù)據(jù),將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為網(wǎng)絡(luò)數(shù)據(jù)流,這一過(guò)程由串口服務(wù)器完成。
監(jiān)控系統(tǒng)智能設(shè)備接入方式主要有直接接入方式和協(xié)議轉(zhuǎn)換器接入方式。協(xié)議轉(zhuǎn)換器簡(jiǎn)化監(jiān)控系統(tǒng)前端處理過(guò)程,提高系統(tǒng)總體實(shí)時(shí)性。本系統(tǒng)采用的協(xié)議轉(zhuǎn)換器即為串口服務(wù)器。
監(jiān)控系統(tǒng)通訊協(xié)議對(duì)系統(tǒng)的性能影響非常大。制定協(xié)議主要考慮對(duì)監(jiān)控量的數(shù)量和類(lèi)別的要求;對(duì)實(shí)時(shí)性的要求;對(duì)可靠性的要求;對(duì)協(xié)議的可擴(kuò)充性、兼容性的要求;對(duì)適用性的要求。通訊協(xié)議要無(wú)二義性,通訊協(xié)議必須能夠提供可靠的、高效的通訊。
3.2通信協(xié)議的設(shè)計(jì)
為了統(tǒng)一智能設(shè)備通訊協(xié)議,方便接入監(jiān)控系統(tǒng),原電信總局于1999年頒布了《通信局(站)電源、空調(diào)及環(huán)境集中監(jiān)控管理系統(tǒng)前端智能設(shè)備通訊協(xié)議》(中國(guó)電信交換[1999]625號(hào))作為標(biāo)準(zhǔn)協(xié)議,2003年信息產(chǎn)業(yè)部又以該協(xié)議為基礎(chǔ)制定監(jiān)控系統(tǒng)智能設(shè)備通信協(xié)議的行業(yè)標(biāo)準(zhǔn)。
作為通訊電源的統(tǒng)一通訊標(biāo)準(zhǔn),這一協(xié)議得到了廣泛的應(yīng)用。假設(shè)我們要傳遞的信息為00,則其信息幀的基本格式如下:
這種方式處理簡(jiǎn)單,僅用一條命令就可以獲取大量的信息,但當(dāng)監(jiān)控系統(tǒng)僅需要了解其中少量數(shù)據(jù)內(nèi)容時(shí),許多無(wú)用的卻依然占據(jù)著傳輸時(shí)間的數(shù)據(jù),勢(shì)必降低了效率。
因此很多公司有自己的通訊協(xié)議,他們直接采用二進(jìn)制編碼,即網(wǎng)絡(luò)流中的數(shù)據(jù)不是ACSII格式的數(shù)據(jù),而是數(shù)據(jù)本身,并且盡量減少冗余的數(shù)據(jù)。
3.3通信協(xié)議的實(shí)現(xiàn)過(guò)程
本系統(tǒng)的智能設(shè)備采用協(xié)議轉(zhuǎn)換器 (串口服務(wù)器)方式接入,傳輸協(xié)議采用《智能設(shè)備通訊協(xié)議》和企業(yè)自定義的傳輸協(xié)議(由于涉及企業(yè)的技術(shù)保密要求,本文中沒(méi)作介紹),編程語(yǔ)言為C#,編程環(huán)境為Microsoft Visual Studio .NET 2003。
在Internet中,TCP連接是常見(jiàn)的方式,用這種連接方式可以方便地在互聯(lián)網(wǎng)中傳遞數(shù)據(jù),只要事先知道串口服務(wù)器的IP地址和端口,實(shí)現(xiàn)通訊協(xié)議的程序如下:
TcpClient myClient; //TCP連接套接字
NetworkStream myStream; //獲取網(wǎng)絡(luò)流
public bool ConectStation(string ip,int port)
{
//連接局站函數(shù),連接成功返回true,失敗則返回false
try
{
myClient= new TcpClient(ip,port);
myStream="myClient".GetStream();
return true;
}
catch
{
return false;
}
}
由于采用串口服務(wù)器,只需將傳輸數(shù)據(jù)的ASCII碼轉(zhuǎn)換為網(wǎng)絡(luò)數(shù)據(jù)流,即可利用TCP/IP協(xié)議的可靠連接TCP連接傳輸二進(jìn)制流,程序如下:
String stationNo; //局站號(hào)
String version; //版本號(hào)
AsyncCallback outcallback="new" AsyncCallback(this.OnCompleteWrite); //網(wǎng)絡(luò)流傳輸?shù)漠惒秸{(diào)用
public void SetDChksum (); //求CHKSUM
public void StartSend()
{
char soi=(char)0x7E; //開(kāi)始字節(jié)
char eoi=(char)0x0D; //結(jié)束字節(jié)
string check="version"+stationNo+commandCode; //版本號(hào)+局站號(hào)+命令代碼,需進(jìn)行校驗(yàn)
string send="soi"+check+SetDChksum(check)+eoi; //發(fā)送數(shù)據(jù)字符串
byte[] outbuffer="Encoding".ASCII.GetBytes(send); //將數(shù)據(jù)字符串轉(zhuǎn)化成字節(jié)數(shù)據(jù)流
try
{
myStream.BeginWrite(outbuffer,0,outbuffer.Length,outcallback,null);
}
catch
{
//發(fā)送數(shù)據(jù)失敗的數(shù)據(jù)處理
}
}
4結(jié)束語(yǔ)
網(wǎng)絡(luò)技術(shù)、通信技術(shù)、計(jì)算機(jī)技術(shù)的快速發(fā)展,為通信電源監(jiān)控系統(tǒng)的進(jìn)一步發(fā)展和完善提供了條件。本系統(tǒng)正是結(jié)合這些最新技術(shù),實(shí)現(xiàn)了對(duì)通信電源的遙測(cè)、遙信和遙控,并實(shí)現(xiàn)了對(duì)通信電源運(yùn)行數(shù)據(jù)的遠(yuǎn)程Web瀏覽。本系統(tǒng)已在實(shí)際通訊電源監(jiān)控中采用,收到了良好的效果。
參考文獻(xiàn):
[1] 賈繼偉等編著.通信電源的科學(xué)管理與集中監(jiān)控.北京:人民郵電出版社,2004.8
[2] (美)Jesse Liberty編著,劉基誠(chéng)譯.C#程序設(shè)計(jì).北京:中國(guó)電力出版社,2002.5
[3] Kris Jamsa等 .NET Web服務(wù)解決方案應(yīng)用編程 北京:電子工業(yè)出版社 2003
[4] Matthew MacDonald. ASP.NET完全手冊(cè). 北京:電子工業(yè)出版社,2003
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論