电气装备实验二电气装备计算机控制系统设计.doc

上传人:b****3 文档编号:2431813 上传时间:2022-10-29 格式:DOC 页数:17 大小:1.03MB
下载 相关 举报
电气装备实验二电气装备计算机控制系统设计.doc_第1页
第1页 / 共17页
电气装备实验二电气装备计算机控制系统设计.doc_第2页
第2页 / 共17页
电气装备实验二电气装备计算机控制系统设计.doc_第3页
第3页 / 共17页
电气装备实验二电气装备计算机控制系统设计.doc_第4页
第4页 / 共17页
电气装备实验二电气装备计算机控制系统设计.doc_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

电气装备实验二电气装备计算机控制系统设计.doc

《电气装备实验二电气装备计算机控制系统设计.doc》由会员分享,可在线阅读,更多相关《电气装备实验二电气装备计算机控制系统设计.doc(17页珍藏版)》请在冰豆网上搜索。

电气装备实验二电气装备计算机控制系统设计.doc

专业:

电气工程与自动化

姓名:

____

学号:

日期:

2015.6

地点:

教二115

实验报告

课程名称:

电气装备计算机控制指导老师:

________成绩:

__________________

实验名称:

电气装备计算机控制系统设计实验类型:

_同组学生姓名:

一、实验目的和要求(必填) 二、实验内容和原理(必填)

三、主要仪器设备(必填) 四、操作方法和实验步骤

五、实验数据记录和处理 六、实验结果与分析(必填)

七、讨论、心得

实验二  电气装备计算机控制系统设计

一、实验目的 

1、理解数据采集系统的硬件原理,了解数据采集卡的技术指标和驱动函数;

2、掌握PCI1202数据采集卡获取数据的方法,数据采集软件编写的方法;

3、掌握计算机控制技术,学会电气装备计算机控制系统的软件和硬件设计,熟悉控制系统的调试方法。

二、实验内容

1、使用数据采集系统进行各路数据采集,对数据采集的结果进行记录和分析;

2、利用采集卡数据输入输出功能设计一个简易控制三相异步电机正反转的控制系统。

三、实验原理  

在电气装备等各个应用领域都存在着数据采集、存储、处理与控制问题,常常需要对电流、电压、温度、压力、流量、位移等模拟量进行采集,通过模/数(A/D)转换,数据处理,最后把结果显示出来或者进行相应的控制处理。

数据采集系统的信号采集部分一般包括信号输入和调理(信号衰减/放大与滤波)、采样/保持、模/数(A/D)转换、数据存储(RAM)等,再通过接口传输到计算机,由计算机进行信号的分析处理和显示。

三相异步电机的转子是被定子的三相绕组通入三相交流电产生的旋转磁场拖动的,三相绕组合成的旋转磁场向哪个方向转,转子就向哪个方向转。

所以,只要将三相电源线的任意两根线换接,电机定子的旋转磁场就被改变了,那么电机转子的转动方向也将跟随旋转磁场的方向改变。

数据采集主电路及控制电路实验接线图

四、实验步骤

1.研究并设计电机的数据采集及控制主电路;

2.根据设计的电路完成实验系统的硬件接线;

3.通过软件平台进行编程、调试实现对三相异步电机的数据采集及正反转控制;

4.在实现最简控制电路的基础上进行扩展,如增加电机过压保护、过流保护、继电器互锁等功能。

(选做探究)

五、实验例程

程序段

//---------------------------------------------------------------------------

#include

#pragmahdrstop

#include"Unit2.h"

#include"P1202.h"

#include"P1202u.cpp"

//---------------------------------------------------------------------------

#pragmapackage(smart_init)

#pragmaresource"*.dfm"

TForm1*Form1;

WordTotalBoards;

说明:

该程序段包含相关头文件说明与编译预处理指令,同时定义Word型变量TotalBoards,用于计数板卡总数。

程序段

//---------------------------------------------------------------------------

__fastcallTForm1:

:

TForm1(TComponent*Owner)

:

TForm(Owner)

{

}

void__fastcallTForm1:

:

FormCreate(TObject*Sender)

{

WordRetValue;//定义一个类型变量

RetValue=P1202_DriverInit(&TotalBoards);//板卡驱动初始化函数,检测有几个板卡,并赋给变量RetValue记录返回值-错误代码

if(RetValue!

=0)

{

ShowMessage("ErrorCode:

"+IntToStr(RetValue)

+"\nDriverInitialError!

!

");

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__fastcallTForm1:

:

Button2Click(TObject*Sender)

{

Close();//关闭窗体

}

//---------------------------------------------------------------------------

说明:

该程序段用于说明Button2按键功能,即关闭窗体。

程序段

void__fastcallTForm1:

:

Button1Click(TObject*Sender)

{

WordRetValue,DF,DW,AC,Dodata,k;

floatDA;

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++)

{

wChannel[k]=0;

wConfigCode[k]=0;

}

wChannel[0]=1;

wChannel[1]=1;

wChannel[2]=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)"ActiveBoradError!

!

"+"\nErrorCode:

"+IntToStr(RetValue));

return;

}

Dodata=0x2;

RetValue=P1202_Do(Dodata);//传送一16位的值到DigitalOutput输出if(RetValue!

=0)

{

ShowMessage((AnsiString)"DigitalOutputError!

!

"+"\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_3Error!

!

"+"\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(fAdBuf[k]).SubString(1,5)

+"Ch1:

"+FloatToStr(fAdBuf[wAdNumber+k]).SubString(1,5)

+"Ch2:

"+FloatToStr(fAdBuf[wAdNumber*2+k]).SubString(1,5)

);

}

//------------------------------------------

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 商业计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1