王 欣,文小玲
(1.武漢工程大學郵電與信息工程學院,湖北 武漢 430074;2.武漢工程大學電氣信息學院,湖北 武漢430205)
Labview 是laboratory virtual instrument engineering workbench(實驗室虛擬儀器工程工作臺),是由美國國家儀器公司開發的一種用圖標代替文本行創建應用程序的圖形化編程語言,它是一種數據采集和儀器控制的標準虛擬儀器軟件開發平臺[1].Labview的圖形化編程環境可以滿足不同的編程需求,相比其他語言程序開發周期較短,且界面簡單友好[2].
在監測系統中,處理的實時性是系統的核心所在.本系統首先通過采樣調理電路將電網中的同步電壓、電流信號采集到主控制電路中;然后通過串行接口和上位機的連接,利用MODBUS協議(工業現場總線協議)完成上下位機的通信;在上位機中采用基于虛擬儀器(LabVIEW8.2)的編程環境中構建的測試軟件對采集得到的無功與諧波電流實時數據信號進行解析和存儲,并將解析的結果按照一定的顯示形式在虛擬儀器的面板上顯示.系統測試軟件可以通過對解析結果分析被測產品是否出現故障,并對故障信息進行記錄,監測人員可以通過查閱存儲的數據對出現故障進行深入分析.

圖1 無功與諧波電流監測系統組成框圖Fig.1 Composition principles block diagram of reactive and harmonic current monitoring system
無功與諧波電流監測系統原理架構如圖1所示.硬件系統主要包括以TMS320LF2407A DSP(Demand-Side Platform——需求方平臺)為核心的主控制器,鍵盤與顯示接口電路,串行通信接口電路,電壓及電流采樣電路等.圖1中UABC和IABC分別為用戶端三相電壓和電流.采樣電路由電壓傳感器PT、電流傳感器CT、信號調理電路及模數轉換器組成,主要用于采集電網電壓同步信號、三相電壓和電流等現場信號.采集到的電壓和電流由DSP主控制器進行數據處理,分離出負載電流中的無功和諧波電流,并實現與上位機的通信.
下位機軟件的主要功能是實現無功與諧波電流的檢測,并完成與上位機的串口通信.

圖2 無功與諧波電流檢測程序流程圖Fig.2 Flow diagrame of reactive and harmonic current detection program
無功與諧波電流檢測軟件流程圖如圖2所示,主要由同步信號捕獲和采樣程序、負載電壓和電流采樣程序、諧波及無功電流計算程序等組成.系統初始化包括對各個不同的寄存器和全局變量設置相應的初始值,初始值設定完畢后等待中斷的到來,然后根據不同的中斷進入到對應的中斷服務子程序;當進入到CAP6中斷子程序后,獲取有效的同步信號,并取出捕獲的當前值用來計算上個周期的時間和對應的頻率,然后來判別該頻率值.如果檢測到超出一定的漂移范圍則舍棄當前值,并使用上次周期計算所得的值來進行計算.如果在正常的范圍內,就更新當前周期計數值,并且賦值給T1的T1PR寄存器,然后執行中斷返回.采樣的負載電流數字化是利用DSP內部ADC(模數轉換)模塊進行A/D轉換實現.此DSP的ADC模塊采樣單極性信號的范圍在0~3.3 V,為了與實際電流信號相一致,必須對其采樣值進行數字量的處理[3].首先對10位精度ADC模塊采樣所得數據進行移位處理,然后減去抬升電壓數字量進行雙極性還原,即還原為與實際電流信號.在無功與諧波電流計算程序中,需要使用查表法查出與a相電壓同步的正弦及余弦函數值,并利用瞬時無功功率理論中的ip-iq算法來分離三相負載電流中的諧波和無功電流[4].

