![通訊管理機(jī)產(chǎn)品研制項(xiàng)目詳細(xì)設(shè)計(jì)說明書_第1頁](http://file4.renrendoc.com/view/b922ff4db44547f54fb96302ee198501/b922ff4db44547f54fb96302ee1985011.gif)
![通訊管理機(jī)產(chǎn)品研制項(xiàng)目詳細(xì)設(shè)計(jì)說明書_第2頁](http://file4.renrendoc.com/view/b922ff4db44547f54fb96302ee198501/b922ff4db44547f54fb96302ee1985012.gif)
![通訊管理機(jī)產(chǎn)品研制項(xiàng)目詳細(xì)設(shè)計(jì)說明書_第3頁](http://file4.renrendoc.com/view/b922ff4db44547f54fb96302ee198501/b922ff4db44547f54fb96302ee1985013.gif)
![通訊管理機(jī)產(chǎn)品研制項(xiàng)目詳細(xì)設(shè)計(jì)說明書_第4頁](http://file4.renrendoc.com/view/b922ff4db44547f54fb96302ee198501/b922ff4db44547f54fb96302ee1985014.gif)
![通訊管理機(jī)產(chǎn)品研制項(xiàng)目詳細(xì)設(shè)計(jì)說明書_第5頁](http://file4.renrendoc.com/view/b922ff4db44547f54fb96302ee198501/b922ff4db44547f54fb96302ee1985015.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE通訊管理機(jī)產(chǎn)品研制項(xiàng)目詳細(xì)設(shè)計(jì)說明書
目錄1 引言 11.1編寫目的 11.2背景 11.3定義 11.4參考資料 22 系統(tǒng)設(shè)計(jì)總體說明 32.1系統(tǒng)結(jié)構(gòu) 32.2開發(fā)工具和軟件運(yùn)行平臺(tái) 32.2.1運(yùn)行環(huán)境 32.2.2開發(fā)機(jī)器和工具 43 功能模塊簡(jiǎn)介 53.1規(guī)約模塊 53.2內(nèi)核模塊 53.3通訊接口模塊 53.4初始化模塊 54 功能模塊詳細(xì)說明 74.1規(guī)約模塊 74.1.1功能描述 74.1.2類設(shè)計(jì)說明 74.1.3接口函數(shù)說明 84.1.4程序流程 84.1.5質(zhì)量要求 104.2內(nèi)核模塊 114.2.1功能描述 114.2.2類設(shè)計(jì)說明 114.2.3接口說明 134.2.4程序流程 134.2.5質(zhì)量要求 144.3通訊接口模塊 154.3.1功能描述 154.3.2類設(shè)計(jì)說明 154.3.3接口說明 164.3.4程序流程 174.3.5質(zhì)量要求 184.4初始化模塊 184.4.1功能描述 184.4.2配置文件說明 184.4.4質(zhì)量要求 195 硬件平臺(tái) 205.1概述 205.2外觀與尺寸 205.3主要技術(shù)參數(shù) 216 代碼設(shè)計(jì)原則 226.1設(shè)計(jì)原則 226.2涉及范圍 226.3代碼方案 227 錯(cuò)誤處理設(shè)計(jì) 237.1概述 237.2遠(yuǎn)程調(diào)試信息 23附錄一:WXF配置軟件詳細(xì)設(shè)計(jì)說明書 24WXF產(chǎn)品研制項(xiàng)目詳細(xì)設(shè)計(jì)說明書PAGE23引言1.1編寫目的本文檔是根據(jù)WXF通訊管理機(jī)的開發(fā)需求進(jìn)行詳細(xì)分析和討論后得出的詳細(xì)設(shè)計(jì)說明書,旨在明確WXF通訊管理機(jī)的功能實(shí)現(xiàn)。通過本詳細(xì)設(shè)計(jì)說明書,可以了解到WXF通訊管理機(jī)的總體設(shè)計(jì)、功能邊界、各個(gè)功能的模塊設(shè)計(jì)等。借助該文檔,可以規(guī)范和指導(dǎo)WXF通訊管理機(jī)的開發(fā)人員開始產(chǎn)品的研發(fā)工作。本文檔面向的讀者是:WXF通訊管理機(jī)的開發(fā)人員、測(cè)試人員、產(chǎn)品經(jīng)理,WXF通訊管理機(jī)詳細(xì)設(shè)計(jì)說明書的評(píng)審人員。1.2背景設(shè)備名稱:WXF通訊管理機(jī)。傳統(tǒng)的前置通訊管理機(jī)主要采用工控機(jī)加串口卡的模式,該種模式結(jié)構(gòu)簡(jiǎn)單、擴(kuò)展性強(qiáng)從而被普遍采用。但是隨著前置系統(tǒng)的日益發(fā)展,該種模式的弊端也日漸顯現(xiàn):由于前置系統(tǒng)經(jīng)常運(yùn)行在環(huán)境惡劣的工業(yè)現(xiàn)場(chǎng),工控機(jī)的風(fēng)扇、硬盤等機(jī)械部件將成為制約系統(tǒng)7×24長(zhǎng)時(shí)間穩(wěn)定運(yùn)行的瓶頸。工控機(jī)體積龐大只能組屏安裝,對(duì)于不具備組屏條件的現(xiàn)場(chǎng)將不能適用。由于工控機(jī)加MOXA卡的模式與普通的PC系統(tǒng)沒有差異,將會(huì)導(dǎo)致很多不必要的人為干預(yù)?,F(xiàn)場(chǎng)各種類型的項(xiàng)目對(duì)系統(tǒng)的組網(wǎng)方式提出了更高的要求,作為綜自系統(tǒng)中的通訊樞紐通訊管理機(jī),需要更高的可靠性和靈活性?;谝陨蠋c(diǎn),需要開發(fā)一種系統(tǒng)相對(duì)安全、更加穩(wěn)定可靠、安裝配置更加靈活的通訊轉(zhuǎn)換裝置充實(shí)現(xiàn)在的單一的前置通訊管理機(jī)的解決方案。1.3定義下表列出本報(bào)告中專門術(shù)語的定義、英文縮寫詞的原詞組和意義、項(xiàng)目組內(nèi)達(dá)成一致意見的專用詞匯,同時(shí)繼承全部的先前過程中定義過的詞匯。詞匯名稱詞匯含義備注1.4參考資料編號(hào)資料名稱說明2WXF產(chǎn)品研制項(xiàng)目需求規(guī)格說明書V1.002WXF產(chǎn)品研制項(xiàng)目概要設(shè)計(jì)說明書V1.00系統(tǒng)設(shè)計(jì)總體說明2.1系統(tǒng)結(jié)構(gòu)通訊管理機(jī)軟件通過設(shè)備側(cè)協(xié)議與間隔層智能設(shè)備進(jìn)行通訊,采集間隔層智能設(shè)備的遙測(cè)、遙信、遙脈等數(shù)據(jù),讀取SOE、保護(hù)事件等事件信息,進(jìn)行遙控、定值操作的遠(yuǎn)方操作。通訊管理機(jī)軟件通過系統(tǒng)側(cè)協(xié)議與后臺(tái)監(jiān)控系統(tǒng)進(jìn)行通訊,向后臺(tái)監(jiān)控系統(tǒng)轉(zhuǎn)發(fā)遙測(cè)、遙信、遙脈、SOE、保護(hù)事件等數(shù)據(jù)和事件信息,同時(shí)接收后臺(tái)的遙控、定值等操作命令并轉(zhuǎn)發(fā)給相應(yīng)的設(shè)備側(cè)協(xié)議。工程調(diào)試人員通過配置工具軟件根據(jù)工程現(xiàn)場(chǎng)的實(shí)際情況進(jìn)行工程配置,并通過配置工具軟件進(jìn)行系統(tǒng)文件和配置文件的下載和讀取,通過配置工具軟件進(jìn)行遠(yuǎn)程模擬操作,并通過報(bào)文監(jiān)視功能實(shí)現(xiàn)系統(tǒng)調(diào)試和故障診斷。2.2開發(fā)工具和軟件運(yùn)行平臺(tái)2.2.1運(yùn)行環(huán)境硬件運(yùn)行環(huán)境類別要求備注CPU400MHz及以上內(nèi)存128MB及以上程序存儲(chǔ)器64MB及以上電源220VAC以太網(wǎng)口4個(gè)485口10個(gè)及以上CAN總線接口2個(gè)硬件狗有設(shè)備狀態(tài)指示LED燈軟件運(yùn)行環(huán)境類別要求備注操作系統(tǒng)嵌入式Linux2.6內(nèi)核應(yīng)用軟件支持GDB、FTP、TELNET、NFS需要在系統(tǒng)裁剪時(shí)添加2.2.2開發(fā)機(jī)器和工具開發(fā)用機(jī)器類別要求備注CPU1.8GHz以上CPU內(nèi)存最少1024MB主機(jī)硬盤最少80GB網(wǎng)卡10/100Mb/s串口1個(gè)軟件環(huán)境類別要求備注操作系統(tǒng)WindowsXPLINUX系統(tǒng)Redhat9.0編譯器GCC、G++庫文件GLIBC應(yīng)用軟件VMWEAR虛擬機(jī)FTP工具功能模塊簡(jiǎn)介3.1規(guī)約模塊規(guī)約模塊是通訊管理機(jī)開發(fā)的一個(gè)重要模塊。在通訊管理機(jī)開發(fā)完畢后,后續(xù)主要的工作量就是根據(jù)實(shí)際工程中現(xiàn)場(chǎng)設(shè)備采用的通訊規(guī)約的不同進(jìn)行開發(fā)規(guī)約。由于國內(nèi)各個(gè)保護(hù)裝置廠家采用的通訊協(xié)議各異,有些廠家即使采用同樣的通訊規(guī)約標(biāo)準(zhǔn)如IEC103,也會(huì)在根據(jù)需要在某些方面有所異化,所以后續(xù)通訊規(guī)約的開發(fā)任務(wù)比較繁重,因此規(guī)約工作方式和管理模式的設(shè)計(jì)的好環(huán)直接影響到后續(xù)工作的開展。規(guī)約分為兩種類型:一種是對(duì)IED設(shè)備的規(guī)約,負(fù)責(zé)與設(shè)備通訊,采集設(shè)備數(shù)據(jù);另外一種是遠(yuǎn)傳規(guī)約,負(fù)責(zé)將通訊管理機(jī)下接入的設(shè)備按照需要轉(zhuǎn)發(fā)給后臺(tái)或其他上位系統(tǒng)。3.2內(nèi)核模塊內(nèi)核模塊是通訊管理機(jī)中信息交互的樞紐,內(nèi)核模塊通過不同通道間消息轉(zhuǎn)發(fā),實(shí)現(xiàn)了數(shù)據(jù)傳送、協(xié)議轉(zhuǎn)換和接口轉(zhuǎn)換。內(nèi)核模塊封裝了系統(tǒng)實(shí)時(shí)庫,包括設(shè)備數(shù)據(jù)區(qū)、遙測(cè)數(shù)據(jù)區(qū)、遙信數(shù)據(jù)區(qū)、遙控?cái)?shù)據(jù)區(qū)、遙脈數(shù)據(jù)區(qū)和轉(zhuǎn)發(fā)通道區(qū),同時(shí)封裝了對(duì)內(nèi)存實(shí)時(shí)庫的訪問接口??紤]到系統(tǒng)的模塊化設(shè)計(jì),各個(gè)裝置協(xié)議將設(shè)計(jì)成.so的動(dòng)態(tài)鏈接庫的內(nèi)核模塊將設(shè)計(jì)成獨(dú)立的.so動(dòng)態(tài)鏈接庫,便于各個(gè)規(guī)約模塊與軟總線模塊直接調(diào)用,而不需要再走通訊的方式。3.3通訊接口模塊WXF通訊管理機(jī)應(yīng)設(shè)有10路或以上RS485口、4路及以上以太網(wǎng)口和2路CAN通訊口,涉及的通訊方式主要有串口、CAN網(wǎng)、以太網(wǎng)TCP和UDP這四種,本模塊主要實(shí)現(xiàn)對(duì)對(duì)這四種通訊方式的驅(qū)動(dòng)支持,對(duì)這四種通訊方式做成以.SO的動(dòng)態(tài)鏈接庫的形式做封裝,供主程序以及各個(gè)通訊規(guī)約調(diào)用。3.4初始化模塊初始化模塊是實(shí)現(xiàn)定義了程序的初始化,實(shí)現(xiàn)工程配置文件的讀取和解析,根據(jù)配置文件加載所需的規(guī)約模塊,并初始化通道和設(shè)備。初始化模塊包含以下功能:配置文件的加載。工程配置文件由上位機(jī)遠(yuǎn)程配置軟件編譯生成,并通過FTP工具下載到通訊管理機(jī)終端設(shè)備中,在終端啟動(dòng)后,通訊管理機(jī)應(yīng)用軟件通過流文件方式將工程配置文件讀入內(nèi)存中。配置文件應(yīng)該包括工程配置和設(shè)備模板兩個(gè)部分。工程配置:包括各個(gè)通訊端口系統(tǒng),端口配置,端口協(xié)議,設(shè)備數(shù)量,設(shè)備類型等信息;設(shè)備模板指本通訊管理機(jī)中接入設(shè)備的信息,包括設(shè)備名稱、遙測(cè)、遙信、遙脈、遙控、定制、壓板、事件信息等。規(guī)約的加載。規(guī)約采用動(dòng)態(tài)加載的模式,主程序啟動(dòng)時(shí)在指定系統(tǒng)指定目錄(當(dāng)前目錄)加載規(guī)約模塊文件(.so動(dòng)態(tài)鏈接庫),并通過系統(tǒng)API調(diào)用規(guī)約模塊的導(dǎo)出接口函數(shù),作為內(nèi)核模塊和規(guī)約模塊的交互接口。各任務(wù)的初始化和關(guān)閉應(yīng)用軟件啟動(dòng)時(shí),初始化模塊通過規(guī)約模塊的接口發(fā)送初始化命令初始化設(shè)備配置啟動(dòng)規(guī)約模塊,系統(tǒng)推出時(shí)關(guān)閉并釋放各個(gè)設(shè)備規(guī)約。功能模塊詳細(xì)說明4.1規(guī)約模塊4.1.1功能描述規(guī)約模塊與間隔層智能設(shè)備以及上位機(jī)監(jiān)控系統(tǒng)進(jìn)行數(shù)據(jù)通信,主要實(shí)現(xiàn)通訊數(shù)據(jù)的解析和下發(fā)報(bào)文的組包,規(guī)約分為兩種類型:一種是對(duì)IED設(shè)備的規(guī)約,負(fù)責(zé)與設(shè)備通訊,采集設(shè)備數(shù)據(jù);另外一種是遠(yuǎn)傳規(guī)約,負(fù)責(zé)將通訊管理機(jī)下接入的設(shè)備按照需要轉(zhuǎn)發(fā)給后臺(tái)或其他上位系統(tǒng)。規(guī)約模塊同時(shí)支持多個(gè)端口,每個(gè)端口支持多個(gè)設(shè)備,每個(gè)規(guī)約提供一個(gè)接口作為與內(nèi)核通訊的接口,內(nèi)核通過該接口向規(guī)約發(fā)送系統(tǒng)命令和操作指令。系統(tǒng)命令包括規(guī)約初始化、規(guī)約退出、端口初始化、設(shè)備初始化、獲取規(guī)約名稱等;操作指令包括遙控命令、定值操作、定值區(qū)操作、對(duì)時(shí)命令、遠(yuǎn)方操作等。4.1.2類設(shè)計(jì)說明規(guī)約類類名classCProtocol主要屬性說明串口鏈表:std::list<CComPort*>m_ListComPort設(shè)備鏈表:std::list<CDevice*>m_ListDevice消息鏈表:std::list<CMessage*>m_ListMessage超時(shí)時(shí)間:UINTm_uTimeOut定時(shí)器時(shí)間:UINTm_uTimer重操作次數(shù):UINTm_uTimes通訊中斷后輪詢時(shí)間:UINTm_uWait主要方法說明消息處理:intMessageCall(UINTmsg,void*wParam,longlParam)通訊回調(diào):voidCommCall(UINTuMsg,HANDLEhandle,void*wParam,longlParam)斷幀處理:BOOLFrameCheckCall(BYTE*pData,int&nLength)初始化:intInitPrem()規(guī)約退出:voidExitPrem()由串口句柄得到串口對(duì)象指針:CComPort*GetComPort(HANDLEhandle)由串口端口號(hào)得到串口指針:CComPort*GetComPort(UINTuPort)由設(shè)備地址得到設(shè)備對(duì)象指針:CDevice*GetDevice(BYTEbtNo)通訊接口類類名classCComPort主要屬性說明串口句柄:HANDLEm_hComPort當(dāng)前設(shè)備:CDevice*m_pCurDevice串口設(shè)置:charm_szSetting[64]設(shè)備鏈表:std::list<CDevice*>m_ListDevice主要方法說明處理接收數(shù)據(jù):voidRecv()輪詢?cè)O(shè)備:void*Protocol_Task(void*arg)將一個(gè)設(shè)備加入串口設(shè)備鏈表:voidAddDevice(CDevice*pDevice)打開當(dāng)前串口:BOOLOpen(constchar*szSetting)重設(shè)串口:BOOLResetComm()得到當(dāng)前串口的端口號(hào):UINTGetPortNO();由設(shè)備地址得到設(shè)備對(duì)象:CDevice*GetDevice(BYTEbtAddr)得到串口當(dāng)前設(shè)備的下一臺(tái)設(shè)備:CDevice*GetNextDevice(CDevice*pCurDevice)設(shè)備類類名classCDevice描述設(shè)備地址(設(shè)備編號(hào)):BYTEm_btAddr設(shè)備編號(hào):intm_nID設(shè)備名稱:charm_szName[32]串口指針:CComPort*m_pComPort主要方法說明發(fā)送處理:voidProcessSend()接收處理:voidProcessReceive(BYTE*pData,intnLength)通報(bào)設(shè)備通信恢復(fù):voidOnCommOK()通報(bào)設(shè)備通信中斷:voidOnCommError()初始化:voidDeviceInit()4.1.3接口函數(shù)說明消息回調(diào)intMessageCall(UINTmsg,void*wParam,longlParam)規(guī)約模塊的導(dǎo)出函數(shù),由內(nèi)核調(diào)用,向規(guī)約模塊發(fā)送初始化、退出、控制命令等消息。通訊回調(diào)voidCommCall(UINTuMsg,HANDLEhandle,void*wParam,longlParam)當(dāng)通訊接口收到符合要求的數(shù)據(jù)時(shí),由通訊接口模塊調(diào)用,觸發(fā)規(guī)約模塊的數(shù)據(jù)處理操作。斷幀處理BOOLFrameCheckCall(BYTE*pData,int&nLength)當(dāng)通訊接口接收到數(shù)據(jù)時(shí)調(diào)用,檢查接收緩沖區(qū)中數(shù)據(jù)是否符合幀要求。4.1.4程序流程控制命令處理流程內(nèi)核模塊的控制命令通過調(diào)用規(guī)約模塊的消息回調(diào)函數(shù)MessageCall發(fā)送給規(guī)約模塊。規(guī)約模塊收到消息后暫存在消息隊(duì)列中,然后向各個(gè)端口的處理任務(wù)發(fā)送信號(hào),端口處理任務(wù)收到信號(hào)后主動(dòng)到消息隊(duì)列中取出該消息進(jìn)行處理。根據(jù)消息的類型組織成報(bào)文下發(fā)到間隔層終端設(shè)備,并對(duì)間隔層設(shè)備的返校數(shù)據(jù)進(jìn)行處理,通過內(nèi)核的接口WriteRtdbData向內(nèi)核寫入數(shù)據(jù)。接收數(shù)據(jù)處理流程通訊介質(zhì)層對(duì)于接收的數(shù)據(jù)進(jìn)行緩存管理,規(guī)約模塊可以借助通訊介質(zhì)層的管理進(jìn)行接收數(shù)據(jù)的處理。規(guī)約模塊在處理通訊介質(zhì)層緩存的接收數(shù)據(jù)時(shí),應(yīng)該先判斷數(shù)據(jù)的接收數(shù)據(jù)幀的格式,再移除數(shù)據(jù)進(jìn)行處理。通訊介質(zhì)層應(yīng)該能提供了兩種讀取接收數(shù)據(jù)的方式,一種是只查看數(shù)據(jù)內(nèi)容,即獲得接收緩沖區(qū)數(shù)據(jù)的一份拷貝;另一種是獲取該數(shù)據(jù),即將接收緩沖區(qū)的數(shù)據(jù)移出接收緩沖區(qū)。兩種讀取數(shù)據(jù)方式的區(qū)別在于,是否在獲得數(shù)據(jù)的同時(shí)刪除接收緩沖區(qū)中的數(shù)據(jù)。例如,在處理設(shè)備報(bào)文時(shí),規(guī)約模塊必須等待接收到完整的數(shù)據(jù)幀后進(jìn)行解釋,因此當(dāng)通訊模塊通知規(guī)約模塊有數(shù)據(jù)到達(dá)時(shí),規(guī)約模塊采用第一種方式讀出幀頭,計(jì)算出整幀數(shù)據(jù)的長(zhǎng)度,與接收到的數(shù)據(jù)總長(zhǎng)度比較,如果數(shù)據(jù)全部收到,則可以使用第二種方式將數(shù)據(jù)取出進(jìn)行處理,緩沖區(qū)指針移向下一幀數(shù)據(jù)的起始位置;如果數(shù)據(jù)未全部收到,則規(guī)約模塊可以結(jié)束本次處理,等待下次通訊模塊的接收事件通知。數(shù)據(jù)處理流程圖如下:4.1.5質(zhì)量要求性能指標(biāo)每個(gè)規(guī)約支持端口數(shù)目<=32。每個(gè)端口支持設(shè)備數(shù)目<=64。設(shè)備支持?jǐn)?shù)據(jù)點(diǎn)數(shù)目<=65535。同一設(shè)備同時(shí)只支持一個(gè)遠(yuǎn)方操作過程。遙測(cè)測(cè)量誤差<0.5%。遙控正確率達(dá)到100%。重要遙測(cè)量數(shù)據(jù)更新周期<3s、遙信變位響應(yīng)時(shí)間<2s。事件順序記錄(SOE)、站間分辨率≤20ms。功能測(cè)試要點(diǎn)采用黑盒測(cè)試的方法即可。通過系統(tǒng)側(cè)規(guī)約模塊接入上位機(jī)監(jiān)控系統(tǒng),通過設(shè)備側(cè)規(guī)約模塊接入智能設(shè)備,通過保護(hù)測(cè)試源在智能設(shè)備上接入相關(guān)模擬量或狀態(tài)量,在上位機(jī)監(jiān)控系統(tǒng)驗(yàn)證數(shù)據(jù)處理的正確性。在裝置進(jìn)行遙信變位、保護(hù)事件等試驗(yàn),在上位機(jī)監(jiān)控系統(tǒng)查看事件信息。檢查規(guī)約模塊處理的正確性。由上位機(jī)模擬遠(yuǎn)方操作,檢查操作過程處理的正確性。4.2內(nèi)核模塊4.2.1功能描述內(nèi)核模塊主要封裝了實(shí)時(shí)庫,包括設(shè)備數(shù)據(jù)區(qū)、遙測(cè)數(shù)據(jù)區(qū)、遙信數(shù)據(jù)區(qū)、遙控?cái)?shù)據(jù)區(qū)、遙脈數(shù)據(jù)區(qū)和轉(zhuǎn)發(fā)通道區(qū),同時(shí)封裝了對(duì)內(nèi)存實(shí)時(shí)庫的訪問接口。同時(shí)還進(jìn)行遙信變位和遙測(cè)越限的處理。系統(tǒng)中采用統(tǒng)一的實(shí)時(shí)庫,對(duì)于多轉(zhuǎn)發(fā)的情況只考慮在轉(zhuǎn)發(fā)通道規(guī)約內(nèi)做額外的處理。在設(shè)備索引時(shí)采用二分查找算法,以提供設(shè)備遍歷的效率。4.2.2類設(shè)計(jì)說明實(shí)時(shí)庫類類名classCRtdbDataBase主要屬性說明設(shè)備數(shù)目:intm_nTotalDevice轉(zhuǎn)發(fā)數(shù)目:intm_nTotalTransmit設(shè)備存儲(chǔ)區(qū)指針:CRtdbDevice*m_pRtdbDevice轉(zhuǎn)發(fā)存儲(chǔ)區(qū)指針:CRtdbTransmit*m_pRtdbTransmit主要方法說明數(shù)據(jù)加載:BOOLLoadData()數(shù)據(jù)釋放:voidFreeData()獲取設(shè)備數(shù)目:intGetDeviceNum()獲取指定設(shè)備索引號(hào):intGetDeviceIndex(CRtdbDevice*pDevice)根據(jù)設(shè)備號(hào)獲取設(shè)備指針:CRtdbDevice*GetRtdbDevice(intnNo)根據(jù)索引號(hào)獲取設(shè)備指針:CRtdbDevice*FindRtdbDevice(intnIndex)獲取轉(zhuǎn)發(fā)數(shù)目:intGetTransmitNum()獲取指定轉(zhuǎn)發(fā)索引號(hào):intGetTransmitIndex(CRtdbTransmit*pTransmit)根據(jù)轉(zhuǎn)發(fā)通道號(hào)獲取轉(zhuǎn)發(fā)指針:CRtdbTransmit*GetRtdbTransmit(intnNo)根據(jù)索引號(hào)獲取轉(zhuǎn)發(fā)指針:CRtdbTransmit*FindRtdbTransmit(intnIndex)數(shù)據(jù)寫入:voidWriteRtdbData(UINTmsg,void*wParam,longlParam)實(shí)時(shí)庫設(shè)備類類名classCRtdbDevice主要屬性說明設(shè)備ID:intm_nID設(shè)備名:charm_szName[32]規(guī)約接口函數(shù)指針: LPPROTCALLm_lpProtocolCall數(shù)據(jù)庫指針:CRtdbDataBase*m_pDataBase設(shè)備模擬量數(shù)目:intm_nTotalAnalogue設(shè)備開關(guān)量數(shù)目:intm_nTotalDigital設(shè)備遙控點(diǎn)數(shù)目:intm_nTotalRelay設(shè)備脈沖點(diǎn)數(shù)目:intm_nTotalPulse模擬量存儲(chǔ)區(qū)指針:CRtdbAnalogue*m_pRtdbAnalogue開關(guān)量存儲(chǔ)區(qū)指針:CRtdbDigital*m_pRtdbDigital遙控點(diǎn)存儲(chǔ)區(qū)指針:CRtdbRelay*m_pRtdbRelay脈沖點(diǎn)存儲(chǔ)區(qū)指針:CRtdbPulse*m_pRtdbPulse主要方法說明獲取設(shè)備ID:intGetID()獲取設(shè)備名:constchar*GetName()根據(jù)模擬量號(hào)獲取模擬量指針:CRtdbAnalogue*GetRtdbAnalogue(intnNo)根據(jù)數(shù)字量號(hào)獲取數(shù)字量指針:CRtdbDigital*GetRtdbDigital(intnNo)根據(jù)遙控點(diǎn)號(hào)獲取遙控點(diǎn)指針:CRtdbRelay*GetRtdbRelay(intnNo)根據(jù)模擬量號(hào)獲取模擬量指針:CRtdbPulse*GetRtdbPulse(intnNo)根據(jù)模擬量索引號(hào)獲取模擬量指針:CRtdbAnalogue*FindRtdbAnalogue(intnIndex)根據(jù)數(shù)字量索引號(hào)獲取數(shù)字量指針:CRtdbDigital*FindRtdbDigital(intnIndex)根據(jù)遙控點(diǎn)號(hào)獲取遙控點(diǎn)指針:CRtdbRelay*FindRtdbRelay(intnIndex)根據(jù)脈沖點(diǎn)索引號(hào)獲取脈沖點(diǎn)指針:CRtdbPulse*FindRtdbPulse(intnIndex)轉(zhuǎn)發(fā)通道類類名classCRtdbTransmit主要屬性說明轉(zhuǎn)發(fā)ID:intm_nID轉(zhuǎn)發(fā)名:charm_szName[32]轉(zhuǎn)發(fā)類型:WORDm_wTransmitType規(guī)約接口函數(shù)指針: LPPROTCALLm_lpProtocolCall數(shù)據(jù)庫指針:CRtdbDataBase*m_pDataBase設(shè)備模擬量數(shù)目:intm_nTotalAnalogue設(shè)備開關(guān)量數(shù)目:intm_nTotalDigital設(shè)備遙控點(diǎn)數(shù)目:intm_nTotalRelay設(shè)備脈沖點(diǎn)數(shù)目:intm_nTotalPulse模擬量鏈表:std::list<CRtdbAnalogue*>m_ListAnalogue開關(guān)量鏈表:std::list<CRtdbDigital*>m_ListDigital遙控點(diǎn)鏈表:std::list<CRtdbRelay*>m_ListRelay脈沖點(diǎn)鏈表:std::list<CRtdbPulse*>m_ListPulse主要方法說明獲取設(shè)備ID:intGetID()獲取設(shè)備名:constchar*GetName()根據(jù)模擬量號(hào)獲取模擬量指針:CRtdbAnalogue*GetRtdbAnalogue(intnNo)根據(jù)數(shù)字量號(hào)獲取數(shù)字量指針:CRtdbDigital*GetRtdbDigital(intnNo)根據(jù)遙控點(diǎn)號(hào)獲取遙控點(diǎn)指針:CRtdbRelay*GetRtdbRelay(intnNo)根據(jù)模擬量號(hào)獲取模擬量指針:CRtdbPulse*GetRtdbPulse(intnNo)根據(jù)模擬量索引號(hào)獲取模擬量指針:CRtdbAnalogue*FindRtdbAnalogue(intnIndex)根據(jù)數(shù)字量索引號(hào)獲取數(shù)字量指針:CRtdbDigital*FindRtdbDigital(intnIndex)根據(jù)遙控點(diǎn)號(hào)獲取遙控點(diǎn)指針:CRtdbRelay*FindRtdbRelay(intnIndex)根據(jù)脈沖點(diǎn)索引號(hào)獲取脈沖點(diǎn)指針:CRtdbPulse*FindRtdbPulse(intnIndex)4.2.3接口說明寫實(shí)時(shí)庫接口voidWriteRtdbData(UINTmsg,void*wParam,longlParam)寫時(shí)候庫的接口函數(shù),規(guī)約模塊調(diào)用該函數(shù)向?qū)崟r(shí)庫寫入數(shù)據(jù),包括遙測(cè)、遙信、SOE、遙測(cè)越限、遙信變位、遙控返校、保護(hù)事件、定值操作的返校等。4.2.4程序流程系統(tǒng)側(cè)協(xié)議轉(zhuǎn)發(fā)設(shè)備側(cè)協(xié)議流程系統(tǒng)側(cè)協(xié)議接收到上位機(jī)下發(fā)的控制命令后,調(diào)用內(nèi)核模塊的接口函數(shù)WriteRtdbData將任務(wù)下發(fā)到內(nèi)核模塊,然后內(nèi)核模塊根據(jù)命令消息的格式以及控制對(duì)象設(shè)備的設(shè)備號(hào),找到實(shí)時(shí)庫中該設(shè)備,調(diào)用作為該設(shè)備成員函數(shù)指針變量的設(shè)備側(cè)規(guī)約接口MessageCall將控制命令下發(fā)給設(shè)備所屬規(guī)約模塊,規(guī)約模塊將命令消息加入到消息隊(duì)列中,然后發(fā)送接收任務(wù)信號(hào)給設(shè)備所屬的端口處理線程通知他來取,并傳輸過程結(jié)束。設(shè)備側(cè)協(xié)議轉(zhuǎn)發(fā)系統(tǒng)側(cè)協(xié)議流程設(shè)備側(cè)協(xié)議接收到間隔層只能設(shè)備的事件報(bào)文后,解析成事件信息調(diào)用內(nèi)核接口函數(shù)WriteRtdbData將事件信息發(fā)送給內(nèi)核模塊,內(nèi)核模塊遍歷所有的轉(zhuǎn)發(fā)規(guī)約,將事件信息通過規(guī)約模塊的接口函數(shù)MessageCall發(fā)送給系統(tǒng)側(cè)規(guī)約后返回4.2.5質(zhì)量要求性能指標(biāo)支持?jǐn)?shù)據(jù)點(diǎn)數(shù)目<=65535。支持設(shè)備數(shù)目<=65535。功能測(cè)試要點(diǎn)采用黑盒測(cè)試,測(cè)試所有功能模塊。通過系統(tǒng)側(cè)規(guī)約模塊接入上位機(jī)監(jiān)控系統(tǒng),通過設(shè)備側(cè)規(guī)約模塊接入智能設(shè)備,通過保護(hù)測(cè)試源在智能設(shè)備上接入相關(guān)模擬量或狀態(tài)量,在上位機(jī)監(jiān)控系統(tǒng)驗(yàn)證數(shù)據(jù)處理的正確性。在裝置進(jìn)行遙信變位、保護(hù)事件等試驗(yàn),在上位機(jī)監(jiān)控系統(tǒng)查看事件信息。檢查規(guī)約模塊處理的正確性。由上位機(jī)模擬遠(yuǎn)方操作,檢查操作過程處理的正確性。4.3通訊接口模塊4.3.1功能描述通訊接口模塊實(shí)現(xiàn)對(duì)TCP、UDP、串口、CAN總線協(xié)議等通訊接口的封裝,將各種通訊接口模塊做成獨(dú)立的.SO動(dòng)態(tài)鏈接庫文件,供各個(gè)模塊的調(diào)用。通訊接口模塊與系統(tǒng)中其他功能模塊的關(guān)系如下圖所示:4.3.2類設(shè)計(jì)說明串口設(shè)置結(jié)構(gòu)typedefstruct_tagSERIALPARAM{intserial_mod; intbaud_rate; intparity; intdata_bits; intstop_bits; }SERIALPARAM;串口類類名classCSerial主要屬性說明端口名稱:charm_nSerialName[32]端口句柄:intm_handle端口設(shè)置:SERIALPARAMm_nSerialParam規(guī)約通訊回調(diào)指針:LPCOMMCALLm_lpCommCall規(guī)約幀處理回調(diào)指針:LPFRAMECALLm_lpFrameCall主要方法說明串口打開:intSerialOpen(constchar*deviceName,SERIALPARAMserial_info);關(guān)閉串口:intSerialClose();串口讀:intSerialRead(char*pBuffer,intnRead);串口寫:intSerialWrite(char*pBuffer,intnWrite);發(fā)送數(shù)據(jù):intSend(char*pBuffer,intnlen);接收數(shù)據(jù):intReceive(char*pBuffer,intnlen);通訊任務(wù):staticvoid*CommTask(void*arg);UDP設(shè)置結(jié)構(gòu)typedefstruct_tagUDPPARAM{ structsockaddr_insocket_addr; structsockaddr_inremote_socket_addr;}UDPPARAM;UDP通訊類類名classCUdp主要屬性說明端口名稱:charm_nEthName[32]端口設(shè)置:ETHPARAMm_nEthParam端口句柄:intm_handle規(guī)約通訊回調(diào)指針:LPCOMMCALLm_lpCommCall規(guī)約幀處理回調(diào)指針:LPFRAMECALLm_lpFrameCall主要方法說明串口打開:intUdpOpen(constchar*deviceName,ETHPARAMm_nEthParam);關(guān)閉串口:intUdpClose();串口讀:intUdpRead(char*pBuffer,intnRead);串口寫:intUdpWrite(char*pBuffer,intnWrite);發(fā)送數(shù)據(jù):intSend(char*pBuffer,intnlen);接收數(shù)據(jù):intReceive(char*pBuffer,intnlen);通訊任務(wù):staticvoid*CommTask(void*arg);4.3.3接口說明打開端口intOpenComm(constchar*pBuffer,LPCOMMCALLlpCommCall,UINTuIdleTime)打開通訊端口,參數(shù)pBuffer為端口名,參數(shù)lpCommCall為規(guī)約回調(diào)函數(shù),uIdleTime為中斷判斷時(shí)間單位毫秒,返回端口句柄。關(guān)閉端口voidCloseComm(inthandle)關(guān)閉通訊端口,參數(shù)handle為端口句柄。端口讀數(shù)據(jù)intCommRead(inthandle,char*pBuffer,intnLength)讀并取出數(shù)據(jù)。端口寫數(shù)據(jù)intCommWrite(inthandle,char*pBuffer,intnLength);端口假讀數(shù)據(jù)intCommPseudoRead(inthandle,charFAR*pBuffer,intnLength);只讀數(shù)據(jù),不取出數(shù)據(jù)。4.3.4程序流程數(shù)據(jù)讀取流程規(guī)約模塊通訊介質(zhì)層的交互采用通訊事件驅(qū)動(dòng)的方式。規(guī)約模塊發(fā)送數(shù)據(jù)可以直接調(diào)用通訊模塊的接口,將數(shù)據(jù)交給通訊模塊作發(fā)送處理,當(dāng)通訊模塊收到數(shù)據(jù)時(shí),則主動(dòng)通知規(guī)約模塊,然后規(guī)約模塊可以調(diào)用通訊模塊的接口,獲得接收到的數(shù)據(jù)。采用通訊事件驅(qū)動(dòng)的方式有效地減少了規(guī)約模塊對(duì)于通訊的管理,降低規(guī)約模塊的復(fù)雜程度。4.3.5質(zhì)量要求性能要求支持串口、以太網(wǎng)TCP、UDP、CAN等多種接口類型支持通訊接口的插拔并能恢復(fù)正常狀態(tài)。功能測(cè)試要點(diǎn)采用黑盒測(cè)試的方法即可。在通訊端口上接入上位機(jī)監(jiān)控系統(tǒng)或間隔層設(shè)備,檢查通訊數(shù)據(jù)正確性。插拔通訊物理接口,檢查通訊狀態(tài)。4.4初始化模塊4.4.1功能描述初始化模塊是實(shí)現(xiàn)定義了程序的初始化,實(shí)現(xiàn)工程配置文件的讀取和解析,根據(jù)配置文件加載所需的規(guī)約模塊,并初始化通道和設(shè)備。初始化模塊包含以下功能:配置文件的加載。工程配置文件由上位機(jī)遠(yuǎn)程配置軟件編譯生成,并通過FTP工具下載到通訊管理機(jī)終端設(shè)備中,在終端啟動(dòng)后,通訊管理機(jī)應(yīng)用軟件通過流文件方式將工程配置文件讀入內(nèi)存中。配置文件應(yīng)該包括工程配置和設(shè)備模板兩個(gè)部分。工程配置:包括各個(gè)通訊端口系統(tǒng),端口配置,端口協(xié)議,設(shè)備數(shù)量,設(shè)備類型等信息;設(shè)備模板指本通訊管理機(jī)中接入設(shè)備的信息,包括設(shè)備名稱、遙測(cè)、遙信、遙脈、遙控信息等。規(guī)約的加載。規(guī)約采用動(dòng)態(tài)加載的模式,主程序啟動(dòng)時(shí)在指定系統(tǒng)指定目錄(當(dāng)前目錄)加載規(guī)約模塊文件(.so動(dòng)態(tài)鏈接庫),并通過系統(tǒng)API調(diào)用規(guī)約模塊的導(dǎo)出接口函數(shù),作為內(nèi)核模塊和規(guī)約模塊的交互接口。各任務(wù)的初始化和關(guān)閉應(yīng)用軟件啟動(dòng)時(shí),初始化模塊通過規(guī)約模塊的接口發(fā)送初始化命令初始化設(shè)備配置啟動(dòng)規(guī)約模塊,系統(tǒng)推出時(shí)關(guān)閉并釋放各個(gè)設(shè)備規(guī)約。4.4.2配置文件說明protocol.dat通道配置文件,以流方式存儲(chǔ),包含全站系統(tǒng)側(cè)協(xié)議和設(shè)備側(cè)協(xié)議信息。device.dat設(shè)備配置文件,以流方式存儲(chǔ),包含全站設(shè)備信息。analogue.dat模擬量配置文件,以流方式存儲(chǔ),包含全站模擬量信息。digital.dat開關(guān)量配置文件,以流方式存儲(chǔ),包含全站開關(guān)量信息。relay.d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- DB4415T 51-2025生姜病蟲害防治技術(shù)規(guī)程
- 產(chǎn)權(quán)交易合同意向書
- 個(gè)人綜合授信貸款合同范文
- 個(gè)人房屋租賃合同樣本范本
- 個(gè)人房產(chǎn)轉(zhuǎn)讓合同樣本修訂版
- 中小學(xué)教師工資集體合同范本
- 業(yè)務(wù)員委托合同范本
- 個(gè)人小額信貸合同樣本
- 個(gè)人設(shè)備租賃標(biāo)準(zhǔn)合同
- 個(gè)人車輛保險(xiǎn)合同標(biāo)準(zhǔn)模板
- 中國心力衰竭診斷和治療指南2024解讀(完整版)
- 《鋼鐵是怎樣練成的》閱讀任務(wù)單及答案
- 新人教版高中數(shù)學(xué)必修第二冊(cè)第六章平面向量及其應(yīng)用教案 (一)
- 湖南省長(zhǎng)沙市一中2024-2025學(xué)年高一生物上學(xué)期期末考試試題含解析
- 碳纖維增強(qiáng)復(fù)合材料在海洋工程中的應(yīng)用情況
- 公司市場(chǎng)分析管理制度
- 焊接材料制造工-國家職業(yè)標(biāo)準(zhǔn)(2024版)
- 江西省2024年中考數(shù)學(xué)試卷(含答案)
- 2024年200MW-400MWh電化學(xué)儲(chǔ)能電站設(shè)計(jì)方案
- 余土外運(yùn)施工方案
- 中考英語1600詞匯對(duì)照表-(帶音標(biāo))
評(píng)論
0/150
提交評(píng)論