




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
专业:电气工程与自动化姓名: _ _学号: 日期: 2015.6 地点: 教二115 实验报告课程名称: 电气装备计算机控制 指导老师:_ _成绩:_实验名称:电气装备计算机控制系统设计 实验类型:_ 同组学生姓名: 一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得实验二电气装备计算机控制系统设计一、实验目的1、理解数据采集系统的硬件原理,了解数据采集卡的技术指标和驱动函数;2、掌握PCI1202数据采集卡获取数据的方法,数据采集软件编写的方法;3、掌握计算机控制技术,学会电气装备计算机控制系统的软件和硬件设计,熟悉控制系统的调试方法。二、实验内容1、使用数据采集系统进行各路数据采集,对数据采集的结果进行记录和分析;2、利用采集卡数据输入输出功能设计一个简易控制三相异步电机正反转的控制系统。 三、实验原理 在电气装备等各个应用领域都存在着数据采集、存储、处理与控制问题, 常常需要对电流、电压、温度、压力、流量、位移等模拟量进行采集,通过模/数(A /D)转换,数据处理,最后把结果显示出来或者进行相应的控制处理。数据采集系统的信号采集部分一般包括信号输入和调理(信号衰减/放大与滤波)、采样/保持、模/数(A /D)转换、数据存储(RAM)等,再通过接口传输到计算机,由计算机进行信号的分析处理和显示。三相异步电机的转子是被定子的三相绕组通入三相交流电产生的旋转磁场拖动的,三相绕组合成的旋转磁场向哪个方向转,转子就向哪个方向转。所以,只要将三相电源线的任意两根线换接,电机定子的旋转磁场就被改变了,那么电机转子的转动方向也将跟随旋转磁场的方向改变。数据采集主电路及控制电路实验接线图四、实验步骤1. 研究并设计电机的数据采集及控制主电路;2. 根据设计的电路完成实验系统的硬件接线;3. 通过软件平台进行编程、调试实现对三相异步电机的数据采集及正反转控制;4. 在实现最简控制电路的基础上进行扩展,如增加电机过压保护、过流保护、继电器互锁等功能。(选做探究)五、实验例程 程序段/-#include #pragma hdrstop#include Unit2.h#include P1202.h#include P1202u.cpp/-#pragma package(smart_init)#pragma resource *.dfmTForm1 *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 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; kCaption = 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; 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按键功能及实现。动态监视并采集数据,根据采集到的数据绘制波形。部分说明见以上注释。程序段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; 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 ! + 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; 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按键功能,动态监视并采集数据,根据采集到的数据绘制波形。程序段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; 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 ! + 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; kItems-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 #pragma hdrstop#include Unit2.h#include P1202.h#include P1202u.cpp/-#pragma package(smart_init)#pragma resource *.dfmTForm1 *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 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; 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 ! + 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; 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 _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; 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 ! + 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; 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 _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; 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 ! + 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; kItems-Add(AnsiString) Ch0: + FloatToStr(fAdBufk).SubString(1,5) + Ch1: + FloatToStr(fAdBufwAdNumber + k).SubString(1,5) + Ch2: + FloatToStr(fAdBufwAdNumber * 2 + k).SubString(1,5) );/-七、实验结果记录电机正转时三相电压波形电机反转时三相电压波形电机停转时三相电压波形八、思考和练习 1.继电器与接触器的区别是什么?答:继电器用来保证电力系统设备的安全运行,属于二次设备。交直流方式的都有,可以根据一定的电气量或非电量进行整定,当被保护设备或者回
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 如家酒店协议书号
- 中国环聚醛项目商业计划书
- 2025年消防常用知识考试题及答案
- 精神科保护性约束实施与解除专家共识与实践试题
- 中石油合规管理测试题及答案
- 2025年特岗教师考试综合试题及答案
- 2025年体校体育教练考试题及答案
- 江苏省徐州市鼓楼区徐州市树人初级中学2024-2025学年九年级上学期12月月考物理试题(含答案)
- 河南省信阳市商城县丰集高中观庙高中两校联考2025-2026学年高二上学期10月月考物理试题(含解析)
- 模具制造技术试题与答案
- 家具配件厂产品召回记录实施细则
- 农村产业融合发展示范园项目可行性研究报告
- 2025年安徽省农垦集团有限公司所属企业招聘笔试备考附答案详解(黄金题型)
- 螺杆泵的原理讲解
- 广东网格员考试题及答案
- 护士输液PDA扫码流程课件
- 2025成人高考专升本政治考试模拟试题及答案
- 七年级上册历史知识点考点梳理背默清单
- 市政工程交通导改与管理方案
- 科学拓展保温瓶课件
- 10kV及以下配网工程施工组织设计(方案)
评论
0/150
提交评论