圖3 從站通信程序流程圖Fig.3 Flow diagrame of slave station communication program
Modbus協議中,上、下位機使用主從通訊方式,從站DSP采用中斷方式接收和發送數據.由于DSP被設計為一個Modbus的從站,不具備主動通信的能力, 因此從站上電初始化后,會打開串行通信的接收中斷,接收上位機傳過來的命令與數據[5].如圖3所示的從站通信流程圖,首先進行系統初始化,包括定時器初始化、串口初始化、中斷初始化;串口接收中斷在初始化完畢后產生,數據一位一位的從接收寄存器中讀取出來,并存放到接收SBUF中,然后啟動(或者重置)計時器;定時中斷產生,將所有接收緩沖區中的數據作為一幀,存放到請求幀緩沖區中,并設置幀緩沖標志;檢測到幀緩沖標志,處理請求幀緩沖區,生成響應幀,將響應幀復制到發送緩沖區,并激活發送過程,串口發送中斷產生,持續將發送緩沖區中的數據發送到串口.重復以上步驟完成多次的Modbus設備訪問.
上位機軟件主要完成串口通信程序及數據存儲、顯示功能.
主站通信流程圖如圖4所示.上位PC機Labview程序中采用下列步驟實現與DSP之間的Modbus串口通信:
(1)串口初始化,設置雙方波特率、串口通信的端口號、數據位、奇偶校驗等.
(2)按Modbus協議命令幀的格式將要發送的數據打包.
(3)寫端口,將打包的數據發送到串口.
(4)延時等待,等下位機的應答幀到達串口.
(5)讀取串口中DSP的應答幀.
(6)應答幀解包,將應答幀中有效的數據信息讀取出來并顯示.
Labview有一個串口通信的節點VISA,與其相關的節點共6個,分別實現串口初始化、串口READ/WRITE、串口緩存檢測、中斷及關閉串口等功能[6].在進行串口初始化時,需設置相應的端口號、奇偶校驗位、波特率、停止位、數據位等,其Labview框圖程序如圖5所示.

圖4 主站通信流程圖Fig.4 Flow diagrame of master station communication program

圖5 串口初始化框圖程序Fig.5 Frame diagram of serial port initialization
上下位機通信發送操作指令時,先將Cluster簇類型的協議命令轉換成數據形式,然后計算此數據的CRC校驗碼,最后合并Modbus協議數據及CRC校驗碼,生成Modbus數據幀供下位機識別[6].從Modbus命令的Cluster結構中提取有效的數據單元并保存在數組中,包括設備功能號、寄存器數量、寄存器起始地址、需要寫入的有關離散值及數據.
Modbus數據幀中包含了CRC方法的錯誤檢測域,用于檢測整個數據幀的內容,主要用在RTU模式[7].圖6為生成CRC校驗碼的Labview程序框圖.在Labview中實現CRC校驗的步驟為:
(1)預置一個CRC寄存器,該寄存器的內容全為l (即FFFFH).
(2)做異或操作,將CRC寄存器的低8與8位數據相異或,并將結果存放在CRC寄存器.
(3)把寄存器的內容向LSB最低位方向移動,用0填補MSB最高位,并檢查最低位.
(4)若LSB(最低位)為0,則重新執行步驟3.若LSB(最低位)為1,則將CRC寄存器的內容和多項式碼A00lHex進行異或.
(5)重復步驟3和4,直到8次右移完畢,所有數據進行了處理.
(6)重復步驟2~5,進行另外一個8位數據的處理,直到所有的數據被處理完畢.最后得到的CRC寄存器中的內容為對應的CRC碼.

圖6 CRC16校驗程序框圖Fig.6 Frame diagram of CRC

圖7 寫串口框圖程序Fig.7 Frame diagram of writing modbus frame to serial interface
讀串口程序采用直線結構,按照順序,第1幀通過VISA Read 節點從Byte Count 端口讀取了一個字符數,這個字符數實質上是從機號,讀取后與指定的實際從機設備相比較,確定是否相符合.第2幀通過VISA Read.vi和VISA Bytes at Serial Port.vi兩個端口,讀出串口輸入緩存中的全部數據.并通過Tick Count.vi 計算出讀取的兩個命令幀之間的時間間隔,如果超過了給定10 000 ms,程序會報超時錯誤.另外,還采用一個while 循環結構,用來校驗讀出的字符串是否正確,如有誤重新讀取,直到校驗碼相符,則中止循環.第3幀String 轉Modbus Data Unit.vi為添加子函數,它將讀出的所有字符串按照Modbus命令幀的格式把從機地址、數據量和功能代碼全部分開,為下一步解碼提供函數的入口參數.
解碼數據幀要依據對應的Function Code(功能號),這樣才能正確的讀取響應幀中的數據,并且把實際讀出的寄存器的值返回給用戶.此程序實質上是Modbus請求數據幀的反相過程.其Labview框圖程序如圖8所示.

