郜波,姜洪浪,王曉東,段曉萌,王爽,趙婷
(中國電力科學研究院計量研究所,北京 100192)
隨著電子信息技術發展,人工抄表逐步被以智能儀表、現代通信技術為基礎的各類遠程采集系統所取代。基于電子技術設計的電能表已成為快速發展的電能計量儀表,它比機械式電能表更易達到高精度等級,可賦予更多的功能。隨著國內各種新電力政策的逐步推行,電力部門開始推行分時、分費率等靈活電價政策,傳統的機械表在實現這些功能上較為困難,需要大量的后期工作,浪費大量人力物力,所以機械表如今已經不能滿足日新月異的電力能源計量和管理需求。
在國內用電市場需求以及電力政策和業務的指引下,結合新的數字技術,微電子技術和通信技術,電能表未來將朝著自動化、多功能化、模塊化等方向發展。目前,智能電能表因其高精度、多功能以及遠程通信等優點,在用電信息采集系統中得到廣泛應用。
自2009年國家電網公司電能表企業系列標準制定以來,智能電能表在通信方式上做了明確規定,即各類通信方式均需遵循DL/T 645-2007協議及其備案文件,而采集主站的通訊方式則遵循DL/T 698.41-2010協議。因此,用電信息采集系統在進行數據采集時,會進行大量的數據轉換操作,而制約了用電信息采集系統的工作效率[1-4]。因此,實現用電信息采集系統的通信協議的統一是提高其工作效率的關鍵因素。
另外,隨著用電需求的增加,各省電力公司對智能電能表的功能進行擴展,使得電能表中產生很多基于DL/T 645的衍生版本。因此,即使將目前用電信息采集系統的通信協議進行統一,而其并不具備互操作性,也會在智能電能表以及主站等功能需求不斷擴展的情況下再次變得不統一,同樣會影響用電采集系統的工作效率。
因此,實現通信協議統一的同時,該協議必須具備互操作性,才能徹底解決用電信息采集系統工作效率問題。
隨著計量設備功能的增強,協議設計和實現逐漸變得復雜。通常是使用模塊化的方法,把系統的功能分解成一些更容易操縱的模塊。一般來說,模塊化方法是將問題域分解成容易理解的小問題域,分解可以重復進行,直至達到滿意的易理解的級別。其結果是得到了一組功能模塊,每個模塊都比較容易設計、理解、實現和維護。面向對象的模塊化方法則更進一步,其中的功能模塊被稱為對象。他們是特定類的實例,并具有通用建模特性,如封裝性、抽象性、繼承性和復用性。封裝指的是對象中封裝一定的功能,這些功能只能通過他們事先定義的接口進行訪問,因此從原則上講對象實例增加不會帶來兼容性問題。抽象性強調一個對象能提出比實際所封裝功能更高級別的視圖。繼承性是設計者能從已經存在的類中直接定義新的實例或導出新的子類,且只需要詳細說明其間的差異[5-6]。
面向對象方法最初作為科學研究的一種方法,后來在軟件開發模式被提出和認知,如今其概念和應用已經超越了程序設計和軟件開發,擴展到數據系統、協議構建、人工智能等領域。
對象與類是面向對象的兩個最基本的概念。在模型構造中運用人類的自然思維方式,直接以事物為中心來思考問題、認識問題。傳統的面向過程方法在處理相似任務的過程中存在大量的重復性定義和操作,導致先前已經形成的成熟經驗與方法沒能在后續工作中充分地加以利用。類之于對象的抽象封裝即是為了解決復用等問題。一旦定義出類的屬性與方法,同一類下的所有對象實例將完整繼承類屬性與類方法,實現了同一類下對象操作的復用。
面向對象方法并不是軟件設計領域新創造的方法,而是人類認識世界過程中最普遍的方法。舉一個簡單的例子,可以將現實世界中的具體事物看做對象,比如:一輛轎車,一臺相機,一張桌子等。當認識了一定數量的具體對象時,我們會發現某些對象個體有一定的相似性,例如小轎車,卡車,火車,馬車等。人類的認識習慣會將這些相似的對象個體在大腦中不自覺地抽象出一個類的概念,比如上例中的各種對象可以抽象出一個車的類概念,總結出一些共用的屬性,如車輛的長寬高尺寸,動力類型,用途等。而實際上并沒有一個具體的事物可以代表所有的車類,“車”就是一個提升了的抽象概念,這就是類的抽象性。這種抽象的概念性總結形成了人類認識經驗,之后我們再次遇到一個新的車個體時,會不自覺的依據抽象類的經驗來認識這個新個體,也就是說我們可以輕松自然的判斷一個未見過的新事物是不是車類中的一個對象,從而更快地去認識它。這樣,車類的新增個體就不會是一個需要徹底重新理解的對象了。可以看出,面向對象確實是我們認識世界最普遍的模式。
目前發展中國家的電力行業的自主協議幾乎沒有采用面向對象的模型構架。事實上我們已經看到現行表計協議在各地繁雜的拓展版本,面對電能計量設備的迅猛發展,現行自主協議構架將很難持續適應未來電力營銷工作的新需求。
現行自主協議的出現標志著國內自主統一協議的從無到有,在用電信息采集事業發展初期的很長一段時間內很好的滿足了設備信息交流的需要,具有里程碑式的意義,其重要性不容置疑。但事物的進步更替是不變的規律,用電信息采集的發展需要更加先進更具互操作性的協議支持。
目前國際上應用較為廣泛的電能測量與負荷控制設備互操作性通信協議是IEC/TC13制定的一套國際標準體系IEC 62056。IEC 62056體系中的核心內容,包含設備語言報文規范(DLMS)和能量計量配套規范(COSEM)。DLMS/COSEM試圖以一個標準滿足市場中所有計量儀表與自動抄表AMR(Automatic Meter Reading)系統的應用要求,將兼容性、獨立性、擴展性作為其實現目標。此協議不僅適用于電能計量儀表的數據采集,而且是為電、熱、水、氣統一制定的規范,支持多種通信介質,IEC 62056協議體系的兼容性和互操作性是迄今為止最為科學最為完善的計量儀表通信標準。
IEC 62056是一套嚴謹的標準,但在發展中國家沒有超過30萬的單一系統應用。原因主要是在發展中國家表計數量多且增長迅速,使用環境處于不斷變化中,與IEC 62056當初制定時所面對的小規模環境有很大差別。
IEC 62056是基于主站與計量儀表直接通信模式制定的,在如國內分層抄表的架構下,主站并不與絕大多數儀表直接建立通信鏈路。面向對象模型的直接體現對象標識系統(IEC 62056-61)在最初的版本定義規則性很強,但因后續多次小范圍局部修訂和補充而變得邏輯復雜。組合型數據在IEC 62056中的定義并沒有充分地展現面向對象模型的特性,仍然被打補丁的采用平鋪窮舉式的定義,其中所包含的數據項不能靈活修改與讀取,如需增加業務必須擴充協議。
綜上所述,可以看出,未來電力計量設備新的通信協議需要具備以下的技術特性。首先要基于面向對象的模型構建,使協議從基因上可以具有較強的互理解性而作為互操作性的基礎。要增強易維護性,避免頻繁的協議修訂,要適應未來計量設備及業務發展盡可能多的可能性。其次是接口類本身的數量和覆蓋面要廣,這就要求所有定義要具有較高的抽象高度。再次是每個接口類的屬性與方法定義要全面,要具備發展的視角,考慮未來可能添加對象的屬性和方法定義需求。更重要的是記錄型數據的接口類的定義要具備適應一切已定義業務組合的能力,最大可能降低與具體數據組合模式的牽扯,從而業務的變化不再牽扯協議文本的修改。
下面本文將針對測量物理量、未知數據類型和量綱的面向對象建模舉例。
在電能計量中,具體業務包含種類繁多的計量物理量,一般協議的做法是為每一個量確定一個數據標識,這樣的機制簡單易實現,在用電信息采集業務開展的初期具有較大的優勢。但是隨著電力公司業務的拓展,業務量激增,所需要的物理量甚至超出數據標識所能表示的最大能力,導致協議和軟件都要做較大修訂。其實從這些物理量的計算方法看,其需要的基本參數非常少,主要包含電壓值,電流值,時間(時刻,時間段)等,其共有的屬性主要包含數值和單位。建模時把具有相似特征的物理量歸為一個接口類,再用此接口類來定義若干對象,這些對象繼承接口類的屬性、方法。比如定義電能量接口類如表1所示[7]。
表1 電能量接口類的定義
表1說明如下:
(1)邏輯名相當于對象標識,靜態(static)表示終端自身不能更改的屬性,例如:配置參數;
(2)總及費率電能量數組表示電能數值,動態(dyn.)表示載有過程的屬性,此屬性是由終端自己刷新的;
(3)換算—倍數因子的指數,基數為10;例如1表示10,-1表示0.1,如數值不是數字的,則換算應被置0;如果有特殊需求,供貨前買賣方可約定;
(4)單位—枚舉類型定義物理單位;例如傳33表示kWh;
(5)高精度總及各費率電能量數組僅要求高端表支持,這種表需要同時提供普通電能數據、高精度電能數據。
目前國網智能電能表中所有電能量數據都可以用這個類來定義對象獲取,此模型不僅可以覆蓋現有業務的需求,對于未來的新電能量需求,也可以用此類來定義對象實現。采用這種方法,把電能數據屬性和方法組合為一個整體來看待,這樣就能從更高的層次來進行系統建模,當有新電能量時,用此類來定義對象,該對象就繼承了此類的屬性、方法,通過類屬性中的電能數值、換算、單位就可描述出該對象。
為了適應未來未知數據類型定義了數據變量接口類,本接口類定義的對象提供存儲過程值或與過程值單元相關的狀態值信息,定義見表2。
表2 數據變量接口類定義
表2中instance-specific表示數據類型依據“邏輯名”決定的對象實例而定義,這樣如果未來有一新的數據對象,如果用其它接口類定義的不合適,可以用該接口類定義。例如協議中定義的如表3中的對象。
表3中接口類IC為6,正是數據變量接口類的類標識,表示這些對象由數據變量接口類定義,繼承該類的屬性、方法。而數據變量接口類的數據類型取決于其定義的對象實例,這樣電網頻率對象的數據類型就是表格中定義的“long-unsigned”,表內溫度就是“long”,當前電價就是“double-long-unsigned”。
表3 繼承變量接口類的對象
通過這種方法,未來再有其它數據對象,如果不適合用協議中的其它接口類描述,都可用數據變量接口類來描述,對于一些個別對象,如果其數據類型和其它對象數據類型不同,例如以上表格中的電網頻率、表內溫度、當前電價,也可用數據變量接口類來描述,從而避免協議中接口類過多,協議過于龐大[8-9]。
電能表做為法制計量器具,其基本功能就是計量,計量數據用于結算。為了實現結算,需要按照規定的時間間隔保存電能表內部的各類電量數據,例如每小時、每天、每月等,這就是電能表的凍結功能,凍結數據大都是與電費結算密切相關的數據,例如總電量、平時段電量、谷時段電量等。為滿足此項業務,面向對象協議定義了凍結數據接口類,提供配置、存儲凍結數據及其相關信息,定義見表4。
表格4部分說明如下:
(1)“凍結數據表”用于存儲凍結數據(記錄);
(2)“關聯對象屬性表”用于規定凍結記錄所要凍結的若干個對象屬性,這些對象屬性的數據將被復制到凍結數據類對象的凍結記錄中;
(3)“配置參數”用于配置凍結時間等參數。凍結類的數據存儲,從概念上可以理解為一組二維數據表格的集合。二維表格的數量和表格的字段都是可以配置的。二維表格的數量由凍結類對象的屬性3中配置的關聯對象屬性個數來確定;二維表格中的字段通過“關聯對象屬性表”中配置數據來確定,并且每個字段中的凍結周期值和存儲的記錄數可以不同。
“關聯對象屬性表”可以靈活配置,實現了協議的靈活性、擴展性,所有的電能量、遠動等數據都可配置進來,這樣如果未來業務發生改變,可以把需要凍結的數據配置到“關聯對象屬性表”中,定期在電能表內部存儲起來,從而實現新的業務。另外凍結數據在需要時可通過專用軟件對這些歷史電能量數據進行調用,以便于進一步提供計量分析和服務[10]。
表4 凍結數據接口類定義
除凍結外,協議還定義了事件對象接口類,定義見表5。
表5 事件對象接口類定義
表5中“事件記錄表”用于存儲事件記錄;“關聯對象屬性表”用于規定生成事件記錄時所要關聯的若干個對象屬性,這些對象屬性的數值將被復制到事件類對象的事件記錄中。此處的“關聯對象屬性表”也可以靈活配置,這樣就可以實現完善的事件記錄功能,通過配置“關聯對象屬性表”,既可以在事件記錄中實現常用的事件發生時間、電能量等數據的保存,也可以實現用戶特定數據的保存,從而滿足不同用戶的需求,以及未來用戶的千變萬化的業務需求,在現場用電診斷、現場用電分析、防竊電等方面提供強有力的數據。
智能電電能表是智能電網數據采集的重要基礎設備,承擔著原始電能數據采集、計量和傳輸的任務。面向對象協議不僅提供單一命令,還提供各種命令的組合。例如協議中讀數據命令GET-Request提供以下幾種方定義,見表6。
表6 GET-Request數據類型定義
表6中“GetRequestNormalList”提供一種方法,讓主站可以靈活組織若干讀取數據命令到一個命令中,只要是協議上支持讀取數據命令都可以組織進來,這樣原來一次只能讀一個數據,讀幾十個數據需要幾下次,現在可能只需要一次,極大提高抄讀效率,如果通信條件好,則一次讀取的數據可以更多。
除了讀數據命令外,協議上其它命令例如設置數據等也提供類似豐富的命令,提高了協議互操作性,未來通信條件更好的情況下,也不用升級協議,只需要重新組織命令就可以提高抄收成功率,為智能電網提供高效的數據傳輸。
基于國內使用環境制定新的設備語言時,應考慮更改協議的基本構架模式,采用面向對象的思路,定義儀表的信息模型—對象模型,用標準化方式對消息內容進行格式化。這樣,采集系統便能以相同的格式獲取儀表數據,而與制造商和能源類型無關。這種面向對象的解決方案對于電力營銷市場是必須的,它能更加靈活地處理當下繁雜的用戶需求,此外,在計量儀表中有很重要的凍結數據、事件記錄數據,而在面向對象協議中,為了適應不斷發展的業務需求,凍結和事件記錄保存哪些數據都可以通過配置來實現,也能適應一段時間內尚未明確的未來需求。