專利名稱:一種實(shí)現(xiàn)跨網(wǎng)段實(shí)時(shí)采集的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于電力和通信技術(shù)領(lǐng)域,尤其涉及一種實(shí)現(xiàn)跨網(wǎng)段實(shí)時(shí)采集電能量信息 的方法。
背景技術(shù):
隨著電力系統(tǒng)的改造,電力數(shù)據(jù)的采集將逐漸摒棄傳統(tǒng)的人工抄表模式而采用遠(yuǎn) 程終端控制抄表方式,并將抄表數(shù)據(jù)通過(guò)GPRS/CDMA、以太網(wǎng)、電話線路、串口通道、230M等 方式傳送到主站系統(tǒng)進(jìn)行分析和應(yīng)用,電力需求側(cè)管理系統(tǒng)運(yùn)營(yíng)而生。為了方便的在主站 側(cè)進(jìn)行實(shí)時(shí)監(jiān)測(cè)、控制用電情況,就必須確保主站側(cè)的控制命令、數(shù)據(jù)請(qǐng)求能正常的發(fā)送到 終端。但是由于各地供電局對(duì)其服務(wù)器的安全防護(hù)的需要,將服務(wù)器機(jī)房和員工工作環(huán)境 分別配置在不同的網(wǎng)段,這導(dǎo)致了很多情況下員工工作站同后臺(tái)前置機(jī)服務(wù)器之間不能直 接訪問(wèn),因此需要一種方法來(lái)實(shí)現(xiàn)采集信息跨網(wǎng)段進(jìn)行傳遞。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種實(shí)現(xiàn)跨網(wǎng)段實(shí)時(shí)采集電能量信息的方法,旨在解決電 力需求側(cè)管理系統(tǒng)中實(shí)時(shí)采集模塊和前置機(jī)之間的跨網(wǎng)段傳輸問(wèn)題。解決上述技術(shù)問(wèn)題的技術(shù)方案是一種實(shí)現(xiàn)跨網(wǎng)段實(shí)時(shí)采集電能量信息的方法, 包括以下步驟(1)以指定IP和端口的方式打開(kāi)TCP服務(wù)和UDP通訊服務(wù);(2啟動(dòng)實(shí)時(shí)采集模塊,向打開(kāi)的服務(wù)發(fā)起TCP連接;(3)實(shí)時(shí)采集模塊組織采集終端命令請(qǐng)求幀并通過(guò)已建立的TCP通道發(fā)送;(4)通訊轉(zhuǎn)發(fā)服務(wù)接收到實(shí)時(shí)采集模塊發(fā)送的采集終端請(qǐng)求,并將該請(qǐng)求幀和接 收該幀數(shù)據(jù)的Socket通道一起存入解析緩沖區(qū)中等待解析;(5)通訊轉(zhuǎn)發(fā)服務(wù)解析采集終端請(qǐng)求,獲取主站模塊編號(hào),并記錄下該主站模塊編 號(hào)和Socket通道之間的對(duì)應(yīng)關(guān)系;(6)通訊轉(zhuǎn)發(fā)服務(wù)解析請(qǐng)求報(bào)文中包含的目標(biāo)地址和端口,抽取出完整的主站通 訊協(xié)議幀數(shù)據(jù),并將主站協(xié)議幀通過(guò)UDP通道發(fā)送到前置機(jī);(7)前置機(jī)接收到終端應(yīng)答數(shù)據(jù)幀,并通過(guò)UDP通道發(fā)送到通訊轉(zhuǎn)發(fā)服務(wù);(8)通訊轉(zhuǎn)發(fā)服務(wù)接收到前置機(jī)轉(zhuǎn)發(fā)的終端應(yīng)答;(9)通訊轉(zhuǎn)發(fā)服務(wù)解析終端應(yīng)答得到目標(biāo)主站編號(hào),并獲取該主站編號(hào)對(duì)應(yīng)的 Socket 通道;(10)通訊轉(zhuǎn)發(fā)服務(wù)將數(shù)據(jù)幀通過(guò)Socket通道發(fā)送給相應(yīng)的實(shí)時(shí)采集模塊。作為具體化,IP地址和端口通過(guò)XML文件實(shí)現(xiàn)配置;TCP服務(wù)用來(lái)接收外網(wǎng)實(shí)時(shí)采 集模塊的信息,UDP服務(wù)和內(nèi)網(wǎng)前置機(jī)服務(wù)進(jìn)行通訊。作為具體化,實(shí)時(shí)采集模塊運(yùn)行在外網(wǎng),位于各工作人員的PC機(jī)上;實(shí)時(shí)采集模 塊啟動(dòng)順序?yàn)?br>
A、首先連接中間件,并通過(guò)EJB服務(wù)下載上述步驟(1)中配置的TCP服務(wù)IP地址 和端口,如果連接中間件失敗或下載服務(wù)地址失敗,則程序退出;B、向獲取的TCP服務(wù)IP地址和端口發(fā)起連接,如果連接成功則,表示實(shí)時(shí)采集模 塊啟動(dòng)成功,否則表示啟動(dòng)失敗,該程序退出。作為具體化,實(shí)時(shí)采集模塊組織采集終端命令請(qǐng)求幀包括以下步驟a、組織終端協(xié)議幀,按照《電力負(fù)荷管理系統(tǒng)數(shù)據(jù)傳輸規(guī)約》協(xié)議組織終端數(shù)據(jù)的 請(qǐng)求命令;b、組織主站協(xié)議幀,將步驟a中組織的終端協(xié)議幀作為數(shù)據(jù)區(qū),封裝到主站通訊 協(xié)議的數(shù)據(jù)區(qū)中;C、組織轉(zhuǎn)發(fā)協(xié)議幀,將步驟b中組織的主站協(xié)議幀作為數(shù)據(jù)區(qū),封裝到轉(zhuǎn)發(fā)通訊 協(xié)議的數(shù)據(jù)區(qū)中。作為具體化,獲取主站模塊編號(hào)的步驟為1)抽取請(qǐng)求幀的數(shù)據(jù)區(qū),因?yàn)橥ㄓ嵽D(zhuǎn)發(fā)服務(wù)收到的請(qǐng)求幀最外層是轉(zhuǎn)發(fā)協(xié)議格式,由上述步驟( 可知其數(shù)據(jù)區(qū)是完整的主站協(xié)議幀;2)獲取源主站模塊編號(hào),根據(jù)主站協(xié)議幀格式定義獲取其源主站地址和目標(biāo)主站 地址字段,其中源主站地址字段就是源主站編號(hào)。作為改進(jìn),通訊轉(zhuǎn)發(fā)服務(wù)每接收到一個(gè)請(qǐng)求,都會(huì)執(zhí)行上步驟1)和幻,每次都將 最新解析結(jié)果存儲(chǔ)到一個(gè)Map映射表中,如果該Map中已經(jīng)存在某個(gè)主站編號(hào)和某Socket 的對(duì)應(yīng)關(guān)系,則直接用新的Socket替換原來(lái)的Socket。作為具體化,前置機(jī)在接收到終端的應(yīng)答幀后的處理流程為i、根據(jù)《電力負(fù)荷管理系統(tǒng)數(shù)據(jù)傳輸規(guī)約》解析出終端地址和主站地址;ii、根據(jù)主站地址找到數(shù)據(jù)庫(kù)中配置的對(duì)應(yīng)工作站,如果工作站類型是定時(shí)采集 模塊,則將終端應(yīng)答組織成主站協(xié)議幀發(fā)送給對(duì)應(yīng)的定時(shí)采集模塊進(jìn)行處理,如果是實(shí)時(shí) 采集模塊則將終端應(yīng)答組織成主站協(xié)議幀發(fā)送給通訊轉(zhuǎn)發(fā)服務(wù),前置機(jī)以UDP方式向目標(biāo) 發(fā)送終端響應(yīng)數(shù)據(jù)。作為具體化,獲取Socket通道的步驟包括如下①、根據(jù)主站協(xié)議格式解析應(yīng)答幀,得到目標(biāo)主站地址,實(shí)際上就是請(qǐng)求幀中對(duì)應(yīng) 的源主站地址;②、從存儲(chǔ)主站地址與Socket對(duì)應(yīng)關(guān)系的Map中根據(jù)步驟①所得目標(biāo)主站地址檢 索出對(duì)應(yīng)的Socket通道。作為改進(jìn),所述主站通訊協(xié)議格式為起始字符(E8H) 1字節(jié)、源主站地址1字節(jié)、 目標(biāo)主站地址1字節(jié)、起始字符(E8H) 1字節(jié)、控制域(C) 1字節(jié)、長(zhǎng)度(L)2字節(jié)、幀序列域 (FIR, FIN, Pseq) 1字節(jié)、數(shù)據(jù)區(qū)(DATA)、結(jié)束字符(16H) 1字節(jié)。作為改進(jìn),通訊轉(zhuǎn)發(fā)服務(wù)的轉(zhuǎn)發(fā)協(xié)議格式為起始字符(0X38)1字節(jié)、轉(zhuǎn)發(fā)目標(biāo) IP地址4字節(jié)、轉(zhuǎn)發(fā)目標(biāo)端口 2字節(jié)、保留字節(jié)2字節(jié)、轉(zhuǎn)發(fā)數(shù)據(jù)長(zhǎng)度2字節(jié)、轉(zhuǎn)發(fā)數(shù)據(jù)內(nèi) 容、結(jié)束字符(0X16)1字節(jié)。本發(fā)明的有益效果是充分利用了《電力負(fù)荷管理系統(tǒng)數(shù)據(jù)傳輸規(guī)約》中每幀報(bào)文 均包含有效完整信息的特性,巧妙地使用每幀報(bào)文中包含的主站地址來(lái)區(qū)分該命令應(yīng)該轉(zhuǎn) 發(fā)給哪個(gè)實(shí)時(shí)采集模塊。本發(fā)明采用NIO技術(shù)實(shí)現(xiàn)底層數(shù)據(jù)的異步通訊,采用多線程技術(shù)協(xié)調(diào)各種任務(wù)并發(fā)有序進(jìn)行,能接受多個(gè)不同的實(shí)時(shí)采集模塊同時(shí)和終端進(jìn)行通訊轉(zhuǎn)發(fā), 有效的解決了電力需求側(cè)管理系統(tǒng)跨網(wǎng)段通訊的難題,降低了系統(tǒng)的建設(shè)成本。
圖1是本發(fā)明實(shí)施例提供的電能量信息采集系統(tǒng)結(jié)構(gòu)示意圖;圖2是本發(fā)明實(shí)施例提供的通訊轉(zhuǎn)發(fā)服務(wù)的跨網(wǎng)段工作流程示意圖;圖3是本發(fā)明實(shí)施例提供的電能量采集系統(tǒng)實(shí)時(shí)采集系統(tǒng)結(jié)構(gòu)示意圖;圖4是本發(fā)明實(shí)施例提供的通訊轉(zhuǎn)發(fā)服務(wù)協(xié)議結(jié)構(gòu)示意具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì) 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,如圖2所示,一種實(shí)現(xiàn)跨網(wǎng)段實(shí)時(shí)采集電能量信息 的方法,所述方法包括以下步驟(1)以指定IP和端口的方式打開(kāi)TCP/UDP服務(wù);IP地址和端口通過(guò)XML文件實(shí)現(xiàn) 配置,其中TCP服務(wù)所配置的IP地址和UDP服務(wù)所配置的IP地址相同或不同。所述的TCP 服務(wù)是用來(lái)接收外網(wǎng)實(shí)時(shí)采集模塊的信息,UDP服務(wù)和內(nèi)網(wǎng)前置機(jī)服務(wù)進(jìn)行通訊的,因此, TCP服務(wù)對(duì)應(yīng)的IP地址是通訊轉(zhuǎn)發(fā)服務(wù)所在機(jī)器的外網(wǎng)段IP,UDP服務(wù)是通訊轉(zhuǎn)發(fā)服務(wù)所 在機(jī)器的內(nèi)網(wǎng)段IP。如果通訊轉(zhuǎn)發(fā)服務(wù)安裝在單網(wǎng)卡的機(jī)器上,則上述兩個(gè)IP地址配置相 同,如果通訊轉(zhuǎn)發(fā)服務(wù)安裝在多網(wǎng)卡機(jī)器上,且其中一個(gè)網(wǎng)卡的IP地址和內(nèi)網(wǎng)處于相同網(wǎng) 段,另一個(gè)和外網(wǎng)處于相同網(wǎng)段,則TCP服務(wù)對(duì)應(yīng)的IP應(yīng)配置成外網(wǎng)段的IP,UDP服務(wù)應(yīng)配 置成內(nèi)網(wǎng)段的IP。(2)啟動(dòng)實(shí)時(shí)采集模塊,向打開(kāi)的服務(wù)發(fā)起TCP連接;實(shí)時(shí)采集模塊運(yùn)行在外網(wǎng), 位于各工作人員的PC機(jī)上。實(shí)時(shí)采集模塊啟動(dòng)順序?yàn)锳、連接中間件,并通過(guò)EJB服務(wù)下載步驟(1)中配置的TCP服務(wù)IP地址和端口, 如果連接中間件失敗或下載服務(wù)地址失敗,則程序退出;B、然后向獲取的TCP服務(wù)IP地址和端口發(fā)起連接,如果連接成功則,表示實(shí)時(shí)采 集模塊啟動(dòng)成功,否則表示啟動(dòng)失敗,該程序退出。所述的實(shí)時(shí)采集模塊負(fù)責(zé)終端和/或電能表實(shí)時(shí)數(shù)據(jù)的召測(cè)查看、各種終端參數(shù) 的設(shè)置、終端的負(fù)荷控制、電量控制等功能。該模塊為客戶端程序,安裝于各用戶的工作PC 上,可能和前置機(jī)等服務(wù)程序安裝在同一網(wǎng)段,也可能不在同一網(wǎng)段。所述的中間件服務(wù)負(fù)責(zé)屏蔽程序模塊對(duì)數(shù)據(jù)庫(kù)的操作,以及作為EJB或TOB服務(wù) 的容器,用于部署各種EJB服務(wù),本發(fā)明的通訊轉(zhuǎn)發(fā)服務(wù)將會(huì)以EJB的方式發(fā)布并部署到該 中間件容器中。(3)實(shí)時(shí)采集模塊組織采集終端命令請(qǐng)求幀并通過(guò)已建立的TCP通道發(fā)送;實(shí)時(shí) 采集模塊組織采集終端命令請(qǐng)求幀包括以下步驟a、組織終端協(xié)議幀,按照《電力負(fù)荷管理系統(tǒng)數(shù)據(jù)傳輸規(guī)約》協(xié)議組織終端數(shù)據(jù)的 請(qǐng)求命令;
b、組織主站協(xié)議幀,將步驟a中組織的終端協(xié)議幀作為數(shù)據(jù)區(qū),封裝到主站通訊 協(xié)議的數(shù)據(jù)區(qū)中;C、組織轉(zhuǎn)發(fā)協(xié)議幀,將步驟b中組織的主站協(xié)議幀作為數(shù)據(jù)區(qū),封裝到轉(zhuǎn)發(fā)通訊 協(xié)議的數(shù)據(jù)區(qū)中。(4)通訊轉(zhuǎn)發(fā)服務(wù)接收到實(shí)時(shí)采集模塊發(fā)送的采集終端請(qǐng)求,并將該請(qǐng)求幀和接 收該幀數(shù)據(jù)的Socket通道一起存入解析緩沖區(qū)中等待解析;(5)通訊轉(zhuǎn)發(fā)服務(wù)解析采集終端請(qǐng)求,獲取主站模塊編號(hào),并記錄下該主站模塊編 號(hào)和Socket通道之間的對(duì)應(yīng)關(guān)系;獲取主站模塊編號(hào)的步驟為1)、抽取請(qǐng)求幀的數(shù)據(jù)區(qū),因?yàn)橥ㄓ嵽D(zhuǎn)發(fā)服務(wù)收到的請(qǐng)求幀最外層是轉(zhuǎn)發(fā)協(xié)議格 式,由步驟( 可知其數(shù)據(jù)區(qū)是完整的主站協(xié)議幀;2)、獲取源主站模塊編號(hào),根據(jù)主站協(xié)議幀格式定義可獲取其源主站地址和目標(biāo) 主站地址字段,其中源主站地址字段就是源主站編號(hào)。通訊轉(zhuǎn)發(fā)服務(wù)每接收到一個(gè)請(qǐng)求,都會(huì)執(zhí)行上述步驟1)和2、,每次都會(huì)將最新解 析結(jié)果存儲(chǔ)到一個(gè)Map映射表中,如果該Map中已經(jīng)存在某個(gè)主站編號(hào)和某Socket的對(duì)應(yīng) 關(guān)系,則直接用新的Socket替換原來(lái)的Socket,但是并不關(guān)閉原來(lái)的Socket,因?yàn)楹芸赡?新的Socket和舊的Socket實(shí)際上是同一個(gè)通道。(6)通訊轉(zhuǎn)發(fā)服務(wù)解析請(qǐng)求報(bào)文中包含的目標(biāo)地址和端口,抽取出完整的主站通 訊協(xié)議幀數(shù)據(jù),并將主站協(xié)議幀通過(guò)UDP通道發(fā)送前置機(jī);根據(jù)轉(zhuǎn)發(fā)協(xié)議的格式,能輕易的 獲取目標(biāo)地址和端口,這個(gè)目標(biāo)地址實(shí)際上是該終端所對(duì)應(yīng)前置機(jī)的IP地址和端口,因此 通訊轉(zhuǎn)發(fā)服務(wù)能夠直接將其數(shù)據(jù)區(qū)的主站協(xié)議幀通過(guò)UDP發(fā)送到該目標(biāo)前置機(jī)。所述的前置機(jī)負(fù)責(zé)終端與主站其他模塊之間的數(shù)據(jù)轉(zhuǎn)發(fā),使用多路復(fù)用器異步監(jiān) 聽(tīng)維護(hù)各終端的連接,實(shí)現(xiàn)并發(fā)處理。(7)前置機(jī)接收到終端應(yīng)答數(shù)據(jù)幀,并通過(guò)UDP通道發(fā)送到通訊轉(zhuǎn)發(fā)服務(wù);前置機(jī) 負(fù)責(zé)管理所有終端的通道,因此所有終端的應(yīng)答都會(huì)首先到達(dá)前置機(jī),前置機(jī)在接收到終 端的應(yīng)答幀后的處理流程為i、首先根據(jù)《電力負(fù)荷管理系統(tǒng)數(shù)據(jù)傳輸規(guī)約》解析出終端地址和主站地址;ii、根據(jù)主站地址,即主站編號(hào),找到數(shù)據(jù)庫(kù)中配置的對(duì)應(yīng)工作站,如果工作站類 型是定時(shí)采集模塊,則將終端應(yīng)答組織成主站協(xié)議幀發(fā)送給對(duì)應(yīng)的定時(shí)采集模塊進(jìn)行處 理,如果是實(shí)時(shí)采集模塊則將終端應(yīng)答組織成主站協(xié)議幀發(fā)送給通訊轉(zhuǎn)發(fā)服務(wù),前置機(jī)以 UDP方式向目標(biāo)發(fā)送終端響應(yīng)數(shù)據(jù)。在將終端應(yīng)答組織成主站協(xié)議幀時(shí),步驟i中所述的主站地址實(shí)際上就是將要組 織的主站協(xié)議幀的目標(biāo)主站地址。(8)通訊轉(zhuǎn)發(fā)服務(wù)接收到前置機(jī)轉(zhuǎn)發(fā)的終端應(yīng)答,接收到應(yīng)答后放入應(yīng)答幀解析 緩沖區(qū)等待解析;(9)通訊轉(zhuǎn)發(fā)服務(wù)解析終端應(yīng)答得到目標(biāo)主站編號(hào),并獲取該主站編號(hào)對(duì)應(yīng)的 Socket通道;獲取Socket通道的步驟包括如下①、根據(jù)主站協(xié)議格式解析應(yīng)答幀,得到目標(biāo)主站地址,實(shí)際上就是請(qǐng)求幀中對(duì)應(yīng) 的源主站地址;②、從存儲(chǔ)主站地址與Socket對(duì)應(yīng)關(guān)系的Map中根據(jù)步驟①所得目標(biāo)主站地址檢索出對(duì)應(yīng)的Socket通道。(10)通訊轉(zhuǎn)發(fā)服務(wù)將所接收的數(shù)據(jù)幀通過(guò)Socket通道發(fā)送給相應(yīng)的實(shí)時(shí)采集模 塊;實(shí)時(shí)采集模塊接收到終端的響應(yīng)數(shù)據(jù)后就可以進(jìn)行后續(xù)的數(shù)據(jù)分析處理了。
在本發(fā)明中,所述主站通訊協(xié)議格式為起始字符(E8H) 1字節(jié)、源主站地址1字 節(jié)、目標(biāo)主站地址1字節(jié)、起始字符(E8H) 1字節(jié)、控制域(C) 1字節(jié)、長(zhǎng)度(L) 2字節(jié)、幀序列 域(FIR, FIN, Pseq) 1字節(jié)、數(shù)據(jù)區(qū)(DATA)、結(jié)束字符(16H) 1字節(jié)。通訊轉(zhuǎn)發(fā)服務(wù)的轉(zhuǎn)發(fā)協(xié)議格式為起始字符(0X38)1字節(jié)、轉(zhuǎn)發(fā)目標(biāo)IP地址4字 節(jié)、轉(zhuǎn)發(fā)目標(biāo)端口 2字節(jié)、保留字節(jié)2字節(jié)、轉(zhuǎn)發(fā)數(shù)據(jù)長(zhǎng)度2字節(jié)、轉(zhuǎn)發(fā)數(shù)據(jù)內(nèi)容、結(jié)束字符 (0X16)1 字節(jié)。如圖1所示,采集設(shè)備包括采集終端、集中器、采集器、網(wǎng)絡(luò)表、電能表,在電能量 信息采集系統(tǒng)中稱為采集對(duì)象。通信信道包括各網(wǎng)絡(luò)運(yùn)營(yíng)商提供的無(wú)線通道,如GPRS/CDMA,還有光釬專網(wǎng)、230M 無(wú)線信道、電話線通道、串口通道。主站包括前置機(jī)、定時(shí)采集模塊、實(shí)時(shí)采集模塊、中間件、web應(yīng)用模塊,其中本發(fā) 明的方法主要用于主站對(duì)終端系統(tǒng)時(shí)間的查詢。圖3是本發(fā)明實(shí)施例提供的電能量采集系統(tǒng)實(shí)時(shí)采集系統(tǒng)結(jié)構(gòu)示意圖;從圖中可 以看出,前置機(jī)有多個(gè),可以稱之為前置機(jī)服務(wù)群,該前置服務(wù)主要用來(lái)接受大量終端的連 接,避免主站的其他程序模塊直接同終端進(jìn)行通訊;同時(shí)也可以發(fā)現(xiàn)實(shí)時(shí)采集模塊也有多 個(gè),一般來(lái)講,有多少工作人員使用就可能有多少個(gè)實(shí)時(shí)采集模塊,也稱為用戶工作站;通 訊轉(zhuǎn)發(fā)服務(wù)部署于前置服務(wù)群和用戶工作站群兩個(gè)網(wǎng)段之間的節(jié)點(diǎn)服務(wù)器上,保證該節(jié)點(diǎn) 服務(wù)器能同時(shí)和兩個(gè)網(wǎng)段進(jìn)行網(wǎng)絡(luò)通訊;前置服務(wù)群和用戶工作站群之間通過(guò)唯一的通訊 轉(zhuǎn)發(fā)服務(wù)來(lái)進(jìn)行兩個(gè)不同網(wǎng)段之間的信息交互。圖4是本發(fā)明實(shí)施例提供的通訊轉(zhuǎn)發(fā)服務(wù)協(xié)議結(jié)構(gòu)示意圖,圖中從左到右依次為 轉(zhuǎn)發(fā)協(xié)議數(shù)據(jù)幀格式、主站通訊協(xié)議數(shù)據(jù)幀格式、終端通訊協(xié)議數(shù)據(jù)幀格式。本發(fā)明中終端 通訊協(xié)議采用的是國(guó)家標(biāo)準(zhǔn)《電力負(fù)荷管理系統(tǒng)數(shù)據(jù)傳輸規(guī)約》。綜上所述,本發(fā)明采用NIO技術(shù)實(shí)現(xiàn)底層數(shù)據(jù)的異步通訊,采用多線程技術(shù)協(xié)調(diào) 各種任務(wù)并發(fā)有序進(jìn)行,能同時(shí)接受多個(gè)不同的實(shí)時(shí)采集模塊和終端進(jìn)行通訊轉(zhuǎn)發(fā),有效 的解決了電能量信息采集系統(tǒng)跨網(wǎng)段通訊的難題,降低了系統(tǒng)的建設(shè)成本。借助通訊轉(zhuǎn)發(fā) 服務(wù),用戶可以通過(guò)工作站對(duì)終端進(jìn)行各種實(shí)時(shí)控制、采集、設(shè)置、召測(cè)等操作,進(jìn)而實(shí)現(xiàn)錯(cuò) 避峰用電,保證居民用電的平穩(wěn),并使電網(wǎng)系統(tǒng)更加安全、可靠。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種實(shí)現(xiàn)跨網(wǎng)段實(shí)時(shí)采集電能量信息的方法,其特征在于,所述方法包括以下步驟(1)以指定IP和端口的方式打開(kāi)TCP服務(wù)和UDP通訊服務(wù);(2啟動(dòng)實(shí)時(shí)采集模塊,向打開(kāi)的服務(wù)發(fā)起TCP連接;(3)實(shí)時(shí)采集模塊組織采集終端命令請(qǐng)求幀并通過(guò)已建立的TCP通道發(fā)送;(4)通訊轉(zhuǎn)發(fā)服務(wù)接收到實(shí)時(shí)采集模塊發(fā)送的采集終端請(qǐng)求,并將該請(qǐng)求幀和接收該 幀數(shù)據(jù)的Socket通道一起存入解析緩沖區(qū)中等待解析;(5)通訊轉(zhuǎn)發(fā)服務(wù)解析采集終端請(qǐng)求,獲取主站模塊編號(hào),并記錄下該主站模塊編號(hào)和 Socket通道之間的對(duì)應(yīng)關(guān)系;(6)通訊轉(zhuǎn)發(fā)服務(wù)解析請(qǐng)求報(bào)文中包含的目標(biāo)地址和端口,抽取出完整的主站通訊協(xié) 議幀數(shù)據(jù),并將主站協(xié)議幀通過(guò)UDP通道發(fā)送到前置機(jī);(7)前置機(jī)接收到終端應(yīng)答數(shù)據(jù)幀,并通過(guò)UDP通道發(fā)送到通訊轉(zhuǎn)發(fā)服務(wù);(8)通訊轉(zhuǎn)發(fā)服務(wù)接收到前置機(jī)轉(zhuǎn)發(fā)的終端應(yīng)答;(9)通訊轉(zhuǎn)發(fā)服務(wù)解析終端應(yīng)答得到目標(biāo)主站編號(hào),并獲取該主站編號(hào)對(duì)應(yīng)的Socket 通道;(10)通訊轉(zhuǎn)發(fā)服務(wù)將數(shù)據(jù)幀通過(guò)Socket通道發(fā)送給相應(yīng)的實(shí)時(shí)采集模塊。
2.根據(jù)權(quán)利要求1所述的一種實(shí)現(xiàn)跨網(wǎng)段實(shí)時(shí)采集電能量信息的方法,其特征在于 IP地址和端口通過(guò)XML文件實(shí)現(xiàn)配置;TCP服務(wù)用來(lái)接收外網(wǎng)實(shí)時(shí)采集模塊的信息,UDP服 務(wù)和內(nèi)網(wǎng)前置機(jī)服務(wù)進(jìn)行通訊。
3.根據(jù)權(quán)利要求1所述的一種實(shí)現(xiàn)跨網(wǎng)段實(shí)時(shí)采集電能量信息的方法,其特征在于 實(shí)時(shí)采集模塊運(yùn)行在外網(wǎng),位于各工作人員的PC機(jī)上;實(shí)時(shí)采集模塊啟動(dòng)順序?yàn)锳、首先連接中間件,并通過(guò)EJB服務(wù)下載上述步驟(1)中配置的TCP服務(wù)IP地址和端 口,如果連接中間件失敗或下載服務(wù)地址失敗,則程序退出;B、向獲取的TCP服務(wù)IP地址和端口發(fā)起連接,如果連接成功則,表示實(shí)時(shí)采集模塊啟 動(dòng)成功,否則表示啟動(dòng)失敗,該程序退出。
4.根據(jù)權(quán)利要求1所述的一種實(shí)現(xiàn)跨網(wǎng)段實(shí)時(shí)采集電能量信息的方法,其特征在于 實(shí)時(shí)采集模塊組織采集終端命令請(qǐng)求幀包括以下步驟a、組織終端協(xié)議幀,按照《電力負(fù)荷管理系統(tǒng)數(shù)據(jù)傳輸規(guī)約》協(xié)議組織終端數(shù)據(jù)的請(qǐng)求 命令;b、組織主站協(xié)議幀,將步驟a中組織的終端協(xié)議幀作為數(shù)據(jù)區(qū),封裝到主站通訊協(xié)議 的數(shù)據(jù)區(qū)中;c、組織轉(zhuǎn)發(fā)協(xié)議幀,將步驟b中組織的主站協(xié)議幀作為數(shù)據(jù)區(qū),封裝到轉(zhuǎn)發(fā)通訊協(xié)議 的數(shù)據(jù)區(qū)中。
5.根據(jù)權(quán)利要求1所述的一種實(shí)現(xiàn)跨網(wǎng)段采集電能量的方法,其特征在于獲取主站 模塊編號(hào)的步驟為1)抽取請(qǐng)求幀的數(shù)據(jù)區(qū),因?yàn)橥ㄓ嵽D(zhuǎn)發(fā)服務(wù)收到的請(qǐng)求幀最外層是轉(zhuǎn)發(fā)協(xié)議格式,由 上述步驟( 可知其數(shù)據(jù)區(qū)是完整的主站協(xié)議幀;2)獲取源主站模塊編號(hào),根據(jù)主站協(xié)議幀格式定義獲取其源主站地址和目標(biāo)主站地址 字段,其中源主站地址字段就是源主站編號(hào)。
6.根據(jù)權(quán)利要求5所述的一種實(shí)現(xiàn)跨網(wǎng)段實(shí)時(shí)采集電能量信息的方法,其特征在于 通訊轉(zhuǎn)發(fā)服務(wù)每接收到一個(gè)請(qǐng)求,都會(huì)執(zhí)行上步驟1)和幻,每次都將最新解析結(jié)果存儲(chǔ)到 一個(gè)Map映射表中,如果該Map中已經(jīng)存在某個(gè)主站編號(hào)和某Socket的對(duì)應(yīng)關(guān)系,則直接 用新的Socket替換原來(lái)的Socket。
7.根據(jù)權(quán)利要求1所述的一種實(shí)現(xiàn)跨網(wǎng)段實(shí)時(shí)采集電能量信息的方法,其特征在于 前置機(jī)在接收到終端的應(yīng)答幀后的處理流程為i、根據(jù)《電力負(fù)荷管理系統(tǒng)數(shù)據(jù)傳輸規(guī)約》解析出終端地址和主站地址;ii、根據(jù)主站地址找到數(shù)據(jù)庫(kù)中配置的對(duì)應(yīng)工作站,如果工作站類型是定時(shí)采集模塊, 則將終端應(yīng)答組織成主站協(xié)議幀發(fā)送給對(duì)應(yīng)的定時(shí)采集模塊進(jìn)行處理,如果是實(shí)時(shí)采集模 塊則將終端應(yīng)答組織成主站協(xié)議幀發(fā)送給通訊轉(zhuǎn)發(fā)服務(wù),前置機(jī)以UDP方式向目標(biāo)發(fā)送終 端響應(yīng)數(shù)據(jù)。
8.根據(jù)權(quán)利要求1所述的一種實(shí)現(xiàn)跨網(wǎng)實(shí)時(shí)采集電能量信息的方法,其特征在于獲 取Socket通道的步驟包括如下①、根據(jù)主站協(xié)議格式解析應(yīng)答幀,得到目標(biāo)主站地址,實(shí)際上就是請(qǐng)求幀中對(duì)應(yīng)的源 主站地址;②、從存儲(chǔ)主站地址與Socket對(duì)應(yīng)關(guān)系的Map中根據(jù)步驟①所得目標(biāo)主站地址檢索出 對(duì)應(yīng)的Socket通道。
9.根據(jù)權(quán)利要求1所述的一種實(shí)現(xiàn)跨網(wǎng)實(shí)時(shí)采集電能量信息的方法,其特征在于所 述主站通訊協(xié)議格式為起始字符(E8H) 1字節(jié)、源主站地址1字節(jié)、目標(biāo)主站地址1字節(jié)、 起始字符(E8H) 1字節(jié)、控制域(C) 1字節(jié)、長(zhǎng)度(L) 2字節(jié)、幀序列域(FIR, FIN, Pseq) 1字 節(jié)、數(shù)據(jù)區(qū)(DATA)、結(jié)束字符(16H) 1字節(jié)。
10.根據(jù)權(quán)利要求1所述的一種實(shí)現(xiàn)跨網(wǎng)段實(shí)時(shí)采集電能量信息的方法,其特征在于 通訊轉(zhuǎn)發(fā)服務(wù)的轉(zhuǎn)發(fā)協(xié)議格式為起始字符(0X38)1字節(jié)、轉(zhuǎn)發(fā)目標(biāo)IP地址4字節(jié)、轉(zhuǎn)發(fā) 目標(biāo)端口 2字節(jié)、保留字節(jié)2字節(jié)、轉(zhuǎn)發(fā)數(shù)據(jù)長(zhǎng)度2字節(jié)、轉(zhuǎn)發(fā)數(shù)據(jù)內(nèi)容、結(jié)束字符(0X 16) 1 字節(jié)。
全文摘要
一種實(shí)現(xiàn)跨網(wǎng)段實(shí)時(shí)采集電能量信息的方法,包括以下步驟(1)打開(kāi)TCP和UDP服務(wù)(2)啟動(dòng)實(shí)時(shí)采集模塊,(3)實(shí)時(shí)采集模塊組織采集終端命令請(qǐng)求幀;(4)通訊轉(zhuǎn)發(fā)服務(wù)接收到采集終端請(qǐng)求;(5)通訊轉(zhuǎn)發(fā)服務(wù)解析采集終端請(qǐng)求,獲取主站模塊編號(hào);(6)通訊轉(zhuǎn)發(fā)服務(wù)解析請(qǐng)求報(bào)文中包含的目標(biāo)地址和端口;(7)前置機(jī)接收到終端應(yīng)答數(shù)據(jù)幀,并通過(guò)UDP通道發(fā)送到通訊轉(zhuǎn)發(fā)服務(wù);(8)通訊轉(zhuǎn)發(fā)服務(wù)接收到終端應(yīng)答;(9)通訊轉(zhuǎn)發(fā)服務(wù)解析終端應(yīng)答得到目標(biāo)主站編號(hào);(10)通訊轉(zhuǎn)發(fā)服務(wù)將數(shù)據(jù)幀通過(guò)Socket通道發(fā)送給相應(yīng)的實(shí)時(shí)采集模塊。本發(fā)明有效的解決了電力需求側(cè)管理系統(tǒng)跨網(wǎng)段通訊的難題,降低了系統(tǒng)的建設(shè)成本。
文檔編號(hào)H04L29/08GK102055814SQ20101056529
公開(kāi)日2011年5月11日 申請(qǐng)日期2010年11月25日 優(yōu)先權(quán)日2010年11月25日
發(fā)明者沈祥 申請(qǐng)人:深圳市科陸電子科技股份有限公司