圖8 響應幀解碼框圖程序Fig.8 Frame diagram of decoding for respondings
利用MySQL(數據庫)以及Ni公司附加的工具包SQL Toolkit for Labview對數據進行存儲,同時確保Labview能夠連接并訪問所存儲數據的MySQL,對數據進行相應的讀取,圖9為數據庫在一段時間內所儲存的數據.

圖9 數據庫存儲數據顯示Fig.9 Display of the data in database
為驗證無功與諧波電流監測系統的性能,以三相二極管整流橋帶燈箱裝置作為非線性負載,對所設計系統進行實際運行測試.測試過程中的實時顯示界面如圖10所示,工作人員可以清楚地觀察需監測的電壓、電流波形.其中圖10(a)為三相二極管整流橋A相輸入電流波形,圖10(b)為A相電網電壓和負載A相電流有功分量,圖10(c)為待補償的指令電流(即負載無功和諧波電流).由此可見,系統能準確檢測出負載電流中的有功分量和無功與諧波分量.

圖10 電壓和電流波形Fig.10 The waveform of voltage and current
以上利用DSP控制技術、Labview8.2 軟件平臺及Modbus總線協議設計一套電網無功與諧波電流監測系統,并通過實驗驗證了該系統性能.結果表明,該設計不僅能準確檢測非線性負載電流中的有功、無功和諧波分量,而且通過上位機能實現被測參數實時數據、數據查詢和管理及波形圖顯示功能,同時還可以調整下位DSP控制參數,以滿足工業控制領域的許多要求.
致謝
劉建老師提供了一些相關的研究資料并對文章提出了中肯的修改意見,在此致以衷心的感謝.
參考文獻:
[1] 習升鴻,戴瑜興,李展翅.基于LabVIEW 的遠程監控系統設計與實現[J],低壓電器,2007(7):18-20.
XI Shenghong,DAI Yuxin,LI Zhanchi.Design and Realization of remote monitoring system base on LabVIEW[J]. low voltage apparatus, 2007(7):18-20.(in Chinese)
[2] 楊樂平.LabVIEW程序設計與應用[M].北京:電子工業出版社,2001:381-408.
YANG Leping.Design and application of LabVIEW program[M] .Beijing:Press of electronics industry, 2001:381-408.(in Chinese)
[3] 沈斐,王婭嵐.大容量STATCOM主電路結構的分析和比較[M].電力系統自動化,2003,27(8):59-65.
SHEN Fei,WANG Yalan. Analysis and comparison of large capacity STATCOM main circuit structure[M]. power system automation, 2003, 27 (8) : 59-65.(in Chinese)
[4] 唐杰,羅安. 配電靜止同步補償器的補償電流檢測方法[J]. 中國電機工程學報,2008,28(28):108-112.
TANG Jie,LUO An . The compensation current detection method of distribution static synchronous compensator[J]. Journal of Mechanical Engineering, 2008,28(28):108-112.(in Chinese)
[5] 封亞斌.采用串口通信技術實現Modbus數據通信[J].自動化儀表,2004,25(10):23-24.
FENG Yabin. Modbus data communication based on serial port communication technology[J]. automatic instrument, 2004,25(10):23-24.(in Chinese)
[6] 李娟,張波,丘東元.電能質量檢測系統中基于Modbus RTU的多機通信[J].電力制動化設備, 2007,27(1):93-96.
LI Juan,ZHANG Bo,QIU Dongyuan.. Power Quality Monitoring System Based on Multi-machine communication of Modbus RTU[J]. Electric braking equipment, 2007,27(1):93-96. (in Chinese)
[7] 文小玲,李鳳旭,易馳,等.并聯型有源電力濾波器的電流跟蹤控制實現方法[J].武漢工程大學學報,2013,35(5):73-77.
WEN Xiao-lin, LI Feng-xu, YI Chi, et al. Curront tracking control implomen tation methocl for shunt active power filter[J]. Journal of Wuhan Institute of technology,2013,35(5):73-77.(in Chinese)