電氣裝備實驗二電氣裝備計算機(jī)控制系統(tǒng)設(shè)計_第1頁
電氣裝備實驗二電氣裝備計算機(jī)控制系統(tǒng)設(shè)計_第2頁
電氣裝備實驗二電氣裝備計算機(jī)控制系統(tǒng)設(shè)計_第3頁
電氣裝備實驗二電氣裝備計算機(jī)控制系統(tǒng)設(shè)計_第4頁
電氣裝備實驗二電氣裝備計算機(jī)控制系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、專業(yè):電氣工程與自動化姓名: _ _學(xué)號: 日期: 2015.6 地點: 教二115 實驗報告課程名稱: 電氣裝備計算機(jī)控制 指導(dǎo)老師:_ _成績:_實驗名稱:電氣裝備計算機(jī)控制系統(tǒng)設(shè)計 實驗類型:_ 同組學(xué)生姓名: 一、實驗?zāi)康暮鸵螅ū靥睿┒?、實驗?nèi)容和原理(必填)三、主要儀器設(shè)備(必填)四、操作方法和實驗步驟五、實驗數(shù)據(jù)記錄和處理六、實驗結(jié)果與分析(必填)七、討論、心得實驗二電氣裝備計算機(jī)控制系統(tǒng)設(shè)計一、實驗?zāi)康?、理解數(shù)據(jù)采集系統(tǒng)的硬件原理,了解數(shù)據(jù)采集卡的技術(shù)指標(biāo)和驅(qū)動函數(shù);2、掌握PCI1202數(shù)據(jù)采集卡獲取數(shù)據(jù)的方法,數(shù)據(jù)采集軟件編寫的方法;3、掌握計算機(jī)控制技術(shù),學(xué)會電氣裝備計

2、算機(jī)控制系統(tǒng)的軟件和硬件設(shè)計,熟悉控制系統(tǒng)的調(diào)試方法。二、實驗內(nèi)容1、使用數(shù)據(jù)采集系統(tǒng)進(jìn)行各路數(shù)據(jù)采集,對數(shù)據(jù)采集的結(jié)果進(jìn)行記錄和分析;2、利用采集卡數(shù)據(jù)輸入輸出功能設(shè)計一個簡易控制三相異步電機(jī)正反轉(zhuǎn)的控制系統(tǒng)。 三、實驗原理 在電氣裝備等各個應(yīng)用領(lǐng)域都存在著數(shù)據(jù)采集、存儲、處理與控制問題, 常常需要對電流、電壓、溫度、壓力、流量、位移等模擬量進(jìn)行采集,通過模/數(shù)(A /D)轉(zhuǎn)換,數(shù)據(jù)處理,最后把結(jié)果顯示出來或者進(jìn)行相應(yīng)的控制處理。數(shù)據(jù)采集系統(tǒng)的信號采集部分一般包括信號輸入和調(diào)理(信號衰減/放大與濾波)、采樣/保持、模/數(shù)(A /D)轉(zhuǎn)換、數(shù)據(jù)存儲(RAM)等,再通過接口傳輸?shù)接嬎銠C(jī),由計算機(jī)

3、進(jìn)行信號的分析處理和顯示。三相異步電機(jī)的轉(zhuǎn)子是被定子的三相繞組通入三相交流電產(chǎn)生的旋轉(zhuǎn)磁場拖動的,三相繞組合成的旋轉(zhuǎn)磁場向哪個方向轉(zhuǎn),轉(zhuǎn)子就向哪個方向轉(zhuǎn)。所以,只要將三相電源線的任意兩根線換接,電機(jī)定子的旋轉(zhuǎn)磁場就被改變了,那么電機(jī)轉(zhuǎn)子的轉(zhuǎn)動方向也將跟隨旋轉(zhuǎn)磁場的方向改變。數(shù)據(jù)采集主電路及控制電路實驗接線圖四、實驗步驟1. 研究并設(shè)計電機(jī)的數(shù)據(jù)采集及控制主電路;2. 根據(jù)設(shè)計的電路完成實驗系統(tǒng)的硬件接線;3. 通過軟件平臺進(jìn)行編程、調(diào)試實現(xiàn)對三相異步電機(jī)的數(shù)據(jù)采集及正反轉(zhuǎn)控制;4. 在實現(xiàn)最簡控制電路的基礎(chǔ)上進(jìn)行擴(kuò)展,如增加電機(jī)過壓保護(hù)、過流保護(hù)、繼電器互鎖等功能。(選做探究)五、實驗例程 程

