亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種iec61850高層協(xié)議報文發(fā)送的管理方法

文檔序號:7745371閱讀:211來源:國知局
專利名稱:一種iec61850高層協(xié)議報文發(fā)送的管理方法
技術領域
本發(fā)明涉及一種IEC61850高層協(xié)議報文發(fā)送的管理方法,屬 電力系統(tǒng)自動化領域。(二)、背景技術 IEC 61850是智能變電站的系統(tǒng)通信標準。通過將抽象通信 服務映射到具體的協(xié)議棧,IEC 61850解決了標準的穩(wěn)定性與未來網(wǎng)絡技術發(fā)展之間的矛 盾。目前IEC 61850的很多服務映射到MMS(制造報文規(guī)范),國內外絕大部分廠家都是基 于SISC0公司的MMSEASE-LITE軟件來實現(xiàn)IEC61850,在嵌入式裝置中選用主流的VxWorks 操作系統(tǒng),其實現(xiàn)方式為TCP/IP+RFC1006+傳輸層(服務等級0) +會話層+表示層+應用 層。智能變電站強烈依賴于高速、可靠的網(wǎng)絡通信,因此網(wǎng)絡報文發(fā)送管理方式對系統(tǒng)的運 行效率和可靠性起著非常重要的作用。現(xiàn)有技術主要有兩類方法(1)、為每一個網(wǎng)絡連接建立一個網(wǎng)絡守護任務,網(wǎng)絡守護任務使用阻塞方式調用 recvO,在套接字上懸掛等待接收數(shù)據(jù);在主任務中使用阻塞方式調用sendO來發(fā)送網(wǎng)絡 數(shù)據(jù)。這種方法比較簡單,但是效率低。一個網(wǎng)絡守護任務只能為一個連接接收數(shù)據(jù)。在 主任務中發(fā)送數(shù)據(jù)時,如果應用層報文較長、較多,主任務會阻塞在sendO中,影響了主任 務后續(xù)事件的實時處理。(2)、系統(tǒng)在初始時創(chuàng)建一個網(wǎng)絡守護任務,基于select ()調用負責處理所有網(wǎng) 絡連接的數(shù)據(jù)接收,在主任務中使用非阻塞方式調用sendO來發(fā)送網(wǎng)絡數(shù)據(jù)。每發(fā)送一個 應用數(shù)據(jù)報文,將其分割成幾個帶RFC1006報文頭的傳輸層報文,放入套接字的發(fā)送報文 鏈表中,然后從鏈表頭開始依次發(fā)送報文。未能完全發(fā)送出去的報文繼續(xù)保存在該套接字 的發(fā)送報文鏈表中,設置標志,由網(wǎng)絡守護任務擇機進行繼續(xù)發(fā)送。但網(wǎng)絡守護任務利用 select ()調用的超時或者其它網(wǎng)絡事件,在下次重新選擇需要監(jiān)視的文件描述字時才能判 斷此時該套接字是否能重新發(fā)送數(shù)據(jù)。如果在超時等待期間網(wǎng)絡連接能夠重新發(fā)送數(shù)據(jù), 則存在一個滯后發(fā)送的時間窗,影響了報文的實時發(fā)送。智能變電站是一個實時系統(tǒng),裝置生成的大量報文在網(wǎng)絡上傳輸,應盡可能提高 傳輸效率?,F(xiàn)有技術在用戶發(fā)送數(shù)據(jù)、將會話層報文分割成傳輸層報文、以及報文進入發(fā)送 鏈表時均存在報文復制,大大影響了傳輸效率。(三)、發(fā)明內容本發(fā)明所要解決的技術問題是,在VxWorks系統(tǒng)下,提供一種 IEC 61850高層協(xié)議報文發(fā)送的管理方法,當網(wǎng)絡資源擁擠報文不能完全發(fā)送出去時,采取 一種報文的緩存機制,監(jiān)視文件描述字,在可以發(fā)送報文時及時發(fā)送待發(fā)送的報文;采取一 種高效的報文緩沖區(qū)管理方式,提高傳輸效率。為了解決上述問題,本發(fā)明采用了以下技術方案。一種IEC 61850高層協(xié)議報文發(fā)送的管理方法,其特征是主任務初始時分配一 個空閑發(fā)送報文緩沖區(qū)鏈表,每個發(fā)送報文緩沖區(qū)的大小比系統(tǒng)配置的會話層協(xié)議數(shù)據(jù)單 元長度多7個字節(jié);每建立一個套接字,就創(chuàng)建一個相應的管道,管道消息結構包括的數(shù)據(jù) 成員有報文緩沖區(qū)起始指針、報文緩沖區(qū)長度、報文起始指針、報文實際長度、傳輸層報文 類型;發(fā)送報文時,從空閑發(fā)送報文緩沖區(qū)鏈表中分配一個發(fā)送報文緩沖區(qū),對于數(shù)據(jù)報文,利用這個緩沖區(qū)從后向前進行報文編碼,添加表示層協(xié)議控制信息和會話層協(xié)議控 制信息;對于連接管理報文,直接在這個緩沖區(qū)中生成一個傳輸層協(xié)議數(shù)據(jù)單元,然后加上 RFC1006報文頭;主任務將生成報文的控制信息,包括報文緩沖區(qū)起始指針、報文緩沖區(qū)長 度、報文起始指針、報文實際長度、傳輸層報文類型,通過管道機制傳遞給網(wǎng)絡守護任務進 行發(fā)送;網(wǎng)絡守護任務基于selecto調用,監(jiān)視一個讀文件描述字數(shù)組、一個寫文件 描述字數(shù)組和一個錯誤文件描述字數(shù)組;網(wǎng)絡守護任務為每一個套接字設置一個標志 socketFlag,用來表示是等待網(wǎng)絡套接字可寫,還是等待套接字對應的管道有要發(fā)送的報 文;網(wǎng)絡守護任務初始時,將套接字對應的管道文件描述字設置在讀文件描述字數(shù)組中; 當網(wǎng)絡守護任務等待的文件描述字就緒時,網(wǎng)絡守護任務獲得執(zhí)行時機,檢查存放系統(tǒng)返 回值的文件描述字數(shù)組,對于每個套接字上的報文發(fā)送(1)如果管道上有消息,則表明對應的套接字上有報文要發(fā)送,讀取管道消息,獲 取管道消息所指報文作為當前要發(fā)送的網(wǎng)絡報文進行發(fā)送;(2)如果網(wǎng)絡套接字可寫,先發(fā)送上次沒有發(fā)送出去的報文;如果上次沒有發(fā)送 出去的報文本次完全發(fā)送出去,并且管道中存在消息,再讀取管道中的消息,獲取管道消息 所指報文作為當前要發(fā)送的網(wǎng)絡報文進行發(fā)送;發(fā)送報文時,對于數(shù)據(jù)類型的報文,將其按照傳輸層用戶數(shù)據(jù)長度,添加3個字節(jié) 的協(xié)議控制信息和4個字節(jié)的RFC1006報文頭,利用socket接口進行分段發(fā)送;對于連接 管理報文,直接利用socket接口進行發(fā)送;如果當前需要發(fā)送的報文沒有完全發(fā)送出去,標記套接字的socketFlag為需要 等待網(wǎng)絡套接字可寫;如果當前需要發(fā)送的報文已經(jīng)完全發(fā)送出去,并且管道中沒有消息 了,標記套接字的socketFlag為需要等待套接字對應的管道有要發(fā)送的報文;根據(jù)每個套接字的socketFlag所作標記,如果需要等待套接字對應的管道有要 發(fā)送的報文,則將管道文件描述字設置在讀文件描述字數(shù)組中;如果需要等待網(wǎng)絡套接字 可寫,則將套接字設置在寫文件描述字數(shù)組中;按照新設置的文件描述字數(shù)組,網(wǎng)絡守護任 務進行下一輪文件描述字監(jiān)視與處理流程。對于數(shù)據(jù)類型的報文,將其按照傳輸層用戶數(shù)據(jù)長度TpktUserLen從低地址 開始分成若干段,只有當?shù)趎(n >= 1)段報文發(fā)送完后,才進行第n+1段的發(fā)送;指針 SessionPtr為會話層報文起始地址,第一段的RFC1006報文頭起始指針為SessionPtr-7, 第一段的傳輸層協(xié)議控制信息起始指針為SessionPtr-3,第一段的RFC1006報文 頭和傳輸層協(xié)議控制信息占用發(fā)送報文緩沖區(qū)中會話層協(xié)議數(shù)據(jù)單元沒有使用的 空間;當?shù)趎(n > = 1)段報文發(fā)送完后,第n+1段報文的RFC1006報文頭起始指針 為SessionPtr+r^TpktUserLen-7,第n+1段報文的傳輸層協(xié)議控制信息起始指針為 SessionPtr+n*TpktUserLen-3,第n+1段的RFC1006報文頭和傳輸層協(xié)議控制信息占用了 已發(fā)送的第n段報文的緩沖區(qū)空間。一個報文完全發(fā)送出去后,將報文所在的發(fā)送報文緩沖區(qū)放入空閑發(fā)送報文緩沖 區(qū)鏈表中。本發(fā)明的積極效果在于對于一個套接字上的報文發(fā)送,網(wǎng)絡守護任務要么監(jiān)視 套接字是否可寫,要么監(jiān)視套接字對應的管道是否有要發(fā)送報文的消息,當套接字可寫或者管道有要發(fā)送報文的消息時,操作系統(tǒng)喚醒網(wǎng)絡守護任務及時進行報文發(fā)送,消除了具 備發(fā)送條件而實際發(fā)送滯后的現(xiàn)象,提高了報文發(fā)送的實時性。對于數(shù)據(jù)類型的傳輸報文, 發(fā)送時動態(tài)添加RFC1006報文頭和傳輸層協(xié)議控制信息,避免了分段發(fā)送時的緩沖區(qū)復 制,提高了傳輸效率。

