




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
PAGE通訊管理機產(chǎn)品研制項目詳細設(shè)計說明書
目錄1 引言 11.1編寫目的 11.2背景 11.3定義 11.4參考資料 22 系統(tǒng)設(shè)計總體說明 32.1系統(tǒng)結(jié)構(gòu) 32.2開發(fā)工具和軟件運行平臺 32.2.1運行環(huán)境 32.2.2開發(fā)機器和工具 43 功能模塊簡介 53.1規(guī)約模塊 53.2內(nèi)核模塊 53.3通訊接口模塊 53.4初始化模塊 54 功能模塊詳細說明 74.1規(guī)約模塊 74.1.1功能描述 74.1.2類設(shè)計說明 74.1.3接口函數(shù)說明 84.1.4程序流程 84.1.5質(zhì)量要求 104.2內(nèi)核模塊 114.2.1功能描述 114.2.2類設(shè)計說明 114.2.3接口說明 134.2.4程序流程 134.2.5質(zhì)量要求 144.3通訊接口模塊 154.3.1功能描述 154.3.2類設(shè)計說明 154.3.3接口說明 164.3.4程序流程 174.3.5質(zhì)量要求 184.4初始化模塊 184.4.1功能描述 184.4.2配置文件說明 184.4.4質(zhì)量要求 195 硬件平臺 205.1概述 205.2外觀與尺寸 205.3主要技術(shù)參數(shù) 216 代碼設(shè)計原則 226.1設(shè)計原則 226.2涉及范圍 226.3代碼方案 227 錯誤處理設(shè)計 237.1概述 237.2遠程調(diào)試信息 23附錄一:WXF配置軟件詳細設(shè)計說明書 24WXF產(chǎn)品研制項目詳細設(shè)計說明書PAGE23引言1.1編寫目的本文檔是根據(jù)WXF通訊管理機的開發(fā)需求進行詳細分析和討論后得出的詳細設(shè)計說明書,旨在明確WXF通訊管理機的功能實現(xiàn)。通過本詳細設(shè)計說明書,可以了解到WXF通訊管理機的總體設(shè)計、功能邊界、各個功能的模塊設(shè)計等。借助該文檔,可以規(guī)范和指導(dǎo)WXF通訊管理機的開發(fā)人員開始產(chǎn)品的研發(fā)工作。本文檔面向的讀者是:WXF通訊管理機的開發(fā)人員、測試人員、產(chǎn)品經(jīng)理,WXF通訊管理機詳細設(shè)計說明書的評審人員。1.2背景設(shè)備名稱:WXF通訊管理機。傳統(tǒng)的前置通訊管理機主要采用工控機加串口卡的模式,該種模式結(jié)構(gòu)簡單、擴展性強從而被普遍采用。但是隨著前置系統(tǒng)的日益發(fā)展,該種模式的弊端也日漸顯現(xiàn):由于前置系統(tǒng)經(jīng)常運行在環(huán)境惡劣的工業(yè)現(xiàn)場,工控機的風(fēng)扇、硬盤等機械部件將成為制約系統(tǒng)7×24長時間穩(wěn)定運行的瓶頸。工控機體積龐大只能組屏安裝,對于不具備組屏條件的現(xiàn)場將不能適用。由于工控機加MOXA卡的模式與普通的PC系統(tǒng)沒有差異,將會導(dǎo)致很多不必要的人為干預(yù)?,F(xiàn)場各種類型的項目對系統(tǒng)的組網(wǎng)方式提出了更高的要求,作為綜自系統(tǒng)中的通訊樞紐通訊管理機,需要更高的可靠性和靈活性?;谝陨蠋c,需要開發(fā)一種系統(tǒng)相對安全、更加穩(wěn)定可靠、安裝配置更加靈活的通訊轉(zhuǎn)換裝置充實現(xiàn)在的單一的前置通訊管理機的解決方案。1.3定義下表列出本報告中專門術(shù)語的定義、英文縮寫詞的原詞組和意義、項目組內(nèi)達成一致意見的專用詞匯,同時繼承全部的先前過程中定義過的詞匯。詞匯名稱詞匯含義備注1.4參考資料編號資料名稱說明2WXF產(chǎn)品研制項目需求規(guī)格說明書V1.002WXF產(chǎn)品研制項目概要設(shè)計說明書V1.00系統(tǒng)設(shè)計總體說明2.1系統(tǒng)結(jié)構(gòu)通訊管理機軟件通過設(shè)備側(cè)協(xié)議與間隔層智能設(shè)備進行通訊,采集間隔層智能設(shè)備的遙測、遙信、遙脈等數(shù)據(jù),讀取SOE、保護事件等事件信息,進行遙控、定值操作的遠方操作。通訊管理機軟件通過系統(tǒng)側(cè)協(xié)議與后臺監(jiān)控系統(tǒng)進行通訊,向后臺監(jiān)控系統(tǒng)轉(zhuǎn)發(fā)遙測、遙信、遙脈、SOE、保護事件等數(shù)據(jù)和事件信息,同時接收后臺的遙控、定值等操作命令并轉(zhuǎn)發(fā)給相應(yīng)的設(shè)備側(cè)協(xié)議。工程調(diào)試人員通過配置工具軟件根據(jù)工程現(xiàn)場的實際情況進行工程配置,并通過配置工具軟件進行系統(tǒng)文件和配置文件的下載和讀取,通過配置工具軟件進行遠程模擬操作,并通過報文監(jiān)視功能實現(xiàn)系統(tǒng)調(diào)試和故障診斷。2.2開發(fā)工具和軟件運行平臺2.2.1運行環(huán)境硬件運行環(huán)境類別要求備注CPU400MHz及以上內(nèi)存128MB及以上程序存儲器64MB及以上電源220VAC以太網(wǎng)口4個485口10個及以上CAN總線接口2個硬件狗有設(shè)備狀態(tài)指示LED燈軟件運行環(huán)境類別要求備注操作系統(tǒng)嵌入式Linux2.6內(nèi)核應(yīng)用軟件支持GDB、FTP、TELNET、NFS需要在系統(tǒng)裁剪時添加2.2.2開發(fā)機器和工具開發(fā)用機器類別要求備注CPU1.8GHz以上CPU內(nèi)存最少1024MB主機硬盤最少80GB網(wǎng)卡10/100Mb/s串口1個軟件環(huán)境類別要求備注操作系統(tǒng)WindowsXPLINUX系統(tǒng)Redhat9.0編譯器GCC、G++庫文件GLIBC應(yīng)用軟件VMWEAR虛擬機FTP工具功能模塊簡介3.1規(guī)約模塊規(guī)約模塊是通訊管理機開發(fā)的一個重要模塊。在通訊管理機開發(fā)完畢后,后續(xù)主要的工作量就是根據(jù)實際工程中現(xiàn)場設(shè)備采用的通訊規(guī)約的不同進行開發(fā)規(guī)約。由于國內(nèi)各個保護裝置廠家采用的通訊協(xié)議各異,有些廠家即使采用同樣的通訊規(guī)約標(biāo)準(zhǔn)如IEC103,也會在根據(jù)需要在某些方面有所異化,所以后續(xù)通訊規(guī)約的開發(fā)任務(wù)比較繁重,因此規(guī)約工作方式和管理模式的設(shè)計的好環(huán)直接影響到后續(xù)工作的開展。規(guī)約分為兩種類型:一種是對IED設(shè)備的規(guī)約,負(fù)責(zé)與設(shè)備通訊,采集設(shè)備數(shù)據(jù);另外一種是遠傳規(guī)約,負(fù)責(zé)將通訊管理機下接入的設(shè)備按照需要轉(zhuǎn)發(fā)給后臺或其他上位系統(tǒng)。3.2內(nèi)核模塊內(nèi)核模塊是通訊管理機中信息交互的樞紐,內(nèi)核模塊通過不同通道間消息轉(zhuǎn)發(fā),實現(xiàn)了數(shù)據(jù)傳送、協(xié)議轉(zhuǎn)換和接口轉(zhuǎn)換。內(nèi)核模塊封裝了系統(tǒng)實時庫,包括設(shè)備數(shù)據(jù)區(qū)、遙測數(shù)據(jù)區(qū)、遙信數(shù)據(jù)區(qū)、遙控數(shù)據(jù)區(qū)、遙脈數(shù)據(jù)區(qū)和轉(zhuǎn)發(fā)通道區(qū),同時封裝了對內(nèi)存實時庫的訪問接口??紤]到系統(tǒng)的模塊化設(shè)計,各個裝置協(xié)議將設(shè)計成.so的動態(tài)鏈接庫的內(nèi)核模塊將設(shè)計成獨立的.so動態(tài)鏈接庫,便于各個規(guī)約模塊與軟總線模塊直接調(diào)用,而不需要再走通訊的方式。3.3通訊接口模塊WXF通訊管理機應(yīng)設(shè)有10路或以上RS485口、4路及以上以太網(wǎng)口和2路CAN通訊口,涉及的通訊方式主要有串口、CAN網(wǎng)、以太網(wǎng)TCP和UDP這四種,本模塊主要實現(xiàn)對對這四種通訊方式的驅(qū)動支持,對這四種通訊方式做成以.SO的動態(tài)鏈接庫的形式做封裝,供主程序以及各個通訊規(guī)約調(diào)用。3.4初始化模塊初始化模塊是實現(xiàn)定義了程序的初始化,實現(xiàn)工程配置文件的讀取和解析,根據(jù)配置文件加載所需的規(guī)約模塊,并初始化通道和設(shè)備。初始化模塊包含以下功能:配置文件的加載。工程配置文件由上位機遠程配置軟件編譯生成,并通過FTP工具下載到通訊管理機終端設(shè)備中,在終端啟動后,通訊管理機應(yīng)用軟件通過流文件方式將工程配置文件讀入內(nèi)存中。配置文件應(yīng)該包括工程配置和設(shè)備模板兩個部分。工程配置:包括各個通訊端口系統(tǒng),端口配置,端口協(xié)議,設(shè)備數(shù)量,設(shè)備類型等信息;設(shè)備模板指本通訊管理機中接入設(shè)備的信息,包括設(shè)備名稱、遙測、遙信、遙脈、遙控、定制、壓板、事件信息等。規(guī)約的加載。規(guī)約采用動態(tài)加載的模式,主程序啟動時在指定系統(tǒng)指定目錄(當(dāng)前目錄)加載規(guī)約模塊文件(.so動態(tài)鏈接庫),并通過系統(tǒng)API調(diào)用規(guī)約模塊的導(dǎo)出接口函數(shù),作為內(nèi)核模塊和規(guī)約模塊的交互接口。各任務(wù)的初始化和關(guān)閉應(yīng)用軟件啟動時,初始化模塊通過規(guī)約模塊的接口發(fā)送初始化命令初始化設(shè)備配置啟動規(guī)約模塊,系統(tǒng)推出時關(guān)閉并釋放各個設(shè)備規(guī)約。功能模塊詳細說明4.1規(guī)約模塊4.1.1功能描述規(guī)約模塊與間隔層智能設(shè)備以及上位機監(jiān)控系統(tǒng)進行數(shù)據(jù)通信,主要實現(xiàn)通訊數(shù)據(jù)的解析和下發(fā)報文的組包,規(guī)約分為兩種類型:一種是對IED設(shè)備的規(guī)約,負(fù)責(zé)與設(shè)備通訊,采集設(shè)備數(shù)據(jù);另外一種是遠傳規(guī)約,負(fù)責(zé)將通訊管理機下接入的設(shè)備按照需要轉(zhuǎn)發(fā)給后臺或其他上位系統(tǒng)。規(guī)約模塊同時支持多個端口,每個端口支持多個設(shè)備,每個規(guī)約提供一個接口作為與內(nèi)核通訊的接口,內(nèi)核通過該接口向規(guī)約發(fā)送系統(tǒng)命令和操作指令。系統(tǒng)命令包括規(guī)約初始化、規(guī)約退出、端口初始化、設(shè)備初始化、獲取規(guī)約名稱等;操作指令包括遙控命令、定值操作、定值區(qū)操作、對時命令、遠方操作等。4.1.2類設(shè)計說明規(guī)約類類名classCProtocol主要屬性說明串口鏈表:std::list<CComPort*>m_ListComPort設(shè)備鏈表:std::list<CDevice*>m_ListDevice消息鏈表:std::list<CMessage*>m_ListMessage超時時間:UINTm_uTimeOut定時器時間:UINTm_uTimer重操作次數(shù):UINTm_uTimes通訊中斷后輪詢時間:UINTm_uWait主要方法說明消息處理:intMessageCall(UINTmsg,void*wParam,longlParam)通訊回調(diào):voidCommCall(UINTuMsg,HANDLEhandle,void*wParam,longlParam)斷幀處理:BOOLFrameCheckCall(BYTE*pData,int&nLength)初始化:intInitPrem()規(guī)約退出:voidExitPrem()由串口句柄得到串口對象指針:CComPort*GetComPort(HANDLEhandle)由串口端口號得到串口指針:CComPort*GetComPort(UINTuPort)由設(shè)備地址得到設(shè)備對象指針: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()輪詢設(shè)備:void*Protocol_Task(void*arg)將一個設(shè)備加入串口設(shè)備鏈表:voidAddDevice(CDevice*pDevice)打開當(dāng)前串口:BOOLOpen(constchar*szSetting)重設(shè)串口:BOOLResetComm()得到當(dāng)前串口的端口號:UINTGetPortNO();由設(shè)備地址得到設(shè)備對象:CDevice*GetDevice(BYTEbtAddr)得到串口當(dāng)前設(shè)備的下一臺設(shè)備:CDevice*GetNextDevice(CDevice*pCurDevice)設(shè)備類類名classCDevice描述設(shè)備地址(設(shè)備編號):BYTEm_btAddr設(shè)備編號:intm_nID設(shè)備名稱:charm_szName[32]串口指針:CComPort*m_pComPort主要方法說明發(fā)送處理:voidProcessSend()接收處理:voidProcessReceive(BYTE*pData,intnLength)通報設(shè)備通信恢復(fù):voidOnCommOK()通報設(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ù)時,由通訊接口模塊調(diào)用,觸發(fā)規(guī)約模塊的數(shù)據(jù)處理操作。斷幀處理BOOLFrameCheckCall(BYTE*pData,int&nLength)當(dāng)通訊接口接收到數(shù)據(jù)時調(diào)用,檢查接收緩沖區(qū)中數(shù)據(jù)是否符合幀要求。4.1.4程序流程控制命令處理流程內(nèi)核模塊的控制命令通過調(diào)用規(guī)約模塊的消息回調(diào)函數(shù)MessageCall發(fā)送給規(guī)約模塊。規(guī)約模塊收到消息后暫存在消息隊列中,然后向各個端口的處理任務(wù)發(fā)送信號,端口處理任務(wù)收到信號后主動到消息隊列中取出該消息進行處理。根據(jù)消息的類型組織成報文下發(fā)到間隔層終端設(shè)備,并對間隔層設(shè)備的返校數(shù)據(jù)進行處理,通過內(nèi)核的接口WriteRtdbData向內(nèi)核寫入數(shù)據(jù)。接收數(shù)據(jù)處理流程通訊介質(zhì)層對于接收的數(shù)據(jù)進行緩存管理,規(guī)約模塊可以借助通訊介質(zhì)層的管理進行接收數(shù)據(jù)的處理。規(guī)約模塊在處理通訊介質(zhì)層緩存的接收數(shù)據(jù)時,應(yīng)該先判斷數(shù)據(jù)的接收數(shù)據(jù)幀的格式,再移除數(shù)據(jù)進行處理。通訊介質(zhì)層應(yīng)該能提供了兩種讀取接收數(shù)據(jù)的方式,一種是只查看數(shù)據(jù)內(nèi)容,即獲得接收緩沖區(qū)數(shù)據(jù)的一份拷貝;另一種是獲取該數(shù)據(jù),即將接收緩沖區(qū)的數(shù)據(jù)移出接收緩沖區(qū)。兩種讀取數(shù)據(jù)方式的區(qū)別在于,是否在獲得數(shù)據(jù)的同時刪除接收緩沖區(qū)中的數(shù)據(jù)。例如,在處理設(shè)備報文時,規(guī)約模塊必須等待接收到完整的數(shù)據(jù)幀后進行解釋,因此當(dāng)通訊模塊通知規(guī)約模塊有數(shù)據(jù)到達時,規(guī)約模塊采用第一種方式讀出幀頭,計算出整幀數(shù)據(jù)的長度,與接收到的數(shù)據(jù)總長度比較,如果數(shù)據(jù)全部收到,則可以使用第二種方式將數(shù)據(jù)取出進行處理,緩沖區(qū)指針移向下一幀數(shù)據(jù)的起始位置;如果數(shù)據(jù)未全部收到,則規(guī)約模塊可以結(jié)束本次處理,等待下次通訊模塊的接收事件通知。數(shù)據(jù)處理流程圖如下:4.1.5質(zhì)量要求性能指標(biāo)每個規(guī)約支持端口數(shù)目<=32。每個端口支持設(shè)備數(shù)目<=64。設(shè)備支持?jǐn)?shù)據(jù)點數(shù)目<=65535。同一設(shè)備同時只支持一個遠方操作過程。遙測測量誤差<0.5%。遙控正確率達到100%。重要遙測量數(shù)據(jù)更新周期<3s、遙信變位響應(yīng)時間<2s。事件順序記錄(SOE)、站間分辨率≤20ms。功能測試要點采用黑盒測試的方法即可。通過系統(tǒng)側(cè)規(guī)約模塊接入上位機監(jiān)控系統(tǒng),通過設(shè)備側(cè)規(guī)約模塊接入智能設(shè)備,通過保護測試源在智能設(shè)備上接入相關(guān)模擬量或狀態(tài)量,在上位機監(jiān)控系統(tǒng)驗證數(shù)據(jù)處理的正確性。在裝置進行遙信變位、保護事件等試驗,在上位機監(jiān)控系統(tǒng)查看事件信息。檢查規(guī)約模塊處理的正確性。由上位機模擬遠方操作,檢查操作過程處理的正確性。4.2內(nèi)核模塊4.2.1功能描述內(nèi)核模塊主要封裝了實時庫,包括設(shè)備數(shù)據(jù)區(qū)、遙測數(shù)據(jù)區(qū)、遙信數(shù)據(jù)區(qū)、遙控數(shù)據(jù)區(qū)、遙脈數(shù)據(jù)區(qū)和轉(zhuǎn)發(fā)通道區(qū),同時封裝了對內(nèi)存實時庫的訪問接口。同時還進行遙信變位和遙測越限的處理。系統(tǒng)中采用統(tǒng)一的實時庫,對于多轉(zhuǎn)發(fā)的情況只考慮在轉(zhuǎn)發(fā)通道規(guī)約內(nèi)做額外的處理。在設(shè)備索引時采用二分查找算法,以提供設(shè)備遍歷的效率。4.2.2類設(shè)計說明實時庫類類名classCRtdbDataBase主要屬性說明設(shè)備數(shù)目:intm_nTotalDevice轉(zhuǎn)發(fā)數(shù)目:intm_nTotalTransmit設(shè)備存儲區(qū)指針:CRtdbDevice*m_pRtdbDevice轉(zhuǎn)發(fā)存儲區(qū)指針:CRtdbTransmit*m_pRtdbTransmit主要方法說明數(shù)據(jù)加載:BOOLLoadData()數(shù)據(jù)釋放:voidFreeData()獲取設(shè)備數(shù)目:intGetDeviceNum()獲取指定設(shè)備索引號:intGetDeviceIndex(CRtdbDevice*pDevice)根據(jù)設(shè)備號獲取設(shè)備指針:CRtdbDevice*GetRtdbDevice(intnNo)根據(jù)索引號獲取設(shè)備指針:CRtdbDevice*FindRtdbDevice(intnIndex)獲取轉(zhuǎn)發(fā)數(shù)目:intGetTransmitNum()獲取指定轉(zhuǎn)發(fā)索引號:intGetTransmitIndex(CRtdbTransmit*pTransmit)根據(jù)轉(zhuǎn)發(fā)通道號獲取轉(zhuǎn)發(fā)指針:CRtdbTransmit*GetRtdbTransmit(intnNo)根據(jù)索引號獲取轉(zhuǎn)發(fā)指針:CRtdbTransmit*FindRtdbTransmit(intnIndex)數(shù)據(jù)寫入:voidWriteRtdbData(UINTmsg,void*wParam,longlParam)實時庫設(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è)備遙控點數(shù)目:intm_nTotalRelay設(shè)備脈沖點數(shù)目:intm_nTotalPulse模擬量存儲區(qū)指針:CRtdbAnalogue*m_pRtdbAnalogue開關(guān)量存儲區(qū)指針:CRtdbDigital*m_pRtdbDigital遙控點存儲區(qū)指針:CRtdbRelay*m_pRtdbRelay脈沖點存儲區(qū)指針:CRtdbPulse*m_pRtdbPulse主要方法說明獲取設(shè)備ID:intGetID()獲取設(shè)備名:constchar*GetName()根據(jù)模擬量號獲取模擬量指針:CRtdbAnalogue*GetRtdbAnalogue(intnNo)根據(jù)數(shù)字量號獲取數(shù)字量指針:CRtdbDigital*GetRtdbDigital(intnNo)根據(jù)遙控點號獲取遙控點指針:CRtdbRelay*GetRtdbRelay(intnNo)根據(jù)模擬量號獲取模擬量指針:CRtdbPulse*GetRtdbPulse(intnNo)根據(jù)模擬量索引號獲取模擬量指針:CRtdbAnalogue*FindRtdbAnalogue(intnIndex)根據(jù)數(shù)字量索引號獲取數(shù)字量指針:CRtdbDigital*FindRtdbDigital(intnIndex)根據(jù)遙控點號獲取遙控點指針:CRtdbRelay*FindRtdbRelay(intnIndex)根據(jù)脈沖點索引號獲取脈沖點指針: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è)備遙控點數(shù)目:intm_nTotalRelay設(shè)備脈沖點數(shù)目:intm_nTotalPulse模擬量鏈表:std::list<CRtdbAnalogue*>m_ListAnalogue開關(guān)量鏈表:std::list<CRtdbDigital*>m_ListDigital遙控點鏈表:std::list<CRtdbRelay*>m_ListRelay脈沖點鏈表:std::list<CRtdbPulse*>m_ListPulse主要方法說明獲取設(shè)備ID:intGetID()獲取設(shè)備名:constchar*GetName()根據(jù)模擬量號獲取模擬量指針:CRtdbAnalogue*GetRtdbAnalogue(intnNo)根據(jù)數(shù)字量號獲取數(shù)字量指針:CRtdbDigital*GetRtdbDigital(intnNo)根據(jù)遙控點號獲取遙控點指針:CRtdbRelay*GetRtdbRelay(intnNo)根據(jù)模擬量號獲取模擬量指針:CRtdbPulse*GetRtdbPulse(intnNo)根據(jù)模擬量索引號獲取模擬量指針:CRtdbAnalogue*FindRtdbAnalogue(intnIndex)根據(jù)數(shù)字量索引號獲取數(shù)字量指針:CRtdbDigital*FindRtdbDigital(intnIndex)根據(jù)遙控點號獲取遙控點指針:CRtdbRelay*FindRtdbRelay(intnIndex)根據(jù)脈沖點索引號獲取脈沖點指針:CRtdbPulse*FindRtdbPulse(intnIndex)4.2.3接口說明寫實時庫接口voidWriteRtdbData(UINTmsg,void*wParam,longlParam)寫時候庫的接口函數(shù),規(guī)約模塊調(diào)用該函數(shù)向?qū)崟r庫寫入數(shù)據(jù),包括遙測、遙信、SOE、遙測越限、遙信變位、遙控返校、保護事件、定值操作的返校等。4.2.4程序流程系統(tǒng)側(cè)協(xié)議轉(zhuǎn)發(fā)設(shè)備側(cè)協(xié)議流程系統(tǒng)側(cè)協(xié)議接收到上位機下發(fā)的控制命令后,調(diào)用內(nèi)核模塊的接口函數(shù)WriteRtdbData將任務(wù)下發(fā)到內(nèi)核模塊,然后內(nèi)核模塊根據(jù)命令消息的格式以及控制對象設(shè)備的設(shè)備號,找到實時庫中該設(shè)備,調(diào)用作為該設(shè)備成員函數(shù)指針變量的設(shè)備側(cè)規(guī)約接口MessageCall將控制命令下發(fā)給設(shè)備所屬規(guī)約模塊,規(guī)約模塊將命令消息加入到消息隊列中,然后發(fā)送接收任務(wù)信號給設(shè)備所屬的端口處理線程通知他來取,并傳輸過程結(jié)束。設(shè)備側(cè)協(xié)議轉(zhuǎn)發(fā)系統(tǒng)側(cè)協(xié)議流程設(shè)備側(cè)協(xié)議接收到間隔層只能設(shè)備的事件報文后,解析成事件信息調(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ù)點數(shù)目<=65535。支持設(shè)備數(shù)目<=65535。功能測試要點采用黑盒測試,測試所有功能模塊。通過系統(tǒng)側(cè)規(guī)約模塊接入上位機監(jiān)控系統(tǒng),通過設(shè)備側(cè)規(guī)約模塊接入智能設(shè)備,通過保護測試源在智能設(shè)備上接入相關(guān)模擬量或狀態(tài)量,在上位機監(jiān)控系統(tǒng)驗證數(shù)據(jù)處理的正確性。在裝置進行遙信變位、保護事件等試驗,在上位機監(jiān)控系統(tǒng)查看事件信息。檢查規(guī)約模塊處理的正確性。由上位機模擬遠方操作,檢查操作過程處理的正確性。4.3通訊接口模塊4.3.1功能描述通訊接口模塊實現(xiàn)對TCP、UDP、串口、CAN總線協(xié)議等通訊接口的封裝,將各種通訊接口模塊做成獨立的.SO動態(tài)鏈接庫文件,供各個模塊的調(diào)用。通訊接口模塊與系統(tǒng)中其他功能模塊的關(guān)系如下圖所示:4.3.2類設(shè)計說明串口設(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為中斷判斷時間單位毫秒,返回端口句柄。關(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ū)動的方式。規(guī)約模塊發(fā)送數(shù)據(jù)可以直接調(diào)用通訊模塊的接口,將數(shù)據(jù)交給通訊模塊作發(fā)送處理,當(dāng)通訊模塊收到數(shù)據(jù)時,則主動通知規(guī)約模塊,然后規(guī)約模塊可以調(diào)用通訊模塊的接口,獲得接收到的數(shù)據(jù)。采用通訊事件驅(qū)動的方式有效地減少了規(guī)約模塊對于通訊的管理,降低規(guī)約模塊的復(fù)雜程度。4.3.5質(zhì)量要求性能要求支持串口、以太網(wǎng)TCP、UDP、CAN等多種接口類型支持通訊接口的插拔并能恢復(fù)正常狀態(tài)。功能測試要點采用黑盒測試的方法即可。在通訊端口上接入上位機監(jiān)控系統(tǒng)或間隔層設(shè)備,檢查通訊數(shù)據(jù)正確性。插拔通訊物理接口,檢查通訊狀態(tài)。4.4初始化模塊4.4.1功能描述初始化模塊是實現(xiàn)定義了程序的初始化,實現(xiàn)工程配置文件的讀取和解析,根據(jù)配置文件加載所需的規(guī)約模塊,并初始化通道和設(shè)備。初始化模塊包含以下功能:配置文件的加載。工程配置文件由上位機遠程配置軟件編譯生成,并通過FTP工具下載到通訊管理機終端設(shè)備中,在終端啟動后,通訊管理機應(yīng)用軟件通過流文件方式將工程配置文件讀入內(nèi)存中。配置文件應(yīng)該包括工程配置和設(shè)備模板兩個部分。工程配置:包括各個通訊端口系統(tǒng),端口配置,端口協(xié)議,設(shè)備數(shù)量,設(shè)備類型等信息;設(shè)備模板指本通訊管理機中接入設(shè)備的信息,包括設(shè)備名稱、遙測、遙信、遙脈、遙控信息等。規(guī)約的加載。規(guī)約采用動態(tài)加載的模式,主程序啟動時在指定系統(tǒng)指定目錄(當(dāng)前目錄)加載規(guī)約模塊文件(.so動態(tài)鏈接庫),并通過系統(tǒng)API調(diào)用規(guī)約模塊的導(dǎo)出接口函數(shù),作為內(nèi)核模塊和規(guī)約模塊的交互接口。各任務(wù)的初始化和關(guān)閉應(yīng)用軟件啟動時,初始化模塊通過規(guī)約模塊的接口發(fā)送初始化命令初始化設(shè)備配置啟動規(guī)約模塊,系統(tǒng)推出時關(guān)閉并釋放各個設(shè)備規(guī)約。4.4.2配置文件說明protocol.dat通道配置文件,以流方式存儲,包含全站系統(tǒng)側(cè)協(xié)議和設(shè)備側(cè)協(xié)議信息。device.dat設(shè)備配置文件,以流方式存儲,包含全站設(shè)備信息。analogue.dat模擬量配置文件,以流方式存儲,包含全站模擬量信息。digital.dat開關(guān)量配置文件,以流方式存儲,包含全站開關(guān)量信息。relay.d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業(yè)管理基礎(chǔ)知識培訓(xùn)課件
- 環(huán)境藝術(shù)設(shè)計創(chuàng)業(yè)創(chuàng)新
- 財務(wù)管理外包合同樣本
- 設(shè)備租賃合同樣本簡明版
- 電影金融知識分析
- 藥物過量護理個案分析
- 智能城市共建合作框架協(xié)議
- 舞臺行業(yè)基本情況介紹
- 市場拓展合同合作計劃
- 春節(jié)后回復(fù)生產(chǎn)安全教育
- 2025年國家電投集團珠海橫琴熱電有限公司招聘筆試參考題庫附帶答案詳解
- 河南鄭州航空港區(qū)國際教育集團招聘考試真題2024
- 中小學(xué)校長在教師大會上講話:以八項規(guī)定精神引領(lǐng)教育高質(zhì)量發(fā)展根深?重明?規(guī)立?法新?行遠
- 2025山東航空股份限公司社會招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2024年開封尉氏縣事業(yè)單位招聘工作人員筆試真題
- 全球化背景下的中國外交政策試題及答案
- 食品安全管理制度打印版
- 建筑公司管理制度大全
- GB/T 45251-2025互聯(lián)網(wǎng)金融個人網(wǎng)絡(luò)消費信貸貸后催收風(fēng)控指引
- 西交大政治考題及答案
- 鐵路施工安全教育培訓(xùn)
評論
0/150
提交評論