摘 要:本文探討基于工業(yè)以太網(wǎng)的通信軟件系統(tǒng)在海軍機(jī)場(chǎng)油庫(kù)泵站遠(yuǎn)程監(jiān)控中的應(yīng)用,構(gòu)想有關(guān)體系結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)和設(shè)計(jì)過(guò)程等,并分析在現(xiàn)實(shí)過(guò)程中可能出現(xiàn)的若干問(wèn)題。
關(guān)鍵詞:遠(yuǎn)程監(jiān)控 機(jī)場(chǎng) 油庫(kù)泵站
中圖分類號(hào):V351.9文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1674-098X(2012)07(a)-0041-01
1 引言
海軍機(jī)場(chǎng)油庫(kù)泵站是海軍航空兵場(chǎng)站平戰(zhàn)時(shí)油料保障順利實(shí)施的重要保障平臺(tái),如何實(shí)現(xiàn)海軍航空兵機(jī)場(chǎng)油庫(kù)泵站遠(yuǎn)距離精確控制,是打贏信息化戰(zhàn)爭(zhēng)迫切期待解決的問(wèn)題。以太網(wǎng)作為目前應(yīng)用最為廣泛的局域網(wǎng)技術(shù),在自動(dòng)化和過(guò)程控制領(lǐng)域得到了越來(lái)越多的應(yīng)用?;赥CP/IP協(xié)議的以太網(wǎng)使整個(gè)網(wǎng)絡(luò)只有一種底層通信協(xié)議,滿足控制系統(tǒng)各個(gè)層次的要求,便捷地訪問(wèn)遠(yuǎn)程系統(tǒng)或與Internet聯(lián)接實(shí)現(xiàn)遠(yuǎn)程控制。
2 監(jiān)控系統(tǒng)的基本結(jié)構(gòu)
監(jiān)控系統(tǒng)可分為前臺(tái)監(jiān)控界面部分和后臺(tái)數(shù)據(jù)采集與傳輸部分。后臺(tái)數(shù)據(jù)采集及控制程序通過(guò)對(duì)下位機(jī)板卡的讀寫達(dá)到數(shù)據(jù)輸入和控制參數(shù)的輸出功能。前臺(tái)監(jiān)控界面則通過(guò)與后臺(tái)數(shù)據(jù)采集及傳輸程序以共享數(shù)據(jù)單元方式或傳遞數(shù)據(jù)方式,得到實(shí)時(shí)采集的數(shù)據(jù)并在屏幕上加以顯示。
3 監(jiān)控網(wǎng)絡(luò)系統(tǒng)體系結(jié)構(gòu)
監(jiān)控系統(tǒng)中通信網(wǎng)絡(luò)主要要求實(shí)時(shí)性和可靠性,為此,在設(shè)計(jì)該監(jiān)測(cè)系統(tǒng)時(shí),上層網(wǎng)絡(luò)選用標(biāo)準(zhǔn)以太網(wǎng)(Ethernet),而其底層網(wǎng)絡(luò)則采用了具有更高可靠性的工業(yè)現(xiàn)場(chǎng)總線—RS-485協(xié)議的總線技術(shù)。
機(jī)場(chǎng)油庫(kù)泵站現(xiàn)場(chǎng)設(shè)置四臺(tái)下位機(jī)作為微機(jī)保護(hù)裝置,本通信軟件實(shí)現(xiàn)了四臺(tái)微機(jī)保護(hù)裝置與監(jiān)控中心的數(shù)據(jù)通信。微機(jī)保護(hù)裝置通訊協(xié)議采用的是許繼103號(hào)電力通訊規(guī)約。其物理鏈路是RS-485總線,由于監(jiān)控系統(tǒng)下,線路要求的通信流量大,直接將RS-485總線與監(jiān)控操作站連接,進(jìn)行交換數(shù)據(jù),數(shù)據(jù)采集周期長(zhǎng),數(shù)據(jù)刷新實(shí)時(shí)太慢,所以可以將幾個(gè)微機(jī)保護(hù)裝置下掛到一個(gè)以太網(wǎng)網(wǎng)關(guān)下,進(jìn)行協(xié)議轉(zhuǎn)換。通過(guò)網(wǎng)關(guān)后,網(wǎng)絡(luò)通訊協(xié)議被網(wǎng)關(guān)轉(zhuǎn)化為104協(xié)議。利用以太網(wǎng)和TCP/IP協(xié)議把微機(jī)保護(hù)裝置的運(yùn)行參數(shù)自動(dòng)上送到遠(yuǎn)程監(jiān)控系統(tǒng)(上位機(jī)),上位機(jī)把控制指令下發(fā)給微機(jī)保護(hù)裝置,實(shí)現(xiàn)數(shù)據(jù)的網(wǎng)絡(luò)通信。
4 軟件的結(jié)構(gòu)設(shè)計(jì)
設(shè)計(jì)基于監(jiān)控系統(tǒng)的要求考慮,采用VC++作為開(kāi)發(fā)工具。因?yàn)閂C++具有精練的代碼,較高的執(zhí)行效率,突出的靈活性,可以完成從底層平臺(tái)到上層直接面向用戶的軟件,是大型工程項(xiàng)目開(kāi)發(fā)的強(qiáng)有力的工具。
4.1 通信軟件的功能分析
監(jiān)控系統(tǒng)與現(xiàn)場(chǎng)智能設(shè)備聯(lián)系的紐帶是通信軟件。通過(guò)通信程序現(xiàn)場(chǎng)智能設(shè)備可順利地將現(xiàn)場(chǎng)設(shè)備運(yùn)行的參數(shù),設(shè)備狀態(tài)、設(shè)備診斷信息上傳到監(jiān)控系統(tǒng),監(jiān)控系統(tǒng)下達(dá)正確控制指令也可通過(guò)數(shù)據(jù)發(fā)送的形式。
微機(jī)保護(hù)裝置通信軟件主要實(shí)現(xiàn)組態(tài)監(jiān)控軟件與微機(jī)保護(hù)裝置服務(wù)器連接,下發(fā)同步時(shí)鐘、進(jìn)行數(shù)據(jù)采集、數(shù)據(jù)分類、數(shù)據(jù)自動(dòng)上傳。該通訊軟件共有4層,應(yīng)用層、數(shù)據(jù)鏈路層、傳輸層、物理層,其中傳輸層采用TCP/IP協(xié)議、數(shù)據(jù)鏈路層采用滑動(dòng)窗停等協(xié)議、數(shù)據(jù)鏈路共享采用載波偵聽(tīng)、碰撞協(xié)議,CRC校驗(yàn),錯(cuò)誤重發(fā)。通訊軟件在調(diào)試好之后,通過(guò)編譯軟件生成DLL,組態(tài)軟件通過(guò)事件觸發(fā)與定時(shí)調(diào)用。
4.2 軟件的設(shè)計(jì)思路
根據(jù)現(xiàn)場(chǎng)的實(shí)際情況和要求,軟件共分為兩個(gè)主要的部分:一部分是數(shù)據(jù)的傳輸,采用Windows Socket通信;另一個(gè)部分是數(shù)據(jù)解析,實(shí)現(xiàn)對(duì)電力信息數(shù)據(jù)的解析。本系統(tǒng)數(shù)據(jù)信息采用第104號(hào)電力設(shè)備網(wǎng)絡(luò)通訊協(xié)議。
4.3 軟件的詳細(xì)設(shè)計(jì)
(1)軟件模塊(類)的設(shè)計(jì)。根據(jù)我們的軟件功能,我們將設(shè)計(jì)如下幾個(gè)模塊:線程通信類(CSocketComm),實(shí)現(xiàn)采集微機(jī)保護(hù)裝置的運(yùn)行參數(shù),向微機(jī)保護(hù)裝置寫入?yún)?shù)的兩項(xiàng)功能;協(xié)議類(Cxj104),增加許繼104通訊功能實(shí)現(xiàn)通訊協(xié)議功能,即可以按照104協(xié)議自動(dòng)定時(shí)完成數(shù)據(jù)采集、數(shù)據(jù)分?jǐn)?shù)據(jù)召喚上送以及同步時(shí)鐘的下發(fā),Cxj104實(shí)現(xiàn)設(shè)備層和通訊層的功能;地址結(jié)構(gòu)體(SockAddrIn),對(duì)現(xiàn)場(chǎng)數(shù)據(jù)采集設(shè)備地址進(jìn)行設(shè)置、判斷、獲取IP地址和端口號(hào);報(bào)警結(jié)構(gòu)體(DataWarn),包括報(bào)警類型、時(shí)間、地址和報(bào)警值。
(2)線程通信類的實(shí)現(xiàn)。線程通信是整個(gè)通信軟件的基礎(chǔ),也是最關(guān)鍵的部分之一。我們采用基于TCP/IP的多線程開(kāi)發(fā)模式,用WINSOCK實(shí)現(xiàn)網(wǎng)絡(luò)連接。而多線程機(jī)制可以最大限度的節(jié)約系統(tǒng)資源。
線程通信主要實(shí)現(xiàn)線程的建立、關(guān)閉,建立、關(guān)閉連接,讀寫線程數(shù)據(jù)等功能。104協(xié)議傳輸層采用TCP/IP協(xié)議,Winsock是TCP/IP的一個(gè)接口。在Windows環(huán)境下,網(wǎng)絡(luò)通訊協(xié)議的軟件開(kāi)發(fā)接口就是Winsock函數(shù)。應(yīng)用程序調(diào)用Windows Socket的API實(shí)現(xiàn)相互之間的通訊。應(yīng)用程序要是向系統(tǒng)申請(qǐng)Socket,其便獲得了一個(gè)與其它應(yīng)用程序通訊的輸入輸出接口?;赥CP/IP網(wǎng)絡(luò)通信的主要模式是客戶機(jī)/服務(wù)器方式,具體為:客戶程序發(fā)送請(qǐng)求服務(wù)程序,服務(wù)器對(duì)客戶的請(qǐng)求做出響應(yīng),并將結(jié)果返回給客戶。
(3)通信協(xié)議類實(shí)現(xiàn)。電力行業(yè)數(shù)據(jù)按類別主要分為遙信信息、遙測(cè)信息、電能信息。遙信信息一般表示開(kāi)關(guān)量(電機(jī)起停、繼電器開(kāi)合等);遙測(cè)信息用于表示電壓、電流、頻率等瞬時(shí)值;電能信息用于表示電量等累加值。
為了實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)單元,我們建立兩個(gè)數(shù)據(jù)結(jié)構(gòu)體,一個(gè)是信息體數(shù)據(jù)結(jié)構(gòu)體(DataStru),它包含了數(shù)據(jù)的公共地址、點(diǎn)號(hào)和值,實(shí)現(xiàn)對(duì)數(shù)據(jù)的存儲(chǔ);另一個(gè)是單元數(shù)據(jù)結(jié)構(gòu)體(UnitData),主要是為了對(duì)各種數(shù)據(jù)分別存儲(chǔ),為了不相互影響,使用臨界區(qū)加鎖技術(shù)。
(4)導(dǎo)出函數(shù)設(shè)計(jì)。導(dǎo)出函數(shù)為DLL提供了對(duì)外的接口,它可以被MFC或非MFC應(yīng)用程序調(diào)用,具有模塊定義文件。當(dāng)有外部其他應(yīng)用程序調(diào)用DLL時(shí),就是通過(guò)調(diào)用導(dǎo)出函數(shù)來(lái)實(shí)現(xiàn)。
由于本通信軟件主要是向上位機(jī)組態(tài)監(jiān)控軟件提供微機(jī)保護(hù)裝置的運(yùn)行參數(shù)和向微機(jī)保護(hù)裝置寫入?yún)?shù),其參數(shù)信息主要是遙測(cè)、遙控、報(bào)警等。所以導(dǎo)出函數(shù)主要有如下幾個(gè):是否有報(bào)警,獲得遙測(cè)、單點(diǎn)遙信、雙點(diǎn)遙信、其它遙信、報(bào)警等。另外還有開(kāi)始、結(jié)束協(xié)議,添加、刪除單元,建立、斷開(kāi)連接等。
參考文獻(xiàn)
[1]段錦,齊紅,宋璐.實(shí)時(shí)數(shù)據(jù)遠(yuǎn)程通信系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)工程.2002,28(4):263-264,267.
[2]張浩泉,馬寶波.油庫(kù)司泵[M].北京:解放軍出版社.1999.
[3]黨力.無(wú)線數(shù)據(jù)通信在遠(yuǎn)程監(jiān)控中的應(yīng)用[J].石油化工自動(dòng)化.2005(3):57-58,85.