欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    基于LabVIEW的直流电机测控系统设计.doc

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

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

    基于LabVIEW的直流电机测控系统设计.doc

    学号: 虚拟仪器技术课程大作业基于LabVIEW的直流电机测控系统设计专业班级: 学生姓名: 指导教师: 完成日期: 成 绩: 目录1设计要求、内容21.1要求21.2内容21.2.1 LabVIEW与单片机串口通信硬件/程序设计21.2.2 电机驱动模块/调速程序设计61.2.3 电机测速模块/测速程序设计81.2.4 总硬件/程序的设计111.3设计环境:142设计过程142.1设计思路142.1.1硬件系统方案设计142.1.2软件系统设计142.2程序设计流程152.3设计好的程序框图及前面板163任务总结与展望174个人收获17附:个人信息171设计要求、内容1.1要求1理解虚拟仪器技术课程中所学的理论知识,掌握相关的设计方法和技能,能够读懂一些不太难的程序,能够独立的设计一些不太复杂的程序;2能熟练运用LabVIEW进行编程操作,并且能够自主的通过即时帮助通过程序的编写明白一些未知控件的作用;3通过学习,掌握基于LabVIEW的电机测控系统的具体设计过程,完成设计;4认真总结,完成计报告 1.2内容1.2.1 LabVIEW与单片机串口通信硬件/程序设计单片机作为下位机核心器件,负责数据的采集和通信及电机转速的控制,而上位机通常以基于图形界面的Windows系统为操作平台。核心是数据通信,它包括单片机和上位机之间的通信,而单片机和上位机之间数据通信则是整个系统的基础。单片机和PC的通信是通过单片机的串口和PC串口之间的硬件连接实现的。图1.1 PC与单片机串口通信线路数据通信的硬件上采用3线制,将单片机和PC串口的3个引脚(RXD、TXD、GND)分别连在一起,即将PC和单片机的发送数据线TXD与接收数据RXD交叉连接,两者的地线GND直接相连,而其他信号线,如握手信号线均不用,采用软件握手的方式,这样既可以实现预定的任务又可以简化电路设计。利用Keil C51和LabVIEW编写程序实现PC与单片机串口通信。C51程序:#include<REG52.H>/*主程序*/void main(void) SCON=0x50;/*SCON:模式1,8-bitUART,使能接收*/TMOD=0x20;/*TMOD:timer1,mode2, 8-bit reload*/ TH1=0xFD;/*TH1:reload value for 9600 baud 11.0592MHz */TL1=0XFD; TR1=1;/*TR1:timer1 run*/ EA=1;/*打开总中断*/ES=1;/*打开串口中断*/while(1)/主循环不做任何动作 void UART_SER(void) interrupt 4 /串行中断服务程序 unsigned char Temp;/定义临时变量if(RI)/判断是接收中断产生RI=0;/标志位清零 Temp=SBUF;/读入缓冲区的值P0=Temp;/把值输出到P0口,用于观察SBUF=Temp;/把接收到的值再发回电脑端if(TI)/如果是发送标志位,清零 TI=0;LabVIEW程序:图1.2 发送程序图1.3 接收程序图1.4 判断通信状态程序图1.5 LabVIEW前面板1设计任务一PC通过串行口将数字(00,01,02,03.,FF,十六进制)发送给单片机,单片机收到后回传这个数字,PC接收到回传数据后显示出来,若发送的数据和接收到的数据相等,则串行通信正确,否则有错误。启始符是数字00,结束符是数字FF。 图1.6 串口助手调试单片机串口通信2设计任务二(1)测试通信状态。 先在文本框中输入字符串“FF”,单击“测试”按钮,将字符串“FF”发送到单片机,若PC与单片机通信正常,在LabVIEW程序前面板显示字符串“OK!”,否则显示字符串“通信异常”。 图1.7 LabVIEW与单片机串口通信测试(2)控制指示灯。 将单片机接收到的数值赋给P0口,P0口接一排LED,观察LED的显示结果(表示该数值的二进制显示)是否与输入值相符合。图1.8 输入“FF”图1.9 输入“01”单片机和LabVIEW通信,在程序设计上涉及两个部分的内容。一是单片机的C51程序,二是LabVIEW的串口通信程序和界面的编制。1.2.2 电机驱动模块/调速程序设计图1.10 LS298N驱动模块设置IN1和IN2,确定电机的转动方向,然后对使能端输出PWM脉冲,实现电机调速。当使能信号为0,电机处于自由停止状态;当使能信号为1,且IN1和IN2为00或11时,电机处于制动状态,阻止电机转动。C51程序:#include<reg52.h>sbit IN1=P10;sbit IN2=P11;sbit ENA=P12;/x毫秒延时void delay(unsigned int x)unsigned int i,j;for(i=x;i>0;i-)for(j=110;j>0;j-);/y微秒延时void delay_us(unsigned int y)while(y-);/主函数void main()while(1)unsigned int i,cycle=1300,T=2048;/*IN1=1;/反转IN2=0;for(i=0;i<200;i+)delay(10);/PWM占空比为50%,修改延时调整PWM脉冲ENA=ENA;IN1=0;/正转IN2=1;for(i=0;i<200;i+)delay(10);ENA=ENA;*/IN1=0;/自动加速正转IN2=1;while(cycle<2048)ENA=1;delay_us(cycle+);ENA=0;delay_us(T-cycle);/*IN1=1;/自动减速反转IN2=0;*/while(cycle>1300)ENA=1;delay_us(cycle-);ENA=0;delay_us(T-cycle);1.2.3 电机测速模块/测速程序设计图1.11 光电耦合测速传感器模块1.模块槽中无遮挡时,接收管导通,模块DO 输出低电平,遮挡时,DO 输出高电平;2、DO 输出接口可以与单片机IO 口直接相连,检测传感器是否有遮档,如用电机码盘则可检测电机的转速。设计选用的测速码盘有20格光栅,因此速度计算公式为:Speed=(count/20)*60(转/分)图1.12 电机测速调试1图1.13 电机测速调试2C51程序:#include<REG52.H>sbit IN1=P10;sbit IN2=P11;sbit ENA=P12;unsigned int i=0,pul=0,count=0,Speed=0;unsigned int cycle=2000,T=7000;/x毫秒延时void delay(unsigned int x)unsigned int i,j;for(i=x;i>0;i-)for(j=110;j>0;j-);/y微秒延时void delay_us(unsigned int y)while(y-);void main() TMOD=0x15; / 打开定时器T1和计数器T0,TMOD为00010101,都为模式1 因此矩形脉冲输入端接P3.4 EA=1; TH0=0x00; TL0=0x00; ET0=1; ET1=1; TH1=0x3C; /50ms 0x3CB0=15536 TL1=0xB0; TR0=1; TR1=1; while(1) IN1=0;/自动加速正转IN2=1;while(cycle<3000)ENA=1;delay_us(cycle+);ENA=0;delay_us(T-cycle); while(cycle>2000)/自动减速ENA=1;delay_us(cycle-);ENA=0;delay_us(T-cycle); timer3() interrupt 3 /定时器中断时间到,就读取计数器值TH1=0X3C; TL1=0XB0; i+;if(i<20) /累计1s内的脉冲数 pul=TH0;/计数器计入脉冲,每来一个矩形脉冲计数值加1 pul=pul<<8;/得高八位后,左移8位, pul=pul+TL0;/再加上低八位count+=pul;pul=0;TH0=0;/计数器速度获取后清零,进行下次获取TL0=0;if(i=20) /每秒更新一次速度 pul=TH0;/计数器计入脉冲,每来一个矩形脉冲计数值加1 pul=pul<<8; pul=pul+TL0;count+=pul;Speed=(count/20)*60;/测得的速度(转/分)i=0;count=0;TH0=0;/计数器速度获取后清零,进行下次获取TL0=0;P0=Speed;/观察速度值1.2.4 总硬件/程序的设计图1.14 直流电机测控系统硬件原理框图图1.15 总硬件设计C51总程序:#include<REG52.H>#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> sbit IN1=P10;sbit IN2=P11;sbit ENA=P12;unsigned int i=0,pul=0,count=0,Speed=0,Speed_dec=0;unsigned int cycle=2000,T=7000;/x毫秒延时void delay(unsigned int x)unsigned int i,j;for(i=x;i>0;i-)for(j=110;j>0;j-);/y微秒延时void delay_us(unsigned int y)while(y-);/*主程序*/void main(void) SCON=0x50;/*SCON:模式1,8-bitUART,使能接收*/TMOD=0x25;/*TMOD:timer1,mode2, 8-bit reload T0计数,模式1,因此矩形脉冲输入端接P3.4*/TH1=0xFD;/*TH1:reload value for 9600 baud 11.0592MHz */TL1=0XFD; TH0=0x00;TL0=0x00;TR1=1;/*TR1:timer1 run*/ EA=1;/*打开总中断*/ES=1;/*打开串口中断*/TR0=1;TR1=1; /*TR1:timer1 run*/ while(1)/主循环if(Speed_dec=Speed)IN1=0;/停转IN2=0;if(Speed_dec>Speed) IN1=0;/自动加速正转IN2=1;while(cycle!=T)ENA=1;delay_us(cycle+);ENA=0;delay_us(T-cycle);if(Speed_dec<Speed)IN1=1;/自动减速反转IN2=0;while(cycle!=T)ENA=1;delay_us(cycle+);ENA=0;delay_us(T-cycle); void UART_SER(void) interrupt 4 /串行中断服务程序,在LabVIEW中设置每隔一秒中断一次(便于测速) unsigned char Temp1,ch1;/定义临时变量unsigned char hex;unsigned int i;TH1=0X3C;/计算速度TL1=0XB0;i+;if(RI)/判断是接收中断产生RI=0;/标志位清零 Temp1=SBUF;/读入缓冲区的值 if(Temp1>=0x30&&Temp1<=0x39)ch1=Temp1-0x30;else if(Temp1>=0x41&&Temp1<=0x46)ch1=Temp1-0x37;else ch1=0xff; pul=TH0;/计数器计入脉冲,每来一个矩形脉冲计数值加1 pul=pul<<8; pul=pul+TL0; count+=pul; Speed=(count/20)*60;/测得的速度(转/分) i=0; count=0; TH0=0;/计数器速度获取后清零,进行下次获取 TL0=0;SBUF=Speed;/把速度值再发回电脑端if(TI)/如果是发送标志位,清零 TI=0;1.3设计环境:硬件环境:单片机、直流电机及驱动模块、串口。软件环境:LabVIEW编程软件、Keil编程软件、串口调试助手。2设计过程2.1设计思路2.1.1硬件系统方案设计本系统主要实现对直流电机进行测速和调速。(1) 调速控制由LabVIEW 编程产生电机所需要控制的转速值,将该速度值通过串口送入单片机, 与测得的速度值进行比较,若送入值大于测量值则单片机控制直流电机加速,若送入值小于测量值则单片机控制直流电机减速。(2) 测速控制将电机上的测速码盘安装在光电耦合器的发射端和接收端之间,当测速码盘转动时,光栅阻挡光耦发射出的光信号,在光耦接收端得到一段连续的脉冲波形,该脉冲波形经过斯密特触发器进行整形后,得到一形状规则的脉冲波形。整形后的脉冲波形输出至单片机计数器端,用C51程序算出速度值后传回计算机(LabVIEW)并显示。2.1.2软件系统设计LabVIEW 程序,主要包括用户界面设计(前面板的设计)和框图程序设计两部分。(1)用户界面设计用户界面(前面板)是虚拟仪器的重要组成部分,仪器参数的设置、测试结果显示等功能都是通过软件实现,因此要求软件界面简单直接,便于使用。用户可根据需要设置转速参数,并将测量结果数据显示出来。(2) 框图程序设计系统框图程序大体分为三个模块:通信模块和仪器功能模块。通信模块模块中包括对设定速度值的发送和对测量速度的接收;仪器功能模块主要实现参数设置和测量结果显示。C51单片机程序设计,主要包括控制电机加速、减速,输入速度和测量速度,比较以及串口通信程序。因为测速码盘有20片光栅,所以应将1s 内计数值除以20再乘以60才得到风扇转速(转/分)。2.2程序设计流程图2.1 程序设计流程图2.3设计好的程序框图及前面板程序框图:图2.2 发送程序图2.3 延时程序图2.4 接收程序图2.5 用户界面3任务总结与展望电机测控在工业控制系统中占据非常重要的地位,传统的电机测控,主要采用指针式仪表,通过人工读数、记录、整理统计数据、绘制曲线和编写文档等,测控速度慢、数据不准确、数据处理和分析复杂,很难适应现代化发展的要求。电机测控系统一般分为两大部分,即数据采集与控制部分和人机界面部分,目前的自动控制系统常采用单片机控制、工业PC 机控制、PLC 控制等多种方案,利用虚拟仪器技术开发和设计了一个新型电机调速测速系统,该系统采用普通PC 机为主机,利用图形化可视测试软件LabVIEW为软件开发平台,来测控电机运行速度状态,采集数据并进行处理、存储、显示。设备成本低,使用方便灵活。本次设计还有很多不足之处,比如电机调速范围只有10-80转/分,在今后的实践中我会同我的组员一起改进,做得更好。4个人收获在本次设计中真正感受到了LabVIEW使用图形化编程语言G 在流程图中创建源程序,这种编程方式强调信号处理的实际过程,编程简单,调试方便的特点。用LabVIEW大大提高了我们在本次实验中的工作效率。在这次设计中学习了很多,比如单片机的串口通信,LabVIEW串口通信,电机测速等,都是以前没研究过的,在这个过程中学习了很多单片机和LabVIEW的知识,同时发现并解决了很多问题,让我们受益匪浅。也意识到了设计一个系统需要有严谨的态度,不能马虎。附:个人信息姓名学号联系方式QQE-mail

    注意事项

    本文(基于LabVIEW的直流电机测控系统设计.doc)为本站会员(罗晋)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

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




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开