4、序段/-#include #pragma hdrstop#include Unit2.h#include P1202.h#include P1202u.cpp/-#pragma package(smart_init)#pragma resource *.dfmTForm1 *Form1;Word TotalBoards;說明:該程序段包含相關(guān)頭文件說明與編譯預(yù)處理指令,同時定義Word型變量TotalBoards,用于計數(shù)板卡總數(shù)。程序段/-_fastcall TForm1:TForm1(TComponent* Owner) : TForm(Owner)void _fastcall TForm

5、1:FormCreate(TObject *Sender) Word RetValue; /定義一個類型變量 RetValue = P1202_DriverInit(&TotalBoards); /板卡驅(qū)動初始化函數(shù),檢測有幾個板卡,并賦給變量RetValue記錄返回值-錯誤代碼 if (RetValue != 0) ShowMessage(ErrorCode: + IntToStr(RetValue) + nDriver Initial Error!); Button1-Enabled = False; eSelect-Text = 0; /選擇哪個板卡,從0開始計數(shù),表示第一塊 eTota

6、l-Text = IntToStr(TotalBoards); /一共有多少板卡 UpDown1-Max = (Word)(TotalBoards - 1); /有多少板卡,其值減1,因為從0計數(shù) UpDown1-Min = 0; if (TotalBoards Enabled = False; eSelect-Enabled = False; 說明:該程序段為窗口初始化函數(shù)及P1202驅(qū)動初始化。首先定義一個Word類型變量RetValue,然后調(diào)用板卡驅(qū)動初始化函數(shù)P1202_DriverInit(),檢測有幾個板卡,并將值賦給變量RetValue,記錄返回值。如果RetValue !=

7、0,即出現(xiàn)錯誤代碼,則顯示錯誤信息,其中包含IntToStr()函數(shù)調(diào)用,用于將檢測到的總板卡數(shù)轉(zhuǎn)換為字符串顯示,同時按鈕Button1不使能。eSelect-Text用于板卡選擇,初始值賦為0表示從0開始計數(shù),即0表示第一個板卡。eTotal-Text用于記錄一共有多少板卡,所賦值為實際板卡總數(shù)。UpDown1-Max用于記錄板卡數(shù)計數(shù)最大數(shù)。UpDown1-Min用于記錄板卡計數(shù)最小值,為0。如果板卡總數(shù)少于2,則不允許選用。程序段void _fastcall TForm1:Button2Click(TObject *Sender) Close();/關(guān)閉窗體/-說明:該程序段用于說明Bu

8、tton2按鍵功能,即關(guān)閉窗體。程序段void _fastcall TForm1:Button1Click(TObject *Sender) Word RetValue, DF, DW, AC, Dodata, k; float DA; wAdNumber = (Word)StrToInt(eC0AdNums-Text); DF = (Word)StrToInt(eC0DaFreq-Text); DW = (Word)StrToInt(eC0DaWave-Text); AC = (Word)StrToInt(eC0AdClock-Text); DA = StrToFloat(eC0DaAmp-

9、Text); for (k=0; kCaption = IntToStr(wAdNumber); XMax2-Caption = XMax-Caption; XMax3-Caption = XMax-Caption; RetValue = P1202_ActiveBoard( (Word)StrToInt(eSelect-Text) ); 調(diào)用函數(shù)激活板卡,同時將值返回給retvalue if (RetValue != 0 )如果返回值錯誤 ShowMessage(AnsiString)Active Borad Error ! + nErrorCode: + IntToStr(RetValue

10、); return; Dodata= 0x2; RetValue = P1202_Do(Dodata); /傳送一16 位的值到Digital Output輸出 if (RetValue != 0 ) ShowMessage(AnsiString)Digital Output Error ! + nErrorCode: + IntToStr(RetValue); return; RetValue = P1202_M_FUN_3(DF, DW, DA, AC, wAdNumber, wChannel, wConfigCode, fAdBuf, -10, 10); /連續(xù)平滑的A/D,D/A轉(zhuǎn)換

11、if (RetValue != 0 ) ShowMessage(AnsiString)M_Fun_3 Error! + nErrorCode: + IntToStr(RetValue) ); return; DrawWaveF( -5, 5, fAdBuf, 0, wAdNumber, C0Image0 ); DrawWaveF( -5, 5, fAdBuf, wAdNumber, wAdNumber, C0Image1 ); DrawWaveF( -5, 5, fAdBuf, wAdNumber * 2, wAdNumber, C0Image2 );/連續(xù)的監(jiān)視數(shù)據(jù) lbC0Log-Item

12、s-Clear(); for (k=0; kItems-Add(AnsiString) Ch0: + FloatToStr(fAdBufk).SubString(1,5) + Ch1: + FloatToStr(fAdBufwAdNumber + k).SubString(1,5) + Ch2: + FloatToStr(fAdBufwAdNumber * 2 + k).SubString(1,5) );/-說明:該程序段用于說明Button1按鍵功能及實現(xiàn)。動態(tài)監(jiān)視并采集數(shù)據(jù),根據(jù)采集到的數(shù)據(jù)繪制波形。部分說明見以上注釋。程序段void _fastcall TForm1:FormClose(

13、TObject *Sender, TCloseAction &Action) P1202_DriverClose;/-說明:該程序段用于P1202驅(qū)動關(guān)閉動作。程序段void _fastcall TForm1:Button3Click(TObject *Sender) Word RetValue, DF, DW, AC, Dodata, k; float DA; wAdNumber = (Word)StrToInt(eC0AdNums-Text); DF = (Word)StrToInt(eC0DaFreq-Text); DW = (Word)StrToInt(eC0DaWave-Text);

14、 AC = (Word)StrToInt(eC0AdClock-Text); DA = StrToFloat(eC0DaAmp-Text); for (k=0; kCaption = IntToStr(wAdNumber); XMax2-Caption = XMax-Caption; XMax3-Caption = XMax-Caption; RetValue = P1202_ActiveBoard( (Word)StrToInt(eSelect-Text) ); if (RetValue != 0 ) ShowMessage(AnsiString)Active Borad Error ! +

15、 nErrorCode: + IntToStr(RetValue); return; Dodata= 0x4; RetValue = P1202_Do(Dodata); if (RetValue != 0 ) ShowMessage(AnsiString)Digital Output Error ! + nErrorCode: + IntToStr(RetValue); return; RetValue = P1202_M_FUN_3(DF, DW, DA, AC, wAdNumber, wChannel, wConfigCode, fAdBuf, -10, 10); if (RetValue

16、 != 0 ) ShowMessage(AnsiString)M_Fun_1 Error! + nErrorCode: + IntToStr(RetValue) ); return; DrawWaveF( -5, 5, fAdBuf, 0, wAdNumber, C0Image0 ); DrawWaveF( -5, 5, fAdBuf, wAdNumber, wAdNumber, C0Image1 ); DrawWaveF( -5, 5, fAdBuf, wAdNumber * 2, wAdNumber, C0Image2 ); lbC0Log-Items-Clear(); for (k=0;

17、 kItems-Add(AnsiString) Ch0: + FloatToStr(fAdBufk).SubString(1,5) + Ch1: + FloatToStr(fAdBufwAdNumber + k).SubString(1,5) + Ch2: + FloatToStr(fAdBufwAdNumber * 2 + k).SubString(1,5) );/-說明:該程序段功能與程序段功能類似,描述Button3按鍵功能,動態(tài)監(jiān)視并采集數(shù)據(jù),根據(jù)采集到的數(shù)據(jù)繪制波形。程序段void _fastcall TForm1:Button4Click(TObject *Sender)Word

18、RetValue, DF, DW, AC, Dodata, k; float DA; wAdNumber = (Word)StrToInt(eC0AdNums-Text); DF = (Word)StrToInt(eC0DaFreq-Text); DW = (Word)StrToInt(eC0DaWave-Text); AC = (Word)StrToInt(eC0AdClock-Text); DA = StrToFloat(eC0DaAmp-Text); for (k=0; kCaption = IntToStr(wAdNumber); XMax2-Caption = XMax-Captio

19、n; XMax3-Caption = XMax-Caption; RetValue = P1202_ActiveBoard( (Word)StrToInt(eSelect-Text) ); if (RetValue != 0 ) ShowMessage(AnsiString)Active Borad Error ! + nErrorCode: + IntToStr(RetValue); return; Dodata= 0x0; RetValue = P1202_Do(Dodata); if (RetValue != 0 ) ShowMessage(AnsiString)Digital Outp

20、ut Error ! + nErrorCode: + IntToStr(RetValue); return; RetValue = P1202_M_FUN_3(DF, DW, DA, AC, wAdNumber, wChannel, wConfigCode, fAdBuf, -10, 10); if (RetValue != 0 ) ShowMessage(AnsiString)M_Fun_1 Error! + nErrorCode: + IntToStr(RetValue) ); return; DrawWaveF( -5, 5, fAdBuf, 0, wAdNumber, C0Image0

21、 ); DrawWaveF( -5, 5, fAdBuf, wAdNumber, wAdNumber, C0Image1 ); DrawWaveF( -5, 5, fAdBuf, wAdNumber * 2, wAdNumber, C0Image2 ); lbC0Log-Items-Clear(); for (k=0; kItems-Add(AnsiString) Ch0: + FloatToStr(fAdBufk).SubString(1,5) + Ch1: + FloatToStr(fAdBufwAdNumber + k).SubString(1,5) + Ch2: + FloatToSt

22、r(fAdBufwAdNumber * 2 + k).SubString(1,5) );/-說明:該程序段功能與程序段功能類似,描述Button4按鍵功能,動態(tài)監(jiān)視并采集數(shù)據(jù),根據(jù)采集到的數(shù)據(jù)繪制波形。完整代碼如下:/-#include #pragma hdrstop#include Unit2.h#include P1202.h#include P1202u.cpp/-#pragma package(smart_init)#pragma resource *.dfmTForm1 *Form1;Word TotalBoards;/-_fastcall TForm1:TForm1(TCompon

23、ent* Owner) : TForm(Owner)/-void _fastcall TForm1:FormCreate(TObject *Sender) Word RetValue; RetValue = P1202_DriverInit(&TotalBoards); if (RetValue != 0) ShowMessage(ErrorCode: + IntToStr(RetValue) + nDriver Initial Error!); Button1-Enabled = False; eSelect-Text = 0; eTotal-Text = IntToStr(TotalBoa

24、rds); UpDown1-Max = (Word)(TotalBoards - 1); UpDown1-Min = 0; if (TotalBoards Enabled = False; eSelect-Enabled = False; /-void _fastcall TForm1:Button2Click(TObject *Sender) Close();/-void _fastcall TForm1:Button1Click(TObject *Sender) Word RetValue, DF, DW, AC, Dodata, k; float DA; wAdNumber = (Wor

25、d)StrToInt(eC0AdNums-Text); DF = (Word)StrToInt(eC0DaFreq-Text); DW = (Word)StrToInt(eC0DaWave-Text); AC = (Word)StrToInt(eC0AdClock-Text); DA = StrToFloat(eC0DaAmp-Text); for (k=0; kCaption = IntToStr(wAdNumber); XMax2-Caption = XMax-Caption; XMax3-Caption = XMax-Caption; RetValue = P1202_ActiveBoa

26、rd( (Word)StrToInt(eSelect-Text) ); if (RetValue != 0 ) ShowMessage(AnsiString)Active Borad Error ! + nErrorCode: + IntToStr(RetValue); return; Dodata= 0x2; RetValue = P1202_Do(Dodata); if (RetValue != 0 ) ShowMessage(AnsiString)Digital Output Error ! + nErrorCode: + IntToStr(RetValue); return; RetV

27、alue = P1202_M_FUN_3(DF, DW, DA, AC, wAdNumber, wChannel, wConfigCode, fAdBuf, -10, 10); if (RetValue != 0 ) ShowMessage(AnsiString)M_Fun_3 Error! + nErrorCode: + IntToStr(RetValue) ); return; DrawWaveF( -5, 5, fAdBuf, 0, wAdNumber, C0Image0 ); DrawWaveF( -5, 5, fAdBuf, wAdNumber, wAdNumber, C0Image

28、1 ); DrawWaveF( -5, 5, fAdBuf, wAdNumber * 2, wAdNumber, C0Image2 ); lbC0Log-Items-Clear(); for (k=0; kItems-Add(AnsiString) Ch0: + FloatToStr(fAdBufk).SubString(1,5) + Ch1: + FloatToStr(fAdBufwAdNumber + k).SubString(1,5) + Ch2: + FloatToStr(fAdBufwAdNumber * 2 + k).SubString(1,5) );/-void _fastcal

29、l TForm1:FormClose(TObject *Sender, TCloseAction &Action) P1202_DriverClose;/-void _fastcall TForm1:Button3Click(TObject *Sender) Word RetValue, DF, DW, AC, Dodata, k; float DA; wAdNumber = (Word)StrToInt(eC0AdNums-Text); DF = (Word)StrToInt(eC0DaFreq-Text); DW = (Word)StrToInt(eC0DaWave-Text); AC =

30、 (Word)StrToInt(eC0AdClock-Text); DA = StrToFloat(eC0DaAmp-Text); for (k=0; kCaption = IntToStr(wAdNumber); XMax2-Caption = XMax-Caption; XMax3-Caption = XMax-Caption; RetValue = P1202_ActiveBoard( (Word)StrToInt(eSelect-Text) ); if (RetValue != 0 ) ShowMessage(AnsiString)Active Borad Error ! + nErr

31、orCode: + IntToStr(RetValue); return; Dodata= 0x4; RetValue = P1202_Do(Dodata); if (RetValue != 0 ) ShowMessage(AnsiString)Digital Output Error ! + nErrorCode: + IntToStr(RetValue); return; RetValue = P1202_M_FUN_3(DF, DW, DA, AC, wAdNumber, wChannel, wConfigCode, fAdBuf, -10, 10); if (RetValue != 0

32、 ) ShowMessage(AnsiString)M_Fun_1 Error! + nErrorCode: + IntToStr(RetValue) ); return; DrawWaveF( -5, 5, fAdBuf, 0, wAdNumber, C0Image0 );DrawWaveF( -5, 5, fAdBuf, wAdNumber, wAdNumber, C0Image1 ); DrawWaveF( -5, 5, fAdBuf, wAdNumber * 2, wAdNumber, C0Image2 ); lbC0Log-Items-Clear(); for (k=0; kItem

33、s-Add(AnsiString) Ch0: + FloatToStr(fAdBufk).SubString(1,5) + Ch1: + FloatToStr(fAdBufwAdNumber + k).SubString(1,5) + Ch2: + FloatToStr(fAdBufwAdNumber * 2 + k).SubString(1,5) );/-void _fastcall TForm1:Button4Click(TObject *Sender)Word RetValue, DF, DW, AC, Dodata, k; float DA; wAdNumber = (Word)Str

34、ToInt(eC0AdNums-Text); DF = (Word)StrToInt(eC0DaFreq-Text); DW = (Word)StrToInt(eC0DaWave-Text); AC = (Word)StrToInt(eC0AdClock-Text); DA = StrToFloat(eC0DaAmp-Text); for (k=0; kCaption = IntToStr(wAdNumber); XMax2-Caption = XMax-Caption; XMax3-Caption = XMax-Caption; RetValue = P1202_ActiveBoard( (

35、Word)StrToInt(eSelect-Text) ); if (RetValue != 0 ) ShowMessage(AnsiString)Active Borad Error ! + nErrorCode: + IntToStr(RetValue); return; Dodata= 0x0; RetValue = P1202_Do(Dodata); if (RetValue != 0 ) ShowMessage(AnsiString)Digital Output Error ! + nErrorCode: + IntToStr(RetValue); return; RetValue

36、= P1202_M_FUN_3(DF, DW, DA, AC, wAdNumber, wChannel, wConfigCode, fAdBuf, -10, 10); if (RetValue != 0 ) ShowMessage(AnsiString)M_Fun_1 Error! + nErrorCode: + IntToStr(RetValue) ); return; DrawWaveF( -5, 5, fAdBuf, 0, wAdNumber, C0Image0 ); DrawWaveF( -5, 5, fAdBuf, wAdNumber, wAdNumber, C0Image1 );

37、DrawWaveF( -5, 5, fAdBuf, wAdNumber * 2, wAdNumber, C0Image2 ); lbC0Log-Items-Clear(); for (k=0; kItems-Add(AnsiString) Ch0: + FloatToStr(fAdBufk).SubString(1,5) + Ch1: + FloatToStr(fAdBufwAdNumber + k).SubString(1,5) + Ch2: + FloatToStr(fAdBufwAdNumber * 2 + k).SubString(1,5) );/-七、實驗結(jié)果記錄電機(jī)正轉(zhuǎn)時三相電壓波形電機(jī)反轉(zhuǎn)時三相電壓波形電機(jī)停轉(zhuǎn)時三相電壓波形八、思考和練習(xí) 1.繼電器與接觸器的區(qū)別是什么?答:繼電器用來保證電力系統(tǒng)設(shè)備的安全運行,屬于二次設(shè)備。交直流方式的都有,可以根據(jù)一定的電氣量或非電量進(jìn)行整定,當(dāng)被保護(hù)設(shè)備或者回

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論