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