王建訓
(國網山東省電力公司淄博供電公司,山東淄博 255080)
以智能電網為代表的電力技術,在“能源因特網+新電力改革”的背景下,將云計算技術和信息技術相結合,改變了傳統的電力企業的生產經營模式[1]。隨著智能電網建設的不斷推進,電力信息采集系統中的大數據量越來越大[2]。面對海量電力數據,快速獲取有價值的信息是引導企業快速發展的關鍵因素,已成為當前研究的熱點[3]。
隨著收集系統支持服務的增加,多部門間信息共享模式的復雜度也越來越高,產生的重復數據也隨之增多[4]。傳統數據分析方法和手段在多領域能源大數據爆炸的背景下,已不能滿足快速增長的業務需求[5]。當前市場上的數據采集系統多為A/D 或D/A 采集卡,通道數一般在4~8 個左右,分辨率也在10 位以內。在ADC 采樣時,時間間隔通常相同,為了保證采集信號的準確性與真實性,采樣頻率必須達到一定的閾值。采樣頻率越高,理論效果越好。但隨著頻率的升高,會產生新的問題,為此,該研究基于PCI 總線技術提出了一種新的電力能源數據多通道同步采集方法。該方法采用PCI 專用控制器的數據傳輸方式,實現了數據移植,改變了傳統數據采集方式的局限性。
基于PCI總線的多通道同步采集結構如圖1所示。

圖1 基于PCI總線的多通道同步采集結構
圖1 中,通過計數電路將N 通道數字脈沖信號寫入FIFO1 或FIFO2,再由控制邏輯對采集芯片進行控制[6]。由于與PCI 連接接口的數據采樣比PCI 數據傳輸慢,因此采用了兩個FIFO 來提高PCI 的利用率。若FIFO1 和FIFO2 為空,則邏輯為FIFO1。當FIFO1滿時,邏輯是FIFO2[7]。與此同時,邏輯將把FIFO1 的數據讀取到FIFO1 內部。存儲器與FIFO 之間的數據直接通過多通道傳輸,也可將數據裝載到FIFO 中,并設置存儲內存達到最大時的時間,或者將存儲內存的時間縮短到一半[8]。當發送結束后,發送計數寄存器達到0,產生中斷,該程序被發送到中斷服務程序,并為下一次發送設置參數,直到任務完成后中斷[9-10]。
由于每個通道只有一個本地空值和一個PCI 空值,因此不同通道的地址空值必須映射到傳輸通道的地址空值,以便在數據傳輸過程中快速識別輸入信道[11]。圖2 展示了多通道地址空間映射關系。

圖2 本地空間與PCI空間的映射
由圖2 可知,在將本地地址插槽中的數據傳輸到PCI 地址插槽時,輸入通道地址插槽首先映射到本地訪問插槽。控制器把數據傳送到所訪問的PCI插槽,然后把來自PCI 插槽的數據傳送到每一個通道對應的內存插槽。根據多通道訪問,將輸入通道存儲查詢映射為本地訪問查詢[12]。在多通道控制器訪問局部空值時,由于對于4 個通道的訪問地址是相同的,因此,必須針對不同通道的局部空值制定對應的訪問策略,包括優先訪問、排隊訪問、循環訪問3種形式,圖3 展示了具體的循環訪問策略。

圖3 本地總線訪問策略
由圖3可知,訪問策略的狀態變化為:…→STATE0→STATE1 →STATE2 →STATE3 →STATE0…→;其中,STATEx表示本地空間x的運行狀態,狀態機在FLAGx通道中輸入FIFOx請求,此時FLAGx處于STATEx狀態,等待多通道控制器的訪問[13]。計算機啟動多個頻道時,產生了頻道選擇信號CSX,在多路傳輸結束時,信號CSX 無效,進入下一狀態。若未在下一狀態中檢測到請求信號,則該狀態進入下一狀態,直到檢測到FLAGx且狀態機保持為STATEx狀態,由此完成多通道訪問[14]。
為了實現多通道數據訪問,需使用FLAGX 通道接收和傳輸信號。一旦啟動該通道,數據將自動傳輸到FIFO 通道中[15]。該信號從本地中斷信號LINT#輸入并路由到PCI 總線,計算機在PCI 中接收并響應該中斷。中斷響應反饋流程如圖4 所示。
由圖4 可知,在數據傳輸結束后,讀取PCI 的寄存器狀態。若其狀態為“中斷”,則繼續檢測輸入信道狀態,確定可用于傳輸信息的信道。對于多通道傳輸過程,應采用PCI 多路請求傳輸的方式來實現[16]。當數據傳送結束后,計算機會應答中斷,并讀取輸入信道狀態寄存器。這一過程不需要多次啟動多路控制器,就可以將離散在局部或PCI 總線上的數據塊,通過多個信道傳輸到PCI 內存或本地存儲器中。

