• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    電力采集終端RS485通道搜表機(jī)制研究

    2022-06-15 00:23:08黃煒迪
    機(jī)電信息 2022年11期

    摘 要:在當(dāng)前的電力采集系統(tǒng)中,搜表功能能夠很大程度上為數(shù)據(jù)采集、測量計(jì)費(fèi)等工作帶來便利,減少電表采集計(jì)費(fèi)人員的工作量。但相比于載波搜表,RS485通道的電能表一直存在搜表速度慢的缺點(diǎn),且如今對(duì)于這類問題并沒有特別好的解決方案。鑒于此,分析了當(dāng)前主流搜表方法的機(jī)制,介紹了一種在當(dāng)前協(xié)議下提高搜表效率的算法,對(duì)于提高RS485通道的電能表搜表效率有一定的積極作用。

    關(guān)鍵詞:電力采集終端;RS485;搜表

    中圖分類號(hào):TM764? 文獻(xiàn)標(biāo)志碼:A? 文章編號(hào):1671-0797(2022)11-0059-03

    DOI:10.19514/j.cnki.cn32-1628/tm.2022.11.016

    0? ? 引言

    如今,智能電能表已逐步取代老式電能表,智能電能表通過DL/T 645或DL/T 698協(xié)議將數(shù)據(jù)傳輸?shù)讲杉K端,再由采集終端通過上行協(xié)議傳輸?shù)接貌芍髡尽O啾扔谝郧暗氖謩?dòng)抄表,整個(gè)流程節(jié)省了大量的人力,極大地提高了數(shù)據(jù)采集效率。而搜表功能,則是通過下發(fā)廣播報(bào)文,根據(jù)臺(tái)區(qū)下電能表的響應(yīng),來統(tǒng)計(jì)臺(tái)區(qū)電能表數(shù)量,并記錄表地址,從而進(jìn)行檔案下發(fā)以及數(shù)據(jù)統(tǒng)計(jì)等工作。因此,提高搜表效率,有利于減少數(shù)據(jù)采集的整體時(shí)間,提高數(shù)據(jù)采集效率。

    1? ? RS485搜表原理

    在采集終端下發(fā)采集數(shù)據(jù)的報(bào)文中,根據(jù)DL/T 645或DL/T 698協(xié)議,可通過將地址域的一個(gè)或多個(gè)字節(jié)替換成0xAA的方法,來達(dá)到當(dāng)前字節(jié)為任意的效果,從而可以實(shí)現(xiàn)廣播一條報(bào)文給所有符合條件電能表的功能。如果返回報(bào)文可解析,就得到了一塊表的地址;如果不可解析,就說明滿足當(dāng)前地址條件的表數(shù)量不止一塊,多條報(bào)文通過同一個(gè)通道返回糅雜在了一起,那么可以減少0xAA字節(jié)的數(shù)量,細(xì)化地址繼續(xù)搜表,直到報(bào)文可解析為止[1]。

    1.1? ? 現(xiàn)有搜表方法

    1.1.1? &nbsp; 不擴(kuò)展抄表協(xié)議

    在不擴(kuò)展抄表協(xié)議的情況下,一般是先下發(fā)一條全0xAA地址的廣播報(bào)文,確認(rèn)一下當(dāng)前RS485通道以及當(dāng)前波特率下是否存在電能表。如果返回不止一條報(bào)文,無法進(jìn)行解析,則替換最低位字節(jié)地址逐個(gè)搜尋;如果返回報(bào)文可解析,則記錄。就這樣逐輪次遞歸,逐個(gè)替換高一字節(jié)地址,直到搜齊為止。

    1.1.2? ? 擴(kuò)展抄表協(xié)議

    杭州海興電力科技股份有限公司于2021年提出了一種注冊搜表的模式[2]:采集終端發(fā)送包含標(biāo)記指令的搜表報(bào)文,電能表接收到后通過判斷自身的注冊狀態(tài)來決定是否返回。這樣就有效減少了重復(fù)表地址的返回,減少了搜表輪次。

    1.2? ? 目前存在的問題

    目前來看,普通的RS485搜表方法存在搜表周期長、輪次多、搜表慢的問題,如果遇到低位字節(jié)相同的特殊情況,搜表周期就會(huì)達(dá)到一個(gè)離譜的長度,且其中大部分時(shí)間都浪費(fèi)于無意義的枚舉,存在大量時(shí)間冗余。而注冊搜表無疑在速度上提高了很多,但需要電能表回復(fù)特殊的搜表報(bào)文,以及判斷自身是否是注冊狀態(tài),這對(duì)普通的電能表協(xié)議進(jìn)行了一部分?jǐn)U展,在實(shí)際應(yīng)用中不適合目前已穩(wěn)定運(yùn)行的臺(tái)區(qū)環(huán)境。

    2? ? 問題分析

    針對(duì)1.1中提到的兩種方法,本文提出了一種基于當(dāng)前搜表協(xié)議的RS485通道的搜表算法,通過計(jì)算不同遍歷層級(jí)的地址總數(shù),以及分析優(yōu)化遍歷的字節(jié)路線,來達(dá)到在不擴(kuò)展協(xié)議的前提下,有效減少搜表中存在的時(shí)間冗余,提高搜表效率的效果,且該算法在不規(guī)則表地址的場景下有著良好的調(diào)節(jié)能力。

    3? ? 優(yōu)化措施

    在搜表返回報(bào)文的處理上,一般遇到無法解析的報(bào)文,只能判斷為多塊表同時(shí)返回,從而繼續(xù)下一輪替換地址,但一個(gè)字節(jié)的地址替換就要遍歷0x00到0x99共100種情況,如果提前搜出了目標(biāo)表,但無法判斷表的數(shù)量,則必須將所有情況遍歷一遍,這無疑導(dǎo)致了極大的時(shí)間冗余。

    因此,可以通過一定的方法來判斷返回表的具體數(shù)量。這里以645表舉例,如果將正向有功作為搜表報(bào)文,發(fā)送一條[68 AA AA AA AA AA AA 68 11 04 33 32 34 33 xx 16]的報(bào)文,返回報(bào)文的長度為36字節(jié),算上前置4個(gè)0xFE就是40字節(jié),可以通過RS485通道上返回的報(bào)文長度,計(jì)算標(biāo)志性字節(jié),如0xFE、0x68的數(shù)量來確定當(dāng)前地址下的表數(shù)量。如果當(dāng)前地址下有返回,那么可以再下發(fā)一遍同樣的報(bào)文來確保計(jì)算的準(zhǔn)確度。在搜到表了之后,可以對(duì)比當(dāng)前地址下的總數(shù)量,如果已經(jīng)滿足,那么就可以舍棄后續(xù)的循環(huán)遍歷,提高搜表效率。

    除此之外,當(dāng)收到一條完整可解析報(bào)文的時(shí)候,可以針對(duì)解析出來的表地址,將部分字節(jié)替換成0xAA下發(fā),并且記錄統(tǒng)計(jì)返回報(bào)文中分析出來的表數(shù)量,加快枚舉進(jìn)度。比如說,下發(fā)[AA AA AA AA AA AA]地址的一條報(bào)文,分析返回報(bào)文得出有3塊表。如果3塊表的表地址分別為[xx xx xx aa aa aa][xx xx xx aa bb cc][xx xx xx cc bb cc],那么當(dāng)表1首先被搜出來之后,可以替換部分字節(jié)的地址下發(fā)報(bào)文,得出對(duì)應(yīng)的報(bào)文數(shù)量進(jìn)行分析,從而計(jì)算優(yōu)化遍歷順序。比如上述報(bào)文中得出表1地址,可以將全AA地址中每一字節(jié)分別替換為表1中對(duì)應(yīng)字節(jié)來下發(fā)報(bào)文,得到返回報(bào)文的表數(shù)量分別為:[3 3 3 2 1 1],由此可以分析得出,當(dāng)前3塊表高位前3字節(jié)相同,且另外存在一塊表低位第3字節(jié)與表1相同。那么當(dāng)繼續(xù)遍歷到[AA AA AA AA AA cc]時(shí)發(fā)現(xiàn)存在兩塊表,從上述信息中就可以得出剩余兩塊表低位第3字節(jié)不同,就可以在下一個(gè)遍歷層級(jí)中直接遍歷低位第3字節(jié),減少了低位第2字節(jié)重復(fù)的輪次。當(dāng)然在實(shí)際場景下,同一批次的電能表一般只有后幾個(gè)字節(jié)存在區(qū)別,但是如果遇到不規(guī)則表地址的場景,本文的方法可以有效提高調(diào)節(jié)容錯(cuò)能力。

    具體操作流程如下:

    設(shè)當(dāng)前臺(tái)區(qū)下存有N塊645電能表,通道為RS485,波特率2 400。

    (1)發(fā)送報(bào)文[68 AA AA AA AA AA AA 68 11 04 33 32 34 33 xx 16],根據(jù)返回的報(bào)文計(jì)算得出條數(shù)N,重復(fù)發(fā)送計(jì)算以保證準(zhǔn)確性。

    (2)替換最低位地址,從00~99逐個(gè)自增,直到接收到返回報(bào)文。

    (3)計(jì)算返回報(bào)文中完整條數(shù)K,如果K=1,則解析報(bào)文,得到當(dāng)前表地址,存入地址列表中,并且判斷當(dāng)前所得的地址條數(shù)是否達(dá)到了上一級(jí)計(jì)算出的地址總數(shù)K1;如果達(dá)到了,則比較上上級(jí),直到達(dá)到總數(shù)N搜表結(jié)束或者未達(dá)到某一級(jí)的總數(shù)K為止。

    (4)如果達(dá)到了某一級(jí)未達(dá)到總數(shù)K,則將剛解析出來的地址中部分字節(jié)替換成0xAA,發(fā)送并統(tǒng)計(jì)返回的報(bào)文條數(shù),根據(jù)當(dāng)前總數(shù)K和各個(gè)字節(jié)返回的報(bào)文條數(shù)M,可以分析得出最適合下一輪遍歷的字節(jié)位置。且當(dāng)前輪次總數(shù)滿足不繼續(xù)遍歷,回到上一級(jí)。

    (5)在步驟(3)中,如果當(dāng)前報(bào)文條數(shù)K>1,則可以通過替換之前輪次步驟(4)中計(jì)算得出的字節(jié),進(jìn)行下一級(jí)的遍歷循環(huán),重復(fù)步驟(2)到(5);如果之前不存在步驟(4),則從低到高字節(jié)順替。下一級(jí)遍歷需要搜尋的地址總數(shù)為K。

    (6)當(dāng)滿足搜表總數(shù)N,則在步驟(3)中退出搜表。

    整體流程如圖1所示。

    4? ? 驗(yàn)證結(jié)果

    在實(shí)際驗(yàn)證過程中,通過算法得到的電能表總數(shù)可以很好地幫助節(jié)省不同層級(jí)搜表所需要的時(shí)間,這在提高整體效率上做出了巨大貢獻(xiàn)。但是,這種提升在一定程度上取決于被搜表的表地址,所有表的表地址中有差異的最高地址位的字節(jié)值越接近下限0x00,則提高效率的效果越好。但是當(dāng)有差異的最高地址位增加時(shí),由于不同輪次減少的時(shí)間是相互乘加的,這樣總體節(jié)約的輪次就顯得很可觀。整體期望值如表1所示。

    但在實(shí)際驗(yàn)證中發(fā)現(xiàn),優(yōu)化下級(jí)遍歷路線的方法效率提升并不明顯。在現(xiàn)場臺(tái)區(qū)環(huán)境下,臺(tái)區(qū)下的電能表基本都是同一批次下的,因此表地址差異并不會(huì)太大,基本都是最低2字節(jié)上存在差異,且表地址分布較為密集,路線的選擇并不能帶來較大的優(yōu)化。但驗(yàn)證過程中也測試了極端的低位相同、高位不同的表號(hào),路線優(yōu)化選擇方法在這種情況下確實(shí)能顯著地提高搜表效率。

    除此之外,本文的方法尚有許多不足之處。比如在兩只表處于同一遍歷輪次中時(shí),搜出第一只表并不能加快搜第二只表的速度。在這方面,文中提到的注冊模式就能極大地提高效率,那么在當(dāng)前表計(jì)協(xié)議的范疇內(nèi),是否有方法能夠達(dá)到相似的效果,還有待研究。本文通過解析特殊字符來判斷完整報(bào)文數(shù)量,那么是否可以通過算法剔除已搜到的電能表報(bào)文,得出其余報(bào)文的表地址或表地址區(qū)間,還可以進(jìn)行深入研究。

    5? ? 結(jié)語

    本文介紹了目前電力系統(tǒng)中常用的RS485搜表機(jī)制,講解了基礎(chǔ)的搜表原理及流程,并對(duì)目前主流搜表方法進(jìn)行了分析,結(jié)合它們的優(yōu)點(diǎn)提出了一種基于當(dāng)前表記協(xié)議的高效率搜表方法,通過報(bào)文分析及數(shù)據(jù)處理,優(yōu)化搜表的遍歷路線,減少搜完后的冗余時(shí)間,進(jìn)一步提高搜表的效率。

    [參考文獻(xiàn)]

    [1] 呂錦柏.遠(yuǎn)程自動(dòng)抄表系統(tǒng)中集中器的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2009.

    [2] 杭州海興電力科技股份有限公司,南京海興電網(wǎng)技術(shù)有限公司,寧波恒力達(dá)科技有限公司.基于RS485串口的搜表方法與系統(tǒng):CN202011374020.7[P].2021-02-09.

    收稿日期:2022-03-14

    作者簡介:黃煒迪(1999—),男,浙江寧波人,工程師,研究方向:電力采集。

    和政县| 西乌| 宁夏| 泾源县| 蒙自县| 梨树县| 芒康县| 许昌县| 乌拉特前旗| 德州市| 长丰县| 平遥县| 麻江县| 环江| 上栗县| 兴业县| 化德县| 沙田区| 广南县| 宁波市| 凌云县| 定日县| 屯门区| 香河县| 临泽县| 宁化县| 巴彦县| 普兰县| 云霄县| 永春县| 太湖县| 青海省| 观塘区| 怀柔区| 旌德县| 万年县| 仙居县| 乳山市| 离岛区| 娱乐| 峡江县|