?
?
1 引言
在信息科學中,數據采集技術已經成為其重要的一個研究問題,它已經與計算機技術、網絡技術、傳感器技術、信號處理技術共同構成了現代檢測技術的基礎,隨著科學技術的發展和數據采集系統的廣泛應用,人們對數據采集的主要技術指標,如采樣速率、分辨率、精度、輸入電壓范圍、控制方式以及抗干擾能力等方面,都提出了越來越高的要求,尤其是采樣速率,更是數據采集系統設計者和使用者最關心的一項重要指標。在電力系統自動化領域,實時數據采集是至關重要的環節,它直接影響整個自動化裝置的性能。因此,提高采集速度和精度一直是電力系統軟件開發人員要解決的難題。
2 系統結構
本文介紹的phcteeq-1型電力諧波綜合治理實驗裝置的實時數據采集系統結構示意如圖1所示。
?
圖1 采集系統結構示意圖
裝置采用電力諧波有源濾波和無源濾波的先進理論和技術,以igbt-ipm智能模塊、dsp、工控機等核心部件為硬件基礎,進行電力諧波綜合治理技術實驗,實時性好,實驗效果明顯。裝置采用公共基礎臺+功能掛件的設計方式,結構緊湊,集成度高,擴展性好,能夠完成單相/三相電力諧波的產生、在線檢測、分析、有源濾波和無源濾波等多項實驗。
2.1 數據采集卡
在該裝置中,模擬信號的采集主要通過數據采集卡,在這個裝置中采用的pci8360a數據采集卡:它具有32個模擬量輸入通道:ad0-ad31;輸入信號范圍:0~10v,-5v~+5v,0~20ma (0~10v為出廠默認設置)。輸入精度為12位。單通道最大采樣頻率:500khz,多通道最大采樣頻率為200khz。啟動轉換方式為軟件啟動/外觸發(定時)啟動。這里將模擬量輸入單雙端選擇跳線jp2設置為單端輸入,模擬量輸入范圍選擇跳線jp1,jp3設置為雙極性。
在這個實驗裝置中需要采集的模擬信號有十四路:三相負載電流信號,三相補償電流信號,三相電源電流信號,pwm波信號,變壓器原邊電流信號,三相電壓信號。采用dhpt、dhct高精度微型傳感器來完成數據采集的功能,采集到的數據經處理后傳輸到數據采集卡與dsp中。傳輸到數據采集卡的信號,一方面,實時動態顯示原始信號,另一方面,經fft分析和基于單個人工神經元的自適應電力諧波檢測方法分析后顯示各次諧波權值。
2.2 dsp部分
dsp采用tms320f2812,tms320x28xx信號處理器集成了事件管理器(281x處理器),epwm, ecap, a/d轉換模塊,spi外設接口,sci通信接口,ecan總線通信模塊,看門狗,通用目的數字量io,pll時鐘模塊,多通道緩沖串口,外部中斷接口,存儲器及其接口,內部集成電路(i2c)等多種外設單元,使用戶能夠以很便宜的價格開發高性能數字控制系統。傳輸給dsp的各種信號經fft算法分析,將各次諧波權值發送給工控機。dsp與上位機采用232串口通信。數據幀的格式如下:
a相:aaaa 1次諧波權值 3次諧波權值 5次諧波權值 … 25次諧波權值 aaaa
b相:bbbb 1次諧波權值 3次諧波權值 5次諧波權值 … 25次諧波權值 bbbb
c相:cccc 1次諧波權值 3次諧波權值 5次諧波權值 … 25次諧波權值 cccc
當用戶選中了查看經dsp分析的某相信號時(單選),上位軟件發送相應需求信號給dsp,例如:上位機發送aaaa,dsp接收到該信號后,首先發送兩個字節的幀頭aaaa響應上位機,上位機判斷回傳的數據是否為aaaa,是,則接收并顯示,否,則不予理采。每次諧波權值采用32位表示,按照ieee 754 標準:
(1) 第1位為符號位,1 代表負,0代表正;
(2) 接下來用8位來表示指數部分;
(3) 接下來的23位用來表示有效數位。
幀尾為aaaa,表示一幀數據發送完畢。
2.3 plc部分
plc采用s7-200,主要完成掛件識別功能。將各變量狀態通過opc技術與上位機軟件通信。上位機軟件組態顯示電路狀態,可以直觀查看電路當前狀態。
3 上位機軟件
3.1 軟件開發方式
軟件采用delphi 7.0完全面向對象的可視化平臺開發,它是borland公司最優秀的windows開發工具之一,它的可視化開發環境和面向對象的快速應用程序開發(rad)工具,使程序開發人員能在windows平臺上快速開發出32位的windows應用程序。它采用面向對象的程序設計語言object pascal。下面對上位機軟件中的關鍵技術加以說明。
在pci8360a的使用中有三種可行的軟件開發方式:
(1) 使用廠家提供的開發軟件。廠家提供的軟件只能作為測試采集卡是否正常的工具。
(2) 自己動手編制程序完成底層的數集和指令的輸出。此方法工作量大。
(3) 利用開發商所提供的windows標準動聯接庫文件。使用動態鏈接庫有如下優點:
l應用程序編譯鏈接后的可執行文件較小;
l應用程序所需用到的內存較小;
l對應用程某一模塊的修改,更換不會影響到其它模塊。本系統的開發此種方式。動態鏈接庫主要有兩種調用方法:靜態調用和動態調用。
動態鏈接庫的靜態調用是最簡單的調用方法。它主要使用external指令來聲明外部的函數或過程。為了方便使用和維護動態鏈接庫,可以將工程中所用到的所有不同動態鏈接庫中的函數統一定義在一個單元中,并且還可以在該單元中定義調用庫中函數或過程時所使用的常量或數據類型。
動態鏈接庫的動態調用主要是使用windows api函數進行相應的操作,比靜態調用復雜的多。因此,這里采用動態鏈接庫的靜態調用的方向。
3.2 連續ad采集的編程思路
(1)首先在程序初始化時調用 zt8360a_opendevice函數,用于打開設備,只調一次即可。
(2) 調用 zt8360a_disablead 函數,禁止ad;調用zt8360a_clearhfifo函數,清硬件緩沖區(hfifo);調用 zt8360a_clearsfifo 函數,清軟件緩沖區(sfifo);調用zt8360a_aiinit 函數,做一些ad初始化工作;調用 zt8360a_openirq函數,打開hfifo半滿中斷。
(3)在一個循環中不斷調用zt8360a_getsfifodata count判斷sfifo中數據的個數,申請一個數組,并把這個數組中傳入 zt8360a_ aisfifo 用于接收數據,把讀出的數據保存到文件或直接顯示。注意:sfifo的默認大小為 819200,用戶要不斷讀數,使sfifo有空間放入新的來自hfifo的數,如果sfifo中的有效數據的個數接近819200,會使整個ad過程停止。如果想重新采集,必須重復2—3步。
(4) 調用 zt8360a_closeirq函數,停止采集過程。
(5) 在程序退出前調用 zt8360a_closedevice函數。
評論
查看更多