圖4 中斷響應反饋流程圖
使用蟻群算法更新電力能源數據可以確定數據密度,縮短數據聚合時間。假設將m只螞蟻放到n個數據庫中,根據螞蟻選擇的數據,在同一時間選擇一個數據或n個數據同時訪問后,更新螞蟻訪問這條路徑的所有數據屬性,確定信息素濃度。
在t時刻在數據i位置的螞蟻爬行到數據j的概率為:

式(1)中,ηij表示期望選擇數據的長度;α表示信息素濃度對螞蟻爬行路徑選擇造成影響程度;β表示期望選擇數據的重要程度;表示數據密度;allowedk表示螞蟻爬行到理想數據位置的允許程度。
經過一定時間后,所有螞蟻都走完了路徑,至此完成了一次循環,各個路徑上的數據密度可調整為:

式(2)中,Δρij表示螞蟻選擇理想數據時留下的信息素濃度。
蟻群密度模型和蟻群數量模型并沒有在所有螞蟻都完成N次存取之后進行更新,而是在所有螞蟻路徑都完成存取之后,由螞蟻密度模型引用的局部信息更新為全局信息。在沒有可供選擇的路徑時,信息素的總體濃度將明顯下降,并剔除不良路徑,由此完成數據更新。
采用雙緩沖模式,每次能向計算機內緩沖大量數據。在緩沖區的結尾處寫上數據,然后回到開頭將舊的數據去掉。在邏輯上,緩沖區分為兩等長,其工作過程如圖5 所示。

圖5 雙緩沖模式的連續數據采集
由圖5 可知,數據采集設備首先向緩沖區的前部寫入數據,當向緩沖區的后部寫入數據時,數據采集設備將其前部拷貝到傳輸緩沖區,以便進行存儲或其他處理。如果一個設備向緩沖區的后部寫入數據,又返回緩沖區的前部繼續寫入數據并覆蓋了舊數據,則傳遞該緩沖區的后一半數據。這一過程可以無限重復,以便收集無限長的連續數據。
為了驗證基于PCI 總線的電力能源數據多通道同步采集方法的合理性,進行實驗驗證分析。
在靜態性能測試過程中,以200 ksps采樣速率進行采樣,分別采用A/D采集卡、D/A采集卡和基于PCI總線采集方法分析數據采集精度,對比結果如表1所示。
分析表1 可知,使用A/D 采集卡和D/A 采集卡的采樣結果與信號值相差最大值分別為9.79 V、5.00 V;使用基于PCI 總線采集方法采集后,與信號值相差最大為0.10 V。由此可知,在靜態性能測試情況下,基于PCI 總線采集方法采集精度較高。

表1 靜態測試數據
在動態性能測試過程中,以20 ksps、50 ksps、100 ksps 為采樣速率進行采樣,動態測試數據如表2所示。
由表2 可知,使用A/D 采集卡采樣值在實驗次數為3 次時,與信號值相差最大為0.51 V;使用D/A 采集卡采樣值在實驗次數為3 次時,與信號值相差最大為0.35 V;使用基于PCI 總線采集方法在實驗次數為6 次時,與信號值相差達到最大,為0.02 V。由此可知,在動態性能測試情況下,基于PCI 總線采集方法采集精度更高。

表2 動態測試數據
該研究使用基于PCI 總線的電力能源數據多通道同步采集方法改善了A/D 采集卡、D/A 采集卡存在的采集精度低的問題,并通過實驗驗證了該方法的有效性。這種采集方法不僅適用于多路數據采集,也可用于其他的開發應用,例如圖像傳輸過程,該過程可通過PCI 總線將大量壓縮或者未壓縮圖像以數據形式傳送到計算機中,并通過顯示屏顯示傳送結果。此外,該系統的數據傳輸形式并不局限于主機環境,也可應用于嵌入式系統之中,以此來實現數據多路傳輸。