圖1是處理一個套接字上的報文發(fā)送流程示意圖。圖2是一個會話層協(xié)議數(shù)據(jù)單元被分割成多個傳輸段進行發(fā)送的示意圖。
具體實施方式
下面結合附圖和具體實施例進一步說明本發(fā)明。主任務主要包括以下幾個過程(1)主任務初始時分配一個空閑發(fā)送報文緩沖區(qū)鏈表,每個發(fā)送報文緩沖區(qū)的大 小比系統(tǒng)配置的會話層協(xié)議數(shù)據(jù)單元長度多7個字節(jié);(2)每建立一個套接字,就創(chuàng)建一個相應的管道,管道消息結構包括的數(shù)據(jù)成員有 報文緩沖區(qū)起始指針、報文緩沖區(qū)長度、報文起始指針、報文實際長度、傳輸層報文類型;(3)發(fā)送報文時,從空閑發(fā)送報文緩沖區(qū)鏈表中分配一個發(fā)送報文緩沖區(qū),對于數(shù) 據(jù)報文,利用這個緩沖區(qū)從后向前進行報文編碼,添加表示層協(xié)議控制信息和會話層協(xié)議 控制信息;對于連接管理報文,直接在這個緩沖區(qū)中生成一個傳輸層協(xié)議數(shù)據(jù)單元,然后加 上RFC1006報文頭;主任務將生成報文的控制信息,包括報文緩沖區(qū)起始指針、報文緩沖區(qū) 長度、報文起始指針、報文實際長度、傳輸層報文類型,通過管道機制傳遞給網(wǎng)絡守護任務 進行發(fā)送。網(wǎng)絡守護任務基于selectO系統(tǒng)調用,監(jiān)視一個讀文件描述字數(shù)組、一個寫文 件描述字數(shù)組和一個錯誤文件描述字數(shù)組;網(wǎng)絡守護任務為每一個套接字設置一個標志 socketFlag,用來表示是等待網(wǎng)絡套接字可寫,還是等待套接字對應的管道有要發(fā)送的報 文;任務初始時,將套接字對應的管道文件描述字設置在讀文件描述字數(shù)組中,并且不存在 上次沒有發(fā)送完的報文。當網(wǎng)絡守護任務等待的文件描述字就緒時,網(wǎng)絡守護任務獲得執(zhí)行時機,檢查存 放系統(tǒng)返回值的文件描述字數(shù)組,如果某個套接字可寫,或者套接字對應的管道上有消息, 則如圖1所示,執(zhí)行以下流程(1)判斷當前報文是否發(fā)送完;(2)如果當前報文沒有發(fā)送完,使用sendO,根據(jù)當前報文已經(jīng)發(fā)送到的位置,繼 續(xù)發(fā)送當前報文,然后轉到過程(5)執(zhí)行;(3)當前報文已發(fā)送完,將報文所在的發(fā)送報文緩沖區(qū)放入空閑發(fā)送報文緩沖區(qū) 鏈表中;使用不等待的select ()判斷套接字對應的管道是否有消息;(4)如果管道有消息,讀取管道消息,獲取管道消息所指報文作為當前要發(fā)送的網(wǎng) 絡報文,轉到過程(1)繼續(xù)執(zhí)行;否則標記套接字的socketFlag為需要等待套接字對應的 管道有要發(fā)送的報文,結束流程。(5)根據(jù)sendO的返回值,更新當前報文已經(jīng)發(fā)送到的位置。如果sendO的返回 值小于希望發(fā)送的字節(jié)個數(shù),標記套接字的socketFlag為需要等待網(wǎng)絡套接字可寫,結束 流程;如果sendO的返回值等于希望發(fā)送的字節(jié)個數(shù),轉到過程(1)繼續(xù)執(zhí)行。根據(jù)每個套接字的socketFlag所作標記,如果需要等待套接字對應的管道有要 發(fā)送的報文,則將管道文件描述字設置在讀文件描述字數(shù)組中;如果需要等待網(wǎng)絡套接字可寫,則將套接字設置在寫文件描述字數(shù)組中;按照新設置的文件描述字數(shù)組,網(wǎng)絡守護任 務進行下一輪文件描述字監(jiān)視與處理流程。以下是報文發(fā)送的具體實現(xiàn)發(fā)送報文時,對于數(shù)據(jù)類型的報文,將其按照傳輸層用戶數(shù)據(jù)長度,添加3個字節(jié) 的協(xié)議控制信息和4個字節(jié)的RFC1006報文頭,利用socket接口進行分段發(fā)送;對于連接 管理報文,直接利用socket接口進行發(fā)送;如圖2所示,對于數(shù)據(jù)類型的報文,將其按照傳輸層用戶數(shù)據(jù)長度TpktUserLen從 低地址開始分成若干段,只有當?shù)趎(n>= 1)段報文發(fā)送完后,才進行第n+1段的發(fā)送。指針SessionPtr為會話層報文起始地址,第一段的RFC1006報文頭起始指針 為SessionPtr-7,第一段的傳輸層協(xié)議控制信息起始指針為SessionPtr-3,第一段的 RFC1006報文頭和傳輸層協(xié)議控制信息占用發(fā)送報文緩沖區(qū)中會話層協(xié)議數(shù)據(jù)單元沒有使 用的空間;當?shù)趎(n > = 1)段報文發(fā)送完后,第n+1段報文的RFC1006報文頭起始指 針為SessionPtr+r^TpktUserLen-7,第n+1段報文的傳輸層協(xié)議控制信息起始指針為 SessionPtr+n*TpktUserLen-3,第n+1段的RFC 1006報文頭和傳輸層協(xié)議控制信息占用了 已發(fā)送的第n段報文的緩沖區(qū)空間。
權利要求
一種IEC 61850高層協(xié)議報文發(fā)送的管理方法,其特征是主任務初始時分配一個空閑發(fā)送報文緩沖區(qū)鏈表,每個發(fā)送報文緩沖區(qū)的大小比系統(tǒng)配置的會話層協(xié)議數(shù)據(jù)單元長度多7個字節(jié);每建立一個套接字,就創(chuàng)建一個相應的管道,管道消息結構包括的數(shù)據(jù)成員有報文緩沖區(qū)起始指針、報文緩沖區(qū)長度、報文起始指針、報文實際長度、傳輸層報文類型;發(fā)送報文時,從空閑發(fā)送報文緩沖區(qū)鏈表中分配一個發(fā)送報文緩沖區(qū),對于數(shù)據(jù)報文,利用這個緩沖區(qū)從后向前進行報文編碼,添加表示層協(xié)議控制信息和會話層協(xié)議控制信息;對于連接管理報文,直接在這個緩沖區(qū)中生成一個傳輸層協(xié)議數(shù)據(jù)單元,然后加上RFC 1006報文頭;主任務將生成報文的控制信息,包括報文緩沖區(qū)起始指針、報文緩沖區(qū)長度、報文起始指針、報文實際長度、傳輸層報文類型,通過管道機制傳遞給網(wǎng)絡守護任務進行發(fā)送;網(wǎng)絡守護任務基于select()系統(tǒng)調用,監(jiān)視一個讀文件描述字數(shù)組、一個寫文件描述字數(shù)組和一個錯誤文件描述字數(shù)組;網(wǎng)絡守護任務為每一個套接字設置一個標志socketFlag,用來表示是等待網(wǎng)絡套接字可寫,還是等待套接字對應的管道有要發(fā)送的報文;網(wǎng)絡守護任務初始時,將套接字對應的管道文件描述字設置在讀文件描述字數(shù)組中;當網(wǎng)絡守護任務等待的文件描述字就緒時,網(wǎng)絡守護任務獲得執(zhí)行時機,檢查存放系統(tǒng)返回值的文件描述字數(shù)組,對于每個套接字上的報文發(fā)送(1)如果管道上有消息,則表明對應的套接字上有報文要發(fā)送,讀取管道消息,獲取管道消息所指報文作為當前要發(fā)送的網(wǎng)絡報文進行發(fā)送;(2)如果網(wǎng)絡套接字可寫,先發(fā)送上次沒有發(fā)送出去的報文;如果上次沒有發(fā)送出去的報文本次完全發(fā)送出去,并且管道中存在消息,再讀取管道中的消息,獲取管道消息所指報文作為當前要發(fā)送的網(wǎng)絡報文進行發(fā)送;發(fā)送報文時,對于數(shù)據(jù)類型的報文,將其按照傳輸層用戶數(shù)據(jù)長度,添加3個字節(jié)的協(xié)議控制信息和4個字節(jié)的RFC1006報文頭,利用socket接口進行分段發(fā)送;對于連接管理報文,直接利用socket接口進行發(fā)送;如果當前需要發(fā)送的報文沒有完全發(fā)送出去,標記套接字的socketFlag為需要等待網(wǎng)絡套接字可寫;如果當前需要發(fā)送的報文已經(jīng)完全發(fā)送出去,并且管道中沒有消息了,標記套接字的socketFlag為需要等待套接字對應的管道有要發(fā)送的報文;根據(jù)每個套接字的socketFlag所作標記,如果需要等待套接字對應的管道有要發(fā)送的報文,則將管道文件描述字設置在讀文件描述字數(shù)組中;如果需要等待網(wǎng)絡套接字可寫,則將套接字設置在寫文件描述字數(shù)組中;按照新設置的文件描述字數(shù)組,網(wǎng)絡守護任務進行下一輪文件描述字監(jiān)視與處理流程。
2.如權利要求1所述的IEC61850高層協(xié)議報文發(fā)送的管理方法,其特征是對于數(shù) 據(jù)類型的報文,將其按照傳輸層用戶數(shù)據(jù)長度TpktUserLen從低地址開始分成若干段,只 有當?shù)趎(n>= 1)段報文發(fā)送完后,才進行第n+1段的發(fā)送;指針SessionPtr為會話層報 文起始地址,第一段的RFC 1006報文頭起始指針為SessionPtr-7,第一段的傳輸層協(xié)議控 制信息起始指針為SessionPtr-3,第一段的RFC1006報文頭和傳輸層協(xié)議控制信息占用發(fā) 送報文緩沖區(qū)中會話層協(xié)議數(shù)據(jù)單元沒有使用的空間;當?shù)趎(n>= 1)段報文發(fā)送完后, 第n+1段報文的RFC1006報文頭起始指針為SessionPtr+n*TpktUserLen-7,第n+1段報文的傳輸層協(xié)議控制信息起始指針為SessionPtr+n*TpktUserLen-3,第n+1段的RFC 1006報 文頭和傳輸層協(xié)議控制信息占用了已發(fā)送的第η段報文的緩沖區(qū)空間。
3.如權利要求1或2所述的一種IEC 61850高層協(xié)議報文發(fā)送的管理方法,其特征 是一個報文完全發(fā)送出去后,將報文所在的發(fā)送報文緩沖區(qū)放入空閑發(fā)送報文緩沖區(qū)鏈 表中。
全文摘要
本發(fā)明是一種IEC 61850高層協(xié)議報文發(fā)送的管理方法。發(fā)送報文時,從空閑發(fā)送報文緩沖區(qū)鏈表中分配一個發(fā)送報文緩沖區(qū),對于數(shù)據(jù)報文,利用這個緩沖區(qū)生成一個會話層協(xié)議數(shù)據(jù)單元,發(fā)送時動態(tài)添加RFC1006報文頭和傳輸層協(xié)議控制信息;對于連接管理報文,直接在這個緩沖區(qū)中生成一個傳輸層協(xié)議數(shù)據(jù)單元,然后加上RFC1006報文頭;主任務將生成報文的控制信息,通過管道機制傳遞給網(wǎng)絡守護任務進行發(fā)送。對于一個套接字上的報文發(fā)送,網(wǎng)絡守護任務要么監(jiān)視套接字是否可寫,要么監(jiān)視套接字對應的管道是否有要發(fā)送報文的消息。本方法提高了報文發(fā)送的實時性,并提高了傳輸效率。
文檔編號H04L12/56GK101827026SQ201010140460
公開日2010年9月8日 申請日期2010年4月1日 優(yōu)先權日2010年4月1日
發(fā)明者唐永建, 岳增輝, 鄭永志, 韓明峰 申請人:東方電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1