王旭昊,胡劍生,李 嘉,王海明
(許昌許繼風(fēng)電科技有限公司,河南 許昌461000)
在光伏電站應(yīng)用場(chǎng)合下,通常每8~16路光伏組串輸出的電能輸入給1臺(tái)光伏匯流箱并在箱內(nèi)通過銅排匯流輸出。光伏匯流箱監(jiān)測(cè)裝置需安裝在光伏匯流箱內(nèi),其主要工作是測(cè)量各路光伏組串的發(fā)電電流和電壓,并將相關(guān)數(shù)據(jù)通過通訊總線上傳至監(jiān)控室中。為實(shí)現(xiàn)一次側(cè)和二次側(cè)的電氣隔離,現(xiàn)有的光伏匯流箱監(jiān)測(cè)裝置往往使用霍爾傳感器作為光伏組串電流、電壓的采樣元件,但其成本高且對(duì)工作條件要求苛刻,在光伏電站惡劣的室外工作環(huán)境下存在故障率高、線性度差和溫漂嚴(yán)重的問題[1]。另外,現(xiàn)有監(jiān)測(cè)裝置的通訊接口電路在設(shè)計(jì)過程中未充分考慮其在室外發(fā)電環(huán)境下的防浪涌保護(hù)從而導(dǎo)致故障率居高不下。提出了一套以STM32單片機(jī)作為主處理器的設(shè)計(jì)方案,此種單片機(jī)屬于Cotex-M3系列微處理器,是一款成本和功耗較低,同時(shí)性能卻相對(duì)優(yōu)越的32位微處理器[2]。
監(jiān)測(cè)裝置的采樣電路自成回路,獨(dú)立供電,選用普通的電阻器件作為采樣元件構(gòu)建組串電壓和電流的采樣回路。組串電壓一般不超過1 000V,它的分壓電阻由10個(gè)阻值為1MΩ的貼片電阻串聯(lián)組成,采樣電阻為1個(gè)阻值為2kΩ且靠近組串負(fù)極的貼片電阻。組串電流一般為10A左右,它在即將流入光伏組串負(fù)極之前流經(jīng)1片阻值為1MΩ的純銅片進(jìn)而生成一路組串電流采樣信號(hào)。所有這些采樣信號(hào)經(jīng)RC濾波電路處理后輸入給AD轉(zhuǎn)換芯片。為了實(shí)現(xiàn)16路組串電流的采樣,支路01~08和支路09~16的電流采樣信號(hào)分別通過2片多路模擬通道選擇開關(guān)ADG707的選通處理后再輸送給AD轉(zhuǎn)換芯片的2個(gè)電流采樣信號(hào)輸入端。這2片ADG707接收STM32發(fā)送的通道選擇信號(hào)A,B,C的激勵(lì)。由于電壓采樣信號(hào)和電流采樣信號(hào)都取自光伏組串的負(fù)極,且信號(hào)地被電壓跟隨器連接至3.3V供電電源的中間位置即1.65V處。因此,電路可以采樣正負(fù)兩個(gè)方向上的組串電壓和電流。
監(jiān)測(cè)裝置的主控電路同樣也是自成回路,獨(dú)立供電。為使主控回路和采樣回路在保持電氣隔離的狀態(tài)下正常實(shí)現(xiàn)信號(hào)傳輸,裝置按信號(hào)傳輸速率的不同選用了2種光耦隔離管。對(duì)AD轉(zhuǎn)換芯片的片選信號(hào)CS、復(fù)位信號(hào)RESET和通道選擇開關(guān)的選擇信號(hào)A,B,C使用一種絕緣電壓可達(dá)5 000Vrms的光耦管TLP785進(jìn)行電氣隔離。對(duì)AD轉(zhuǎn)換芯片和主控芯片之間的SPI通訊信號(hào),SDO,SDI通過一種絕緣電壓達(dá)3 750Vrms,傳輸速度達(dá)10Mb/s的高速光耦管6N137-00ME進(jìn)行電氣隔離。
AD轉(zhuǎn)換芯片中的采樣數(shù)據(jù)通過SPI通訊輸出給主控芯片,SPI通訊時(shí)序圖如圖1所示。時(shí)鐘信號(hào)SCLK由主控芯片STM32給出,AD轉(zhuǎn)換芯片在SCLK上升沿時(shí)發(fā)送數(shù)據(jù),在SCLK下降沿時(shí)接收數(shù)據(jù)。在通訊過程中,時(shí)鐘管腳SCLK的高低電平至少分別保持200ns(t1,t2),片選信號(hào)CS至少拉低50ns后(t3)再控制時(shí)鐘管腳SCLK拉低。在從設(shè)備接收數(shù)據(jù)時(shí),主設(shè)備應(yīng)該在距離SCLK上升沿之前至少50ns(t4)建立好數(shù)據(jù),并在SCLK上升沿之后保持?jǐn)?shù)據(jù)至少100ns(t5)。
圖1 SPI通訊時(shí)序
設(shè)從AD轉(zhuǎn)換芯片的電壓采樣寄存器中讀出的高、中、低字節(jié)分別為U2,U1,U0,從電流采樣寄存器中讀出的高、中、低字節(jié)分別為I2,I1,I0,第n次AD轉(zhuǎn)換電壓值(數(shù)字量)和電流值(數(shù)字量)分別為Num_U 和Num_I(有符號(hào)數(shù),正向最大值Nc為223-1),則有:
已知AD轉(zhuǎn)換芯片CS5480電壓采樣通道的滿量程Ur為250mV,電流采樣通道的滿量程Ir為50mI。它們分別對(duì)應(yīng)的瞬時(shí)電壓采樣值和瞬時(shí)電流采樣值分別為un(單位為V)和in(單位為mA),則un與Num_Un,in與Num_In的轉(zhuǎn)換關(guān)系為:
為了抑止經(jīng)AD轉(zhuǎn)換后的采樣數(shù)值波動(dòng),提供更穩(wěn)定可靠的讀值,預(yù)讀值U′和I′取在時(shí)間上連續(xù)的7個(gè)瞬時(shí)采樣值的均方根為:
為保障最終讀值的準(zhǔn)確性,必須對(duì)預(yù)讀值進(jìn)行精度校準(zhǔn)。具體做法是先不施加校準(zhǔn)源獲得預(yù)讀值與最終讀值之間的偏移誤差Off_U,Off_I,然后施加校準(zhǔn)源計(jì)算增益系數(shù)Gain_U,Gain_I。最終讀值與預(yù)讀值之間的線性映射關(guān)系為:
校準(zhǔn)得出的偏移誤差和增益系數(shù)存儲(chǔ)在主控芯片的flash存儲(chǔ)區(qū)中。
裝置的通訊接口電路自成回路,獨(dú)立供電。為加強(qiáng)RS485接口電路在光伏電站環(huán)境中的耐浪涌沖擊能力,采用了4項(xiàng)措施來(lái)加強(qiáng)防浪涌保護(hù)。一是通訊接口對(duì)地設(shè)置了沖擊放電電壓達(dá)700V,通流量達(dá)10kA的陶瓷氣體放電管3RM075L-8,目的是使通訊接口在遭受雷擊時(shí)能將浪涌電壓引到大地上。二是為了縮短保護(hù)電路的放電延時(shí),在A,B,GND3個(gè)信號(hào)的兩兩之間各加設(shè)一個(gè)鉗位電壓為10.3V且峰值浪涌電流為58.3A 的 TVS管SMBJ6.0CA,在迅速疏導(dǎo)浪涌電流的同時(shí)確保瞬間電壓不至于過高而燒壞接口芯片。三是接口電路在A,B信號(hào)流經(jīng)的通路上各加設(shè)一個(gè)阻值為10Ω的圓晶電阻,其阻值較小對(duì)通訊信號(hào)的正常傳輸無(wú)影響,能在突發(fā)浪涌情況下迅速消耗掉一部分沿著通訊線傳輸?shù)浇涌诘睦擞侩妷憾鸬揭欢ǖ谋Wo(hù)作用。四是接口芯片采用隔離芯片ISO3082DW,它支持兩套獨(dú)立的電源系統(tǒng)供電,輸入回路采用主控回路的電源5V_1/GND_1供電,輸出回路采用通訊回路專有的電源5V_2/GND_2供電,而這2套電源系統(tǒng)是相互隔離的,浪涌電流和浪涌電壓在兩電路之間被有效隔斷。接口電路設(shè)計(jì)原理如圖2所示。
圖2 RS485接口電路及其防浪涌保護(hù)
由于在同一對(duì)總線上通過菊花鏈的方式連接的匯流箱監(jiān)測(cè)裝置數(shù)目較多,如果各個(gè)子站的響應(yīng)速度較慢將降低整個(gè)通訊網(wǎng)絡(luò)的實(shí)時(shí)性。裝置通過快速判斷信息幀停止時(shí)間以及合理簡(jiǎn)化通訊主處理程序的結(jié)構(gòu)和規(guī)模這兩種方式來(lái)提高子站的動(dòng)態(tài)響應(yīng)速度。監(jiān)測(cè)模塊主要通過采用主控芯片STM32的串行通訊外設(shè)UART來(lái)實(shí)現(xiàn)總線通訊功能。由于裝置僅作為從站使用,字節(jié)數(shù)據(jù)的接收可利用UART外設(shè)的接收中斷來(lái)實(shí)現(xiàn),中斷程序流程圖如圖4所示。Time為接收中斷時(shí)鐘變量,Clock為系統(tǒng)時(shí)鐘變量(每隔1ms時(shí)間自增1),RCV_EN為接收使能標(biāo)志,Buffer為接收緩存區(qū),REG為接收到的字節(jié)數(shù)據(jù)。
圖3 UART的接收中斷程序流程
Num_Per_Byte表示單個(gè)字節(jié)的位數(shù),Baud_Rate表示通訊波特率,計(jì)算結(jié)果的時(shí)間單位為ms。
以通訊波特率為4 800baud為例,每個(gè)字節(jié)數(shù)據(jù)共由10位(1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位,無(wú)奇偶校驗(yàn)位)組成。因此,單字節(jié)數(shù)據(jù)傳輸時(shí)間為2.08ms。由于不同通訊波特率下每個(gè)字節(jié)的傳輸時(shí)間不同。因此,不同波特率下幀與幀之間的理論最小時(shí)間間隔也不盡相同。為了提高從站響應(yīng)速度,需要對(duì)幀傳輸?shù)耐V箷r(shí)間進(jìn)行快速而精確地判斷。如果在UART接收中斷中設(shè)置一個(gè)時(shí)間變量Time,每次進(jìn)入接收中斷后都將Time同步至系統(tǒng)時(shí)鐘變量Clock,則當(dāng)總線上有信息幀傳輸時(shí),幀中的每一個(gè)字節(jié)數(shù)據(jù)都將觸發(fā)一次UART接收中斷,進(jìn)而觸發(fā)Time同步至Clock。值得注意的是,由于單字節(jié)數(shù)據(jù)的傳輸同樣需要時(shí)間。因此,在幀傳輸期間,Clock-Time的值并非始終保持為0,而是不斷地從0開始至單字節(jié)數(shù)據(jù)傳輸時(shí)間結(jié)束然后再跳到從0開始如此往復(fù)。當(dāng)幀傳輸結(jié)束后,由于沒有字節(jié)數(shù)據(jù)傳輸無(wú)法觸發(fā)UART接收中斷,Time不能被更新至Clock,Clock-Time的值隨著時(shí)間推移從0開始逐漸增大。原理示意圖如圖4所示。
Modbus協(xié)議規(guī)定兩相鄰信息幀之間的時(shí)間間隔不得小于3.5個(gè)字節(jié)[3]。串行通訊中單字節(jié)數(shù)據(jù)傳輸?shù)臅r(shí)間周期為:
圖4 幀結(jié)束判斷原理
綜上所述,可將Clock-Time的值與某個(gè)事先約定的最小時(shí)間間隔Interval進(jìn)行比較,以此判斷幀是否結(jié)束。但當(dāng)Clock-Time的值小于單字節(jié)數(shù)據(jù)傳輸時(shí)間時(shí),由于無(wú)法判斷幀中的最后一個(gè)字節(jié)是否傳輸完畢。因此,把這個(gè)時(shí)間作為幀結(jié)束判據(jù)的容差時(shí)間,并把這個(gè)容差時(shí)間考慮到實(shí)際判據(jù)的最小時(shí)間間隔中。當(dāng)波特率小于或等于9 600baud時(shí),容差時(shí)間取一個(gè)字節(jié)數(shù)據(jù)傳輸時(shí)間。當(dāng)波特率大于9 600baud時(shí),由于單字節(jié)傳輸時(shí)間已經(jīng)小于本裝置系統(tǒng)時(shí)鐘的單位時(shí)間1ms。因此,容差時(shí)間直接取為1ms即可。各波特率下幀結(jié)束的容差判據(jù)如表1所示,制定實(shí)際判據(jù)的時(shí)間間隔時(shí)其數(shù)值應(yīng)按偏大的方向取整。
表1 各波特率下幀結(jié)束容差判據(jù)
每次進(jìn)入接收中斷后,對(duì)標(biāo)志RCV_EN進(jìn)行判斷,若該標(biāo)志為0則表示信息幀傳輸結(jié)束,接收中斷停止接收新數(shù)據(jù)。當(dāng)通訊主處理程序處理完信息幀后,會(huì)將RCV_EN置1。這樣一來(lái),當(dāng)程序再次進(jìn)入接收中斷后可以開始接收新的信息幀,也就是將接收到的字節(jié)數(shù)據(jù)REG放入緩存區(qū)Buffer中,同時(shí)接收緩存區(qū)指針P自增1。
由于監(jiān)測(cè)模塊涉及到讀取過流、斷路等故障遙信位,讀取電流、電壓等采樣寄存器和設(shè)置相關(guān)配置寄存器。因此,模塊僅需用到Modbus協(xié)議中的02(讀輸入離散量),03(讀多寄存器),16(寫多寄存器)這3個(gè)功能碼。為了簡(jiǎn)化Modbus通訊主處理程序的結(jié)構(gòu),可設(shè)計(jì)為僅針對(duì)功能碼02,03,16進(jìn)行處理,當(dāng)出現(xiàn)其他功能碼則按照非法功能碼處理。進(jìn)入通訊處理程序中后,首先判斷當(dāng)前時(shí)間是否大于幀間最小時(shí)間間隔,否則直接跳出程序不進(jìn)行任何通訊處理。接著將接收使能標(biāo)志RCV_EN置0,阻止接收中斷繼續(xù)接收數(shù)據(jù),并對(duì)接收?qǐng)?bào)文中的子站地址ID、接收字節(jié)個(gè)數(shù)P和CRC校驗(yàn)碼進(jìn)行驗(yàn)證。這些驗(yàn)證通過后,根據(jù)功能碼值來(lái)調(diào)用相關(guān)的例行處理函數(shù),向主站發(fā)送返回幀。在程序處理的最后將緩存區(qū)指針P置0以初始化緩存區(qū),并將接收使能標(biāo)志RCV_EN置1使接收中斷函數(shù)開始接收新的信息幀數(shù)據(jù)。
裝置在4 800baud下的通訊收發(fā)波形如圖5所示。中線左側(cè)為8個(gè)字節(jié)的主站查詢幀,在主站查詢幀右側(cè)持續(xù)10ms左右的高電平為間隔時(shí)段,高電平右側(cè)的波形為從站返回幀。從圖5可見,在4 800baud下主站查詢幀結(jié)束約10ms后,從站立即發(fā)送了返回幀,在嚴(yán)格滿足Modbus標(biāo)準(zhǔn)協(xié)議的基礎(chǔ)上做出了最快的動(dòng)態(tài)響應(yīng)。
圖5 4 800baud下子站通訊響應(yīng)速度測(cè)試
采用了一套新的設(shè)計(jì)方案,將電路按功能和電氣結(jié)構(gòu)劃分為主控電路、采樣電路和通訊電路共計(jì)3部分,且這3部分各成獨(dú)立回路分別采用三套相互隔離的電源供電?;芈放c回路之間的信號(hào)傳輸通過選用合適的電氣隔離器件進(jìn)行安全隔離,顯著降低了裝置在光伏電站的戶外環(huán)境中的故障發(fā)生概率。另外,這種結(jié)構(gòu)設(shè)計(jì)能夠舍棄霍爾傳感器,改用普通電阻器件作為采樣元件,從而顯著降低了成本,提高了采樣線性度并規(guī)避了溫漂問題。在通訊設(shè)計(jì)方面,通過多種措施相結(jié)合來(lái)加強(qiáng)接口電路的防浪涌保護(hù),增強(qiáng)了其可靠性,并通過在接收中斷中設(shè)置同步時(shí)鐘的方式對(duì)通訊響應(yīng)實(shí)時(shí)性做了有效改善。
[1] 周金龍.淺談光伏直流匯流箱智能監(jiān)測(cè)單元技術(shù)方案[J].電氣工程應(yīng)用,2014(02):15-18.
[2] 陳啟軍.嵌入式系統(tǒng)及其應(yīng)用[M].上海:同濟(jì)大學(xué)出版社,2011.
[3] 華镕.從 Modbus 到透明就緒 施耐德電氣工業(yè)網(wǎng)絡(luò)的協(xié)議、設(shè)計(jì)、安裝和應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2008.