欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    电气装备实验二电气装备计算机控制系统设计(共17页).doc

    • 资源ID:14444488       资源大小:1.01MB        全文页数:17页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    电气装备实验二电气装备计算机控制系统设计(共17页).doc

    精选优质文档-倾情为你奉上专业:电气工程与自动化姓名: _ _学号: 日期: 2015.6 地点: 教二115 实验报告课程名称: 电气装备计算机控制 指导老师:_ _成绩:_实验名称:电气装备计算机控制系统设计 实验类型:_ 同组学生姓名: 一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得实验二  电气装备计算机控制系统设计一、实验目的 1、理解数据采集系统的硬件原理,了解数据采集卡的技术指标和驱动函数;2、掌握PCI1202数据采集卡获取数据的方法,数据采集软件编写的方法;3、掌握计算机控制技术,学会电气装备计算机控制系统的软件和硬件设计,熟悉控制系统的调试方法。二、实验内容1、使用数据采集系统进行各路数据采集,对数据采集的结果进行记录和分析;2、利用采集卡数据输入输出功能设计一个简易控制三相异步电机正反转的控制系统。 三、实验原理    在电气装备等各个应用领域都存在着数据采集、存储、处理与控制问题, 常常需要对电流、电压、温度、压力、流量、位移等模拟量进行采集,通过模/数(A /D)转换,数据处理,最后把结果显示出来或者进行相应的控制处理。数据采集系统的信号采集部分一般包括信号输入和调理(信号衰减/放大与滤波)、采样/保持、模/数(A /D)转换、数据存储(RAM)等,再通过接口传输到计算机,由计算机进行信号的分析处理和显示。三相异步电机的转子是被定子的三相绕组通入三相交流电产生的旋转磁场拖动的,三相绕组合成的旋转磁场向哪个方向转,转子就向哪个方向转。所以,只要将三相电源线的任意两根线换接,电机定子的旋转磁场就被改变了,那么电机转子的转动方向也将跟随旋转磁场的方向改变。数据采集主电路及控制电路实验接线图四、实验步骤1. 研究并设计电机的数据采集及控制主电路;2. 根据设计的电路完成实验系统的硬件接线;3. 通过软件平台进行编程、调试实现对三相异步电机的数据采集及正反转控制;4. 在实现最简控制电路的基础上进行扩展,如增加电机过压保护、过流保护、继电器互锁等功能。(选做探究)五、实验例程 程序段/-#include <vcl.h>#pragma hdrstop#include "Unit2.h"#include "P1202.h"#include "P1202u.cpp"/-#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;Word TotalBoards;说明:该程序段包含相关头文件说明与编译预处理指令,同时定义Word型变量TotalBoards,用于计数板卡总数。程序段/-_fastcall TForm1:TForm1(TComponent* Owner) : TForm(Owner)void _fastcall TForm1:FormCreate(TObject *Sender) Word RetValue; /定义一个类型变量 RetValue = P1202_DriverInit(&TotalBoards); /板卡驱动初始化函数,检测有几个板卡,并赋给变量RetValue记录返回值-错误代码 if (RetValue != 0) ShowMessage("ErrorCode:" + IntToStr(RetValue) + "nDriver Initial Error!"); Button1->Enabled = False; eSelect->Text = "0" /选择哪个板卡,从0开始计数,表示第一块 eTotal->Text = IntToStr(TotalBoards); /一共有多少板卡 UpDown1->Max = (Word)(TotalBoards - 1); /有多少板卡,其值减1,因为从0计数 UpDown1->Min = 0; if (TotalBoards < 2) /若板卡数少于2,不允许选用 UpDown1->Enabled = False; eSelect->Enabled = False; 说明:该程序段为窗口初始化函数及P1202驱动初始化。首先定义一个Word类型变量RetValue,然后调用板卡驱动初始化函数P1202_DriverInit(),检测有几个板卡,并将值赋给变量RetValue,记录返回值。如果RetValue != 0,即出现错误代码,则显示错误信息,其中包含IntToStr()函数调用,用于将检测到的总板卡数转换为字符串显示,同时按钮Button1不使能。eSelect->Text用于板卡选择,初始值赋为0表示从0开始计数,即0表示第一个板卡。eTotal->Text用于记录一共有多少板卡,所赋值为实际板卡总数。UpDown1->Max用于记录板卡数计数最大数。UpDown1->Min用于记录板卡计数最小值,为0。如果板卡总数少于2,则不允许选用。程序段void _fastcall TForm1:Button2Click(TObject *Sender) Close();/关闭窗体/-说明:该程序段用于说明Button2按键功能,即关闭窗体。程序段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->Text); for (k=0; k<=31; k+) wChannelk = 0; wConfigCodek = 0; wChannel0 = 1; wChannel1 = 1; wChannel2 = 1; XMax->Caption = IntToStr(wAdNumber); XMax2->Caption = XMax->Caption; XMax3->Caption = XMax->Caption; RetValue = P1202_ActiveBoard( (Word)StrToInt(eSelect->Text) ); 调用函数激活板卡,同时将值返回给retvalue if (RetValue != 0 )如果返回值错误 ShowMessage(AnsiString)"Active Borad Error !" + "nErrorCode:" + IntToStr(RetValue); 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); /连续平滑的A/D,D/A转换 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 );/连续的监视数据 lbC0Log->Items->Clear(); for (k=0; k<=wAdNumber -1; k+) /根据采集的数据画波形 lbC0Log->Items->Add(AnsiString) "Ch0: " + FloatToStr(fAdBufk).SubString(1,5) + " Ch1: " + FloatToStr(fAdBufwAdNumber + k).SubString(1,5) + " Ch2: " + FloatToStr(fAdBufwAdNumber * 2 + k).SubString(1,5) );/-说明:该程序段用于说明Button1按键功能及实现。动态监视并采集数据,根据采集到的数据绘制波形。部分说明见以上注释。程序段void _fastcall TForm1:FormClose(TObject *Sender, TCloseAction &Action) P1202_DriverClose;/-说明:该程序段用于P1202驱动关闭动作。程序段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 = (Word)StrToInt(eC0AdClock->Text); DA = StrToFloat(eC0DaAmp->Text); for (k=0; k<=31; k+) wChannelk = 0; wConfigCodek = 0; wChannel0 = 1; wChannel1 = 1; wChannel2 = 1;/设定输出到 analog output Channel 1、Channel 2、Channel 3. XMax->Caption = 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 !" + "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 != 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; k<=wAdNumber -1; k+) lbC0Log->Items->Add(AnsiString) "Ch0: " + FloatToStr(fAdBufk).SubString(1,5) + " Ch1: " + FloatToStr(fAdBufwAdNumber + k).SubString(1,5) + " Ch2: " + FloatToStr(fAdBufwAdNumber * 2 + k).SubString(1,5) );/-说明:该程序段功能与程序段功能类似,描述Button3按键功能,动态监视并采集数据,根据采集到的数据绘制波形。程序段void _fastcall TForm1:Button4Click(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->Text); for (k=0; k<=31; k+) wChannelk = 0; wConfigCodek = 0; wChannel0 = 1; wChannel1 = 1; wChannel2 = 1; XMax->Caption = 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 !" + "nErrorCode:" + IntToStr(RetValue); return; Dodata= 0x0; 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 ) 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; k<=wAdNumber -1; k+) lbC0Log->Items->Add(AnsiString) "Ch0: " + FloatToStr(fAdBufk).SubString(1,5) + " Ch1: " + FloatToStr(fAdBufwAdNumber + k).SubString(1,5) + " Ch2: " + FloatToStr(fAdBufwAdNumber * 2 + k).SubString(1,5) );/-说明:该程序段功能与程序段功能类似,描述Button4按键功能,动态监视并采集数据,根据采集到的数据绘制波形。完整代码如下:/-#include <vcl.h>#pragma hdrstop#include "Unit2.h"#include "P1202.h"#include "P1202u.cpp"/-#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;Word TotalBoards;/-_fastcall TForm1:TForm1(TComponent* 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(TotalBoards); UpDown1->Max = (Word)(TotalBoards - 1); UpDown1->Min = 0; if (TotalBoards < 2) UpDown1->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 = (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; k<=31; k+) wChannelk = 0; wConfigCodek = 0; wChannel0 = 1; wChannel1 = 1; wChannel2 = 1; XMax->Caption = 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 !" + "nErrorCode:" + IntToStr(RetValue); return; Dodata= 0x2; 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 ) 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 ); lbC0Log->Items->Clear(); for (k=0; k<=wAdNumber -1; k+) lbC0Log->Items->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: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 = (Word)StrToInt(eC0AdClock->Text); DA = StrToFloat(eC0DaAmp->Text); for (k=0; k<=31; k+) wChannelk = 0; wConfigCodek = 0; wChannel0 = 1; wChannel1 = 1; wChannel2 = 1; XMax->Caption = 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 !" + "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 != 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 )

    注意事项

    本文(电气装备实验二电气装备计算机控制系统设计(共17页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开