專利名稱:一種特高壓直流電暈電流的高精度多點同步采集方法
技術(shù)領(lǐng)域:
本發(fā)明屬于特高壓技術(shù)領(lǐng)域,具體涉及一種特高壓直流電暈電流的高精度多點同步采集方法。
背景技術(shù):
隨著特高壓直流電壓等級的增加,直流輸電線路帶來的一系列電磁問題日益突出。我國特高壓直流工程綿延數(shù)千公里,途徑大量山地丘陵,氣候條件和地理環(huán)境復(fù)雜,由此造成的線路電暈特性需要進(jìn)一步研究。電暈電流為寬頻域信號,最高頻率可至兆赫茲級別。為實現(xiàn)不同測量點在同一時刻電暈電流數(shù)據(jù)的對比分析,采集軟件需要實現(xiàn)高精度同步定時設(shè)計。傳統(tǒng)采集軟件的定時精度較低,只能達(dá)到20ms。尤其在實現(xiàn)高速采集、快速顯示以及定時保存等多項任務(wù)時,由于windows系統(tǒng)采用搶占CPU時間的機(jī)制,多項任務(wù)同時執(zhí)行時,采集軟件的定時精度會大大降低。
發(fā)明內(nèi)容
為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明提供一種特高壓直流電暈電流的高精度多點同步采集方法,實現(xiàn)特高壓直流寬頻域不同測量點的電暈電流高精度同步采集。為了實現(xiàn)上述發(fā)明目的,本發(fā)明采取如下技術(shù)方案提供一種特高壓直流電暈電流的高精度多點同步采集方法,所述方法包括以下步驟
`
步驟1:建立客戶端與服務(wù)器之間的局域網(wǎng);步驟2 :客戶端與服務(wù)器進(jìn)行時鐘同步;步驟3 :服務(wù)器向客戶端發(fā)送同步采集控制命令;步驟4 :進(jìn)行電流數(shù)據(jù)的定時存儲。所述步驟I中,通過網(wǎng)絡(luò)連接將客戶端IP地址設(shè)定在網(wǎng)段內(nèi),并通過交換機(jī)與服務(wù)器連接,即可建立客戶端與服務(wù)器之間的局域網(wǎng),實現(xiàn)服務(wù)器和客戶端之間相互通信。所述步驟2包括以下步驟步驟2-1 :服務(wù)器設(shè)置時間,作為標(biāo)準(zhǔn)時鐘源;步驟2-2 :客戶端利用NETTME網(wǎng)絡(luò)同步協(xié)議,實現(xiàn)與服務(wù)器之間的嚴(yán)格時鐘同
止/J/ o所述步驟2-1中,服務(wù)器同步Internet時間,保證與標(biāo)準(zhǔn)時間同步;服務(wù)器時間作為標(biāo)準(zhǔn)時鐘源,且服務(wù)器開啟來賓模式,實現(xiàn)客戶機(jī)與服務(wù)器時鐘的同步,同時允許網(wǎng)絡(luò)訪問。所述步驟2-2中,通過CMD命令行實現(xiàn)客戶端與服務(wù)器嚴(yán)格的時鐘同步,所述CMD命令行為NETTME服務(wù)器IP地址/set/y。所述步驟3中,基于客戶端/服務(wù)器模式,服務(wù)器向各個客戶端同時發(fā)送同步采集命令,同時服務(wù)器在同步采集前接收到客戶端的應(yīng)答信號,否則立即發(fā)送同步采集停止命令;客戶端接收到同步采集命令后,若沒有接收到服務(wù)器發(fā)出的同步采集停止命令,開啟內(nèi)核模式的定時器,開始定時采集。所述服務(wù)器端發(fā)送同步采集命令,保證各個客戶端在同一時間點采集數(shù)據(jù),客戶端接收同步采集命令后,進(jìn)行采集、顯示和保存數(shù)據(jù);具體包括以下步驟I)創(chuàng)建監(jiān)聽Socket對象;初始化Win Socket的動態(tài)鏈接庫,用Create函數(shù)創(chuàng)建監(jiān)聽Socket對象,綁定監(jiān)聽端口 ;2)進(jìn)入監(jiān)聽狀態(tài);使用Listen函數(shù)進(jìn)入監(jiān)聽狀態(tài),此時設(shè)置的端口一直監(jiān)聽是否有客戶端的連接請求;3)接受收客戶端的連接請求;當(dāng)有客戶端發(fā)送請求連接時,監(jiān)聽套接字調(diào)用Accept函數(shù)實現(xiàn)客戶端的連接;4)與客戶端進(jìn)行通信;向各個客戶端發(fā)送同步采集命令;5)若在規(guī)定的時間內(nèi),未收到應(yīng)答信號,會立即發(fā)送停止同步采集命令,同時,返回到第四步繼續(xù)執(zhí)行,直至全部發(fā)送成功;6)發(fā)送停止同步采集命令,關(guān)閉服務(wù);同步任務(wù)結(jié)束后,使用Close函數(shù)關(guān)閉通信Socket 和偵聽 Socket。所述客戶端顯示線程、保存線程加入線程池隊列,遵循時間先后次序。所述客戶端網(wǎng)絡(luò)連接的創(chuàng)建過程包括以下步驟I)創(chuàng)建客 戶端Socket ;初始化Win Socket的動態(tài)鏈接庫后,先構(gòu)造通信Socket ;2)客戶端發(fā)出連接請求;使用Connect函數(shù)提出與服務(wù)器連接的請求;3)客戶端與服務(wù)器端進(jìn)行通信;待服務(wù)器允許連接后,雙方即可開始通信;當(dāng)服務(wù)器發(fā)送同步采集命令后,客戶端立即回復(fù)成功接收的應(yīng)答信號;同時,立即開啟內(nèi)核層線程池定時器,各個客戶端在同一時間點同步采集數(shù)據(jù);4)客戶端接收到停止同步采集命令后,斷開連接。所述步驟4中,客戶端利用內(nèi)核線程池實現(xiàn)多點同步定時采集;用戶層定時器實現(xiàn)波形的實時顯示,內(nèi)核層線程池定時器實現(xiàn)電暈電流數(shù)據(jù)的定時保存。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于(I)采用NETTME網(wǎng)絡(luò)同步協(xié)議實現(xiàn)嚴(yán)格統(tǒng)一的時鐘源,克服了傳統(tǒng)手動調(diào)時或者C/S自動調(diào)時的同步時間精度差的缺點;(2)采用內(nèi)核層線程池定時器,保證了實現(xiàn)定時數(shù)據(jù)保存的高精度性;(3)用戶模式定時器和內(nèi)核模式線程池定時器同時使用,可以保證采集軟件的高效性,不發(fā)生資源訪問沖突。
圖1是特高壓直流電暈電流的高精度多點同步采集方法流程圖;圖2是本發(fā)明實施例中客戶端與服務(wù)器之間的局域網(wǎng)組網(wǎng)示意圖;圖3是本發(fā)明實施例中服務(wù)器網(wǎng)絡(luò)通信流程圖;圖4是本發(fā)明實施例中客戶端網(wǎng)絡(luò)通信流程圖;圖5是本發(fā)明實施例中平均值保存時間線圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)說明。如圖1,提供一種特高壓直流電暈電流的高精度多點同步采集方法,所述方法包括以下步驟步驟1:建立客戶端與服務(wù)器之間的局域網(wǎng);步驟2 :客戶端與服務(wù)器進(jìn)行時鐘同步;步驟3 :服務(wù)器向客戶端發(fā)送同步采集控制命令;步驟4 :進(jìn)行電流數(shù)據(jù)的定時存儲。如圖2,通過網(wǎng)絡(luò)連接將客戶端IP地址設(shè)定在網(wǎng)段內(nèi),并通過交換機(jī)與服務(wù)器連接,即可建立客戶端與服務(wù)器之間的局域網(wǎng),實現(xiàn)服務(wù)器和客戶端之間相互通信。所述步驟2包括以下步驟步驟2-1 :服務(wù)器設(shè)置時間,作為標(biāo)準(zhǔn)時鐘源;步驟2-2 :客戶端利用NETTME網(wǎng)絡(luò)同步協(xié)議,實現(xiàn)與服務(wù)器之間的嚴(yán)格時鐘同步。服務(wù)器同步Internet時間,保證與標(biāo)準(zhǔn)時間同步;服務(wù)器時間作為標(biāo)準(zhǔn)時鐘源,且服務(wù)器開啟來賓模式,實現(xiàn)客戶機(jī)與服務(wù)器時鐘的同步,同時允許網(wǎng)絡(luò)訪問。可通過Windows設(shè)置-> 安全設(shè)置_>本地策略_>安全選項設(shè)置。所述步驟2-2中,通過CMD命令行“NETTME服務(wù)器IP地址/set/y”實現(xiàn)客戶端與服務(wù)器嚴(yán)格的時鐘同步,若發(fā)現(xiàn)“發(fā)生系統(tǒng)錯誤5拒絕訪問”的錯誤,可能是因為服務(wù)器為開啟來賓模式,從而拒絕訪問。為了提高時鐘同步命令的便捷性,可以使用bat文件實現(xiàn)時鐘同步,并且bat文件必須住系統(tǒng)目錄內(nèi)執(zhí)行,最終在程序中通過shellexcute函數(shù)直接執(zhí)行bat文件。所述步驟3中,基于客戶端/服務(wù)器模式,利用Win Socket網(wǎng)絡(luò)編程實現(xiàn)客戶端/服務(wù)器模式,對應(yīng)時間同步操作,可將時鐘源計算機(jī)當(dāng)作服務(wù)器,存儲電暈電流或泄漏電流信號的計算機(jī)當(dāng)作客戶端。服務(wù)器向各個客戶端同時發(fā)送同步采集命令,同時主機(jī)必須在同步采集前接收到客戶機(jī)的應(yīng)答信號,否則立即發(fā)送停止采集指令。服務(wù)器向各個客戶端同時發(fā)送同步采集命令,同時服務(wù)器在同步采集前接收到客戶端的應(yīng)答信號,否則立即發(fā)送同步采集停止命令;客戶端接收到同步采集命令后,若沒有接收到服務(wù)器發(fā)出的同步采集停止命令,開啟內(nèi)核模式的定時器,開始定時采集。如圖3,所述服務(wù)器端發(fā)送同步采集命令,保證各個客戶端在同一時間點采集數(shù)據(jù),客戶端接收同步采集命令后,進(jìn)行采集、顯示和保存數(shù)據(jù);具體包括以下步驟I)創(chuàng)建監(jiān)聽Socket對象;初始化Win Socket的動態(tài)鏈接庫,用Create函數(shù)創(chuàng)建監(jiān)聽Socket對象,綁定監(jiān)聽端口 ;2)進(jìn)入監(jiān)聽狀態(tài);使用Listen函數(shù)進(jìn)入監(jiān)聽狀態(tài),此時設(shè)置的端口一直監(jiān)聽是否有客戶端的連接請求;3)接受收客戶端的連接請求;當(dāng)有客戶端發(fā)送請求連接時,監(jiān)聽套接字調(diào)用Accept函數(shù)實現(xiàn)客戶端的連接;4)與客戶端進(jìn)行通信;向各個客戶端發(fā)送同步采集命令;
5)若在規(guī)定的時間內(nèi),未收到應(yīng)答信號,會立即發(fā)送停止同步采集命令,同時,返回到第四步繼續(xù)執(zhí)行,直至全部發(fā)送成功;6)發(fā)送停止同步采集命令,關(guān)閉服務(wù);同步任務(wù)結(jié)束后,使用Close函數(shù)關(guān)閉通信Socket 和偵聽 Socket。所述客戶端顯示線程、保存線程加入線程池隊列,遵循時間先后次序。如圖4,所述客戶端網(wǎng)絡(luò)連接的創(chuàng)建過程包括以下步驟I)創(chuàng)建客戶端Socket ;初始化Win Socket的動態(tài)鏈接庫后,先構(gòu)造通信Socket ;2)客戶端發(fā)出連接請求;使用Connect函數(shù)提出與服務(wù)器連接的請求;3)客戶端與服務(wù)器端進(jìn)行通信;待服務(wù)器允許連接后,雙方即可開始通信;當(dāng)服務(wù)器發(fā)送同步采集命令后,客戶端立即回復(fù)成功接收的應(yīng)答信號;同時,立即開啟內(nèi)核層線程池定時器,各個客戶端在同一時間點同步采集數(shù)據(jù);4)客戶端接收到停止同步采集命令后,斷開連接。所述步驟4中,客戶端利用內(nèi)核線程池實現(xiàn)多點同步定時采集;用戶層定時器實現(xiàn)波形的實時顯示,內(nèi)核層線程池定時器實現(xiàn)電暈電流數(shù)據(jù)的定時保存。經(jīng)過分析,采集軟件主要實現(xiàn)數(shù)據(jù)的高精度定時保存和快速的實時顯示。實時顯示涉及到波形繪制和特征值的更新,工作于用戶層,適合應(yīng)用多媒體定時器和timer定時器,由于timer定時器比較靈活,同時使用方便,而對于實時顯示只需要IOOrns的精度即可,故選用timer定時器。根據(jù)微軟MSDN官方解釋,用戶模式定時器優(yōu)先級非常低,需要等待其它線程執(zhí)行完才可觸發(fā),為了增強(qiáng)其響應(yīng)性,能夠快速實時響應(yīng)操作,可通過盡量減少windows消息隊列中的OnIdle執(zhí)行實現(xiàn)。而對于后臺數(shù)據(jù)的保存,由于是一個連續(xù)的定時操作,內(nèi)核線程池定時器比較適合。內(nèi)核線程池定時器實際上是一個定時器隊列,對一組定時器進(jìn)行組織安排,適用于連續(xù)定時的后臺操作,定時精度非 常高,可達(dá)到微秒級別。內(nèi)核線程池提供快速實時顯示、平均值保存和瞬時值保存功能。當(dāng)在某個時間點,三個線程同時訪問從采集卡獲取到的數(shù)據(jù)時,就有可能出現(xiàn)在寫內(nèi)存的時候同時讀內(nèi)存,從而引起資源訪問沖突,表現(xiàn)為I)采集到的數(shù)據(jù)前半部分是真實的數(shù)據(jù),而后半部分全部為O。2)前半部分?jǐn)?shù)據(jù)是下一次采集的,后半部分?jǐn)?shù)據(jù)是上一次采集到的。這樣無法保證數(shù)據(jù)的完整,可以采用線程互鎖和開辟兩個緩沖區(qū)解決。I)顯示線程和保存線程設(shè)置一個互斥的信號量,保證線程同步。2)當(dāng)瞬時值保存線程響應(yīng)時,重新開辟一個緩沖區(qū),專門保存瞬時值數(shù)據(jù),這樣可避免平均值保存線程處理函數(shù)破壞掉原來的數(shù)據(jù)。利用Windows系統(tǒng)內(nèi)核中的高性能計數(shù)器測試,本地端計算機(jī)通過采集卡DLL動態(tài)鏈接庫獲取數(shù)據(jù)的等待時間約為60ms,軟件實現(xiàn)特征值計算時間約為4ms。電暈電流測量系統(tǒng)最低采樣率為1MHz,存儲深度最大為128K,計算采集時間為131ms,時間線如圖4所示。平均值定時器間隔應(yīng)大于等待數(shù)據(jù)時間、采集最長時間和特征值計算時間的總和,計算可得,平均值保存間隔至少為195ms,可取平均值保存最小間隔200ms,保證一定的余度。而繪圖時間與平均值保存時間需同步,故至少200ms ;保存128K瞬時數(shù)據(jù)為csv文件時,經(jīng)過測試,通過文件流存儲需要的時間約為3s。由于保存文件時,CPU利用率較高,為了提高軟件的性能,瞬時值保存留有Is的余度,可設(shè)其瞬時值保存間隔為4s。經(jīng)過長時間的測試,以上定時間隔均能保證數(shù)據(jù)的完整無誤。由此可得出如下結(jié)論平均值保存最小間隔為200ms,但測試和計算完成一次平均值保存最高為195ms,故平均值保存的定時精度至少為5ms o最后應(yīng)當(dāng)說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制,盡管參照上述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解依然可以對本發(fā)明的具體實施方式
進(jìn)行修改或者等同替換,而未脫離本發(fā)明精神和范圍的任何修改或者等同替換,其均應(yīng)涵 蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種特高壓直流電暈電流的高精度多點同步采集方法,其特征在于所述方法包括以下步驟步驟1:建立客戶端與服務(wù)器之間的局域網(wǎng);步驟2 :客戶端與服務(wù)器進(jìn)行時鐘同步;步驟3 :服務(wù)器向客戶端發(fā)送同步采集控制命令;步驟4 :進(jìn)行電流數(shù)據(jù)的定時存儲。
2.根據(jù)權(quán)利要求1所述的特高壓直流電暈電流的高精度多點同步采集方法,其特征在于所述步驟I中,通過網(wǎng)絡(luò)連接將客戶端IP地址設(shè)定在網(wǎng)段內(nèi),并通過交換機(jī)與服務(wù)器連接,即可建立客戶端與服務(wù)器之間的局域網(wǎng),實現(xiàn)服務(wù)器和客戶端之間相互通信。
3.根據(jù)權(quán)利要求1所述的特高壓直流電暈電流的高精度多點同步采集方法,其特征在于所述步驟2包括以下步驟步驟2-1 :服務(wù)器設(shè)置時間,作為標(biāo)準(zhǔn)時鐘源;步驟2-2 :客戶端利用ΝΕΤ ΜΕ網(wǎng)絡(luò)同步協(xié)議,實現(xiàn)與服務(wù)器之間的嚴(yán)格時鐘同步。
4.根據(jù)權(quán)利要求3所述的特高壓直流電暈電流的高精度多點同步采集方法,其特征在于所述步驟2-1中,服務(wù)器同步Internet時間,保證與標(biāo)準(zhǔn)時間同步;服務(wù)器時間作為標(biāo)準(zhǔn)時鐘源,且服務(wù)器開啟來賓模式,實現(xiàn)客戶機(jī)與服務(wù)器時鐘的同步,同時允許網(wǎng)絡(luò)訪問。
5.根據(jù)權(quán)利要求3所述的特高壓直流電暈電流的高精度多點同步采集方法,其特征在于所述步驟2-2中,通過CMD命令行實現(xiàn)客戶端與服務(wù)器嚴(yán)格的時鐘同步,所述CMD命令行為ΝΕΤ ΜΕ服務(wù)器IP地址/set/y。
6.根據(jù)權(quán)利要求1所述的特高壓直流電暈電流的高精度多點同步采集方法,其特征在于所述步驟3中,基于客戶端/服務(wù)器模式,服務(wù)器向各個客戶端同時發(fā)送同步采集命令, 同時服務(wù)器在同步采集前接收到客戶端的應(yīng)答信號,否則立即發(fā)送同步采集停止命令;客戶端接收到同步采集命令后,若沒有接收到服務(wù)器發(fā)出的同步采集停止命令,開啟內(nèi)核模式的定時器,開始定時采集。
7.根據(jù)權(quán)利要求6所述的特高壓直流電暈電流的高精度多點同步采集方法,其特征在于所述服務(wù)器端發(fā)送同步采集命令,保證各個客戶端在同一時間點采集數(shù)據(jù),客戶端接收同步采集命令后,進(jìn)行采集、顯示和保存數(shù)據(jù);具體包括以下步驟1)創(chuàng)建監(jiān)聽Socket對象;初始化WinSocket的動態(tài)鏈接庫,用Create函數(shù)創(chuàng)建監(jiān)聽 Socket對象,綁定監(jiān)聽端口 ;2)進(jìn)入監(jiān)聽狀態(tài);使用Listen函數(shù)進(jìn)入監(jiān)聽狀態(tài),此時設(shè)置的端口一直監(jiān)聽是否有客戶端的連接請求;3)接受收客戶端的連接請求;當(dāng)有客戶端發(fā)送請求連接時,監(jiān)聽套接字調(diào)用Accept函數(shù)實現(xiàn)客戶端的連接;4)與客戶端進(jìn)行通信;向各個客戶端發(fā)送同步采集命令;5)若在規(guī)定的時間內(nèi),未收到應(yīng)答信號,會立即發(fā)送停止同步采集命令,同時,返回到第四步繼續(xù)執(zhí)行,直至全部發(fā)送成功;6)發(fā)送停止同步采集命令,關(guān)閉服務(wù);同步任務(wù)結(jié)束后,使用Close函數(shù)關(guān)閉通信 Socket 和偵聽 Socket。
8.根據(jù)權(quán)利要求7所述的特高壓直流電暈電流的高精度多點同步采集方法,其特征在于所述客戶端顯示線程、保存線程加入線程池隊列,遵循時間先后次序。
9.根據(jù)權(quán)利要求6所述的特高壓直流電暈電流的高精度多點同步采集方法,其特征在于所述客戶端網(wǎng)絡(luò)連接的創(chuàng)建過程包括以下步驟O創(chuàng)建客戶端Socket ;初始化Win Socket的動態(tài)鏈接庫后,先構(gòu)造通信Socket ;2)客戶端發(fā)出連接請求;使用Connect函數(shù)提出與服務(wù)器連接的請求;3)客戶端與服務(wù)器端進(jìn)行通信;待服務(wù)器允許連接后,雙方即可開始通信;當(dāng)服務(wù)器發(fā)送同步采集命令后,客戶端立即回復(fù)成功接收的應(yīng)答信號;同時,立即開啟內(nèi)核層線程池定時器,各個客戶端在同一時間點同步采集數(shù)據(jù);4)客戶端接收到停止同步采集命令后,斷開連接。
10.根據(jù)權(quán)利要求1所述的特高壓直流電暈電流的高精度多點同步采集方法,其特征在于所述步驟4中,客戶端利用內(nèi)核線程池實現(xiàn)多點同步定時采集;用戶層定時器實現(xiàn)波形的實時顯示,內(nèi)核層線程池定時器實現(xiàn)電暈電流數(shù)據(jù)的定時保存。
全文摘要
本發(fā)明提供一種特高壓直流電暈電流的高精度多點同步采集方法,首先,建立客戶端與服務(wù)器之間的局域網(wǎng);其次,客戶端與服務(wù)器進(jìn)行時鐘同步;再者,服務(wù)器向客戶端發(fā)送同步采集控制命令;最后,進(jìn)行電流數(shù)據(jù)的定時存儲。本發(fā)明提供的方法適用于特高壓直流寬頻域電暈電流的測量,基于內(nèi)核線程池和NETTIME網(wǎng)絡(luò)同步協(xié)議實現(xiàn)特高壓直流寬頻域不同測量點的電暈電流高精度同步采集。
文檔編號H04L29/06GK103051634SQ20121057489
公開日2013年4月17日 申請日期2012年12月26日 優(yōu)先權(quán)日2012年12月26日
發(fā)明者劉元慶, 袁海文, 陸家榆, 李煉煉, 呂建勛, 郭劍, 趙錄興 申請人:中國電力科學(xué)研究院, 國家電網(wǎng)公司