SCADA系統(tǒng)中交流采樣器設(shè)計(jì)
SCADA(Supervlsory Control and Data Acquisition)系統(tǒng)即數(shù)據(jù)采集與監(jiān)視控制系統(tǒng),是一種以微型計(jì)算機(jī)為核心,綜合利用計(jì)算機(jī)、通信、控制等技術(shù)完成遙控、遙測(cè)、遙信、遙調(diào)(四遙)的控制系統(tǒng):”。由于DSP技術(shù)的發(fā)展,在電力、石油、電氣化鐵路等行業(yè)的SCADA系統(tǒng)中,電量的采集(即遙測(cè)功能)由過(guò)去的基于變送器的直流采樣逐漸向交流采樣過(guò)渡。本文介紹基于TI公司的工業(yè)控制用DSP —TMS320LF2407A和工業(yè)控制中廣泛使用的基于CAN總線的交流采樣器的設(shè)計(jì)。該交流采樣器作為SCADA的功能模塊.具有如下功能特點(diǎn):
(1)計(jì)算功能。對(duì)電壓、電流、有功、無(wú)功、功率因素、頻率、相序等參數(shù)進(jìn)行計(jì)算。
(2)報(bào)警功能。當(dāng)發(fā)生越限、跳閘時(shí)報(bào)警。
(3)錄波功能。錄波功能包括手動(dòng)錄波(錄波正常)和故障錄波。
(4)CAN總線接口功能。采樣系統(tǒng)和上位機(jī)的應(yīng)用層通信協(xié)議選用DeviceNet協(xié)議。
(5)人機(jī)接口功能。擴(kuò)展RS 232口與PC機(jī)連接,可以利用PC機(jī)的超級(jí)終端作采樣系統(tǒng)的顯示器,便于調(diào)試和監(jiān)測(cè)。
1硬件設(shè)計(jì)
1.1系統(tǒng)總體框圖
該交流采樣器采用DSP處理器.與上位機(jī)的通信采用CAN總線。系統(tǒng)框圖如圖1所示。
(1)DSP選用TI公司的TMS320LF2407A,其主要特點(diǎn)為:片內(nèi)32K字(16位字寬)的FLASH,不用外擴(kuò)程序存儲(chǔ)器,帶有一個(gè)CAN口.支持CAN2、OB協(xié)議規(guī)范.一個(gè)RS232通信口,3.3V供電,二個(gè)8通道10位ADC,最小轉(zhuǎn)換時(shí)間500ns(2 MSPS)。
(2)ADC選用MAXIM公司的MAXl25CEAX.14位并行轉(zhuǎn)換,A、B二組8通道,每組4通道同步轉(zhuǎn)換。
(3)選用3.3V供電的MAX3232做RS232接口芯片,CAN收發(fā)器用82C250T,5V和3.3V的電平轉(zhuǎn)換器選用 SN74ALVCl64245。
1.2信號(hào)調(diào)理電路設(shè)計(jì)
在電力系統(tǒng)變電所,為實(shí)現(xiàn)對(duì)電壓電流的監(jiān)測(cè),先將原邊的高電壓或大電流通過(guò)一級(jí)電力型電壓互感器或電力型電流互感器變換為次邊的100V電壓或5A電流信號(hào)。這些信號(hào)引入到變電站的控制室,供控制系統(tǒng)設(shè)備使用。在交流采樣中.要采樣的信號(hào)就是前一級(jí)的 100V或5A信號(hào)。這時(shí)還需要引入第二級(jí)互感器,將100V或5A信號(hào)變換為DSP或MCU可以處理的小信號(hào)。一般將100V電壓信號(hào)或5A電流信號(hào)經(jīng)電壓或電流互感器變換為2mA左右的電流信號(hào)。圖2是第二級(jí)的電壓互感器的信號(hào)調(diào)理電路,互感器的變比為IOOV/2mA,輸出電壓Vout等于次邊電流I2乘以電阻R503,即Vout=R503×I2,C502起濾波作用,后面的運(yùn)放接成跟隨器模式,起信號(hào)隔離緩沖作用。因?yàn)镸AXl25的輸入模擬電壓為—5V~+5V,Vout的最大有效值為3.535V,所以要根據(jù)這個(gè)原則選取R503的阻值。為保護(hù)LM324,可以在運(yùn)放的輸入端并聯(lián)7V左右的雙向穩(wěn)壓管。
圖2中R503=1 209Ω,輸入100V時(shí),輸出Vout=1 209×0.002=2.418V。
1.3電平轉(zhuǎn)移電路分析
LF2407A的工作電壓為3.3V,A/D轉(zhuǎn)換器MAXl25的工作電壓為5V.不能直接接口,需要引入電平轉(zhuǎn)換電路,這里選取16位的SN74ALVCl64245做電平轉(zhuǎn)換器。轉(zhuǎn)換器左側(cè)B端是5V的邏輯電平.與MAXl25 A/D轉(zhuǎn)換器接口;右側(cè)A端是3.3V的邏輯電平,與LF2407A接口。具體電路見(jiàn)圖3。
(1)SN74ALVCl64245的輸出允許OE端接LF2407A的IS信號(hào)端.DSP以I/O口方式訪問(wèn)MAXl25。當(dāng)DSP訪問(wèn)MAXl25時(shí),IS信號(hào)有效,ALVCl64245的輸出允許OE端有效,ALVCl64245工作;其他情況下,ALVCl64245的數(shù)據(jù)線呈高阻狀態(tài)。
(2)SN74ALVCl64245的1DIR、2DIR接LF2407A的19腳W/R,DSP寫(xiě)時(shí)W/R=DIR-4245=1。ALVCl64245的數(shù)據(jù)從A到B;DSP讀時(shí)W/R=DIR-4245=0,ALVCl64245的數(shù)據(jù)從B到A;
(3)SN74ALVCl64245的A端數(shù)據(jù)線接DSP的數(shù)據(jù)線,B端接MAXl25的數(shù)據(jù)線。
[!--empirenews.page--]1.4 A/D轉(zhuǎn)換電路設(shè)計(jì)
為實(shí)現(xiàn)高精度的交流采樣,本系統(tǒng)的ADC選用MAXIM公司的14位MAXl25CEAX。有關(guān)該芯片的資料參見(jiàn)文獻(xiàn)[6],圖4為具體應(yīng)用電路。
(1)CHlA~CH4A、CHlB~CH4B分別接PT/CT(電壓/電流互感器)調(diào)理電路的輸出電壓。DO~D13接電平轉(zhuǎn)移器件的5V數(shù)據(jù)線,經(jīng)電平轉(zhuǎn)移后接DSP的D0~D13。
(2)DSP的IOPF6直接接MAXl25的CONVST端,IOPF6端發(fā)一個(gè)正脈沖啟動(dòng)一次A/D轉(zhuǎn)換。轉(zhuǎn)換結(jié)束時(shí),MAXl25的INT端輸出低電平,通過(guò)5V—3V電平轉(zhuǎn)移電路接到DSP的IOPA2(XINn)腳,程序查詢IOPA2(ⅪNT1)是否為低電平,為低則讀取轉(zhuǎn)換結(jié)果。
(3)DSP的IS腳直接接MAXl25的CS端.DSP將MAXl25視為一個(gè)I/O端口,用端口指令訪問(wèn)。DSP的電平可以直接驅(qū)動(dòng)MAXl25的控制端。
下面是對(duì)MAXl25操作的DSP C語(yǔ)言實(shí)例。
(1)寫(xiě)命令到MAXl25
outport(MAXl25,0x03);//input Mux A/Four—Channel
(2)發(fā)出啟動(dòng)MAXl25進(jìn)行A/D轉(zhuǎn)換的脈沖
MAXl25CONV_HIGH;//IOPF6=1
MAXl25CONV_LOW;//需要大于30ns的負(fù)脈沖
MAXl25CONV_HIGH;//上升沿啟動(dòng)轉(zhuǎn)換
(3)查詢IOPA2(ⅪNT1)是否為低電平(轉(zhuǎn)換完成)
while(*PADATDIR&0X0004)
{KICKDOG;}
(4)讀轉(zhuǎn)換結(jié)果
for(i=0;i <4;i++)//read result about Ila、Va、Ib、Vb
{
ADC_Result[i]=portl;
Ch_RealData[i][Dots_Index]=(ADC—Result[i ]<<2)/4;
//14 bits dala change to 16 hits data
}
[!--empirenews.page--]1.5 CAN總線接口電路設(shè)計(jì)
LP2407A集成了CAN控制器,擴(kuò)展一片CAN收發(fā)器就構(gòu)成了CAN接口電路。收發(fā)器選用Philips公司的P82C250,具體電路如圖5。
P82C250是5V電源供電,與LF2407A連接要加電平轉(zhuǎn)移電路。R301、D301完成3.3V電平向5V電平轉(zhuǎn)移;R302、R303完成5V電平向3.3V電平轉(zhuǎn)移。
其他如串口擴(kuò)展電路、SRAM擴(kuò)展電路、液晶擴(kuò)展電路等為通用電路.在此不做闡述。
2軟件設(shè)計(jì)
2.1嵌入式軟件設(shè)計(jì)思想
借鑒Windows編程中基于消息驅(qū)動(dòng)的思想,在嵌入式軟件中引入基于消息的處理方泫。嵌入式系統(tǒng)的消息可以分為:鍵盤(pán)輸入命令、系統(tǒng)接口電路產(chǎn)生的狀態(tài)信息(如報(bào)警、越限等)以及上位機(jī)命令。消息的接收采用中斷方式,確保消息可靠及時(shí)的接收;時(shí)間要求非??量痰南?,如電機(jī)保護(hù),在中斷直接處理;其他消息在主程序中對(duì)消息進(jìn)行解析執(zhí)行。程序設(shè)計(jì)思想可以用圖6表示。
本系統(tǒng)通過(guò)CAN總線接收上位機(jī)的命令(接收消息)。CAN接收方式采用中斷方式.當(dāng)上位機(jī)下達(dá)命令時(shí),該裝置通過(guò)中斷及時(shí)接收.實(shí)時(shí)任務(wù)直接在中斷程序中完成,滿足系統(tǒng)的實(shí)時(shí)性要求;非實(shí)時(shí)任務(wù)則將該命令存入消息(或命令)緩沖區(qū),等待在主函數(shù)中查詢處理。
2.2程序整體框圖
整個(gè)程序由主函數(shù)、功能函數(shù)、CAN通信中斷函數(shù)、DSP的定時(shí)器T1的周期中斷(采樣中斷)函數(shù)構(gòu)成。
DSP的CAN控制器接收中斷采用DSP的內(nèi)核中斷1;定時(shí)器T1的周期中斷采用DSP的內(nèi)核中斷2,用來(lái)定期觸發(fā)MAXl25進(jìn)行A/D轉(zhuǎn)換。關(guān)于LF2407A的中斷編程可參見(jiàn)文獻(xiàn)[1~2]。
主函數(shù)main()的流程如圖7所示。
主函數(shù)先初始化系統(tǒng),啟動(dòng)實(shí)時(shí)采樣,實(shí)時(shí)采樣一直運(yùn)行并始終保持有多個(gè)周期的波形數(shù)據(jù),供故障錄波后觀察故障點(diǎn)前后幾個(gè)周期的波形,以便分析故障原因。然后進(jìn)入消息處理的循環(huán)程序。從流程圖可以看到,程序先檢查消息(或命令)緩沖區(qū),若有消息/命令,則調(diào)用相應(yīng)功能函數(shù)執(zhí)行命令,判斷是否到計(jì)算周期以確定是否調(diào)用計(jì)算函數(shù),然后回到消息處理入口;若沒(méi)有消息等待處理,則判斷100ms計(jì)算周期是否到(計(jì)算周期可以調(diào)整)。若到,則計(jì)算一遍電參數(shù),判斷是否有越限情況。若有越限則通知上位機(jī),然后返回到消息處理入口,重復(fù)開(kāi)始消息(或命令)的解析執(zhí)行。消息接收程序以中斷方式在后臺(tái)運(yùn)行。
2.3功能函數(shù)設(shè)計(jì)
功能函數(shù)由主函數(shù)main()調(diào)用,下面介紹幾種主要的功能函數(shù)。限于篇幅,函數(shù)沒(méi)有展開(kāi),只列出函數(shù)名。
計(jì)算電參數(shù)的函數(shù):void Calc();
向上位機(jī)傳送電參數(shù)值的函數(shù):unsigned int Send_AcqData();
執(zhí)行參數(shù)設(shè)定命令的函數(shù):unsigned int Set_Parameter();
向上位機(jī)傳送報(bào)警數(shù)據(jù)的函數(shù):unsigned Int Send_AlarmnData();
向上位機(jī)傳送錄波數(shù)據(jù)的函數(shù):unsigned Int Send_WaveRecordData();
本交流采樣系統(tǒng)已運(yùn)行在鐵路水電遠(yuǎn)動(dòng)系統(tǒng)的FTU(Field Terminal Unit)中,與上位機(jī)通信的應(yīng)用層協(xié)議采用DeviceNet協(xié)議。實(shí)際證明該系統(tǒng)功能正常、性能穩(wěn)定。