机电控制实习二指导书学生用.docx
《机电控制实习二指导书学生用.docx》由会员分享,可在线阅读,更多相关《机电控制实习二指导书学生用.docx(38页珍藏版)》请在冰豆网上搜索。
机电控制实习二指导书学生用
机电控制实习
(二)指导书
专业:
年级:
学号:
姓名:
机电控制实习
(二)
一、课程的任务与作用
本课程是一门重要的专业技能实习课程。
通过本课程的学习与训练,使学生进一步掌握机电控制的理论知识,获得必要的机电控制工程技能,并为今后从事与本专业有关的工程技术工作奠定必要的基础。
二、实习目标及基本要求
﹙一﹚教学目标要求
使学生能基本掌握单片机与PLC控制系统的原理以及操作方法。
﹙二﹚实习报告要求
﹙1﹚按实习指导书的格式要求填写。
﹙2﹚实习目的明确,要有预习报告。
﹙3﹚按规定的实习内容及实习步骤进行实验并填写实验结果。
实验结果记录尽可能详尽。
﹙4﹚实习报告中要求有原理说明及原理图。
﹙5﹚安装调试结果的对比说明及其解释。
﹙6﹚对结果的讨论。
三、实习组织、场地及设备
1.实习的组织
鉴于实习的故障复杂及多变性,指导教师组织指导、纠正操作、纠正错误等,往往忙无所措,建议按20个左右学生/教师组成实习班,学生分组并确定工位及确定仪器、工具,以便于管理。
2.实习设备、场地的要求
﹙1﹚每个工位配备交流电源、计算机及必要的机电控制仪器,对于专用的贵重电子测试设备可按班级配置。
﹙2﹚教室的电源供电应满足单项实习项目最大功率装机容量附设线路及配电装置。
﹙3﹚用电安全保护设备齐全。
﹙4﹚配备教师演示操作台或黑板等教学设备。
四、实习课题内容及其学时安排、教学要求
课题一单片机编程(keil)与仿真软件(proteus)的安装及使用
课题二步进电机的仿真控制
课题三单个步进电机的控制实习
课题四模拟数控系统控制实践—用单片机模块实现2轴步进电机联动控制
课题五PLC机床控制改造实践
序
号
实验项目(课题)名称
天数
目标要求
1
单片机编程软件(keil)与仿真软件(proteus)的安装及使用
1
掌握keil与proteus的安装及使用;
2
步进电机的仿真控制
2
掌握使用proteus绘制步进电机控制系统的仿真模型,掌握使用keil编制步进电机的控制程序;
3
单个步进电机的控制实习
3
掌握步进电机的单双节拍控制方法、正反转以及加减速控制方法;
4
模拟数控系统控制实践—用单片机模块实现2轴步进电机联动控制
2
掌握用单片机模块实现2轴步进电机的分时运动控制与联动控制;
5
PLC机床控制改造实践
2
理解PLC机床控制系统的原理,学习PLC机床控制系统的改造方法。
五、学生实习成绩计分方法.
实训成绩由实践操作、实习报告、校规校纪和规范操作四部分组成满100分。
1、实践操作考核占总成绩的50%。
根据学生的实训过程、实训结果、实训态度等,由指导教师根据各项目评分办法记分。
2、实习报告成绩占总成绩的20%。
(1)不写或不交实训报告者,本次实训项目成绩为零分。
(2)不写实训小结和意见建议者,所有实训项目均为无效分。
(3)画图不工整,字迹不清晰、敷衍了事写报告给5分以下。
(4)抄袭他人实训报告,报告不得分。
3、校规校纪占总成绩的15%。
(1)迟到早退一次扣3分(超过5分钟按旷课一节扣5分)。
(2)窜岗溜号一次扣5分。
4、规范操作占总成绩的15%。
规范操作15分。
机电控制实习
(二)为必修课,每次实训完毕考核不及格者,应按通知要求及时补训,若缺少机电控制实习
(二)成绩学校不予毕业。
六、参考书目
徐瑞华主编《单片机原理与接口技术》。
北京:
人民邮电出版社,2008
陈宝江等编著《MCS单片机应用系统实用指南》。
北京:
机械工业出版社,1997
③王庭有主编《可编程控制器原理及应用》。
北京:
国防工业出版社,2005
项目1单片机编程(keil)与仿真软件(proteus)的安装及使用
一、实习目的
掌握单片机编程软件(keil)与仿真软件(proteus)的安装及使用。
二、实习器材
﹙1﹚计算机一台;
﹙2﹚HC6800E单片机开发板一套(含接线与步进电机)。
三、项目要求
安装单片机编程软件(keil),学习使用keil软件编写程序,并生成.Hex文件,采用HC6800-EM3开发板进行程序烧录实践,观察效果。
安装单片机电路仿真软件(proteus),学习使用proteus软件绘制单片机电路图,并掌握采用keil与proteus进行单片机系统仿真调试的方法。
四、实习方法与步骤
第一章KEIL安装使用说明
1、Keil软件的安装
首先、双击c51v805中文版.exe
安装.
然后、点击
注册!
2、Keil软件的使用
软件是目前最流行的开发80C51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案。
1.使用Keil前必须先安装。
安装过程简单,这里不在叙述。
2.安装好了Keil软件以后,我们打开它。
3.程序编辑后选择左窗口“目标Target1属性”点击右键选择“输出”将“生成HEX文件”打钩,然后点击确定。
3、二进制加法试验
;p2口八个灯作二进制加法。
理解二进值的计算
;硬件连接:
p2口用排线与8路指示灯相连
;连接方法:
JP11(P2)和JP1(LED灯)用8PIN排线连接起来
#include
voiddelay(unsignedinti);//声明延时函数
main()
{
unsignedcharNum=0xff;
while
(1)
{P2=Num;
delay(1000);//延时函数
Num--;
}
}
/*******延时函数*************/
voiddelay(unsignedinti)
{
unsignedcharj;
for(i;i>0;i--)
for(j=255;j>0;j--);
}
5.打开程序烧录软件PZISP或者STCISP,然后选择HEX文件烧录。
第二章Proteus概述及其与Keil的联调
ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
①实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。
目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件。
本章介绍ProteusISIS软件的工作环境和一些基本操作。
一、实例一(KeilC与Proteus相结合的仿真过程)
下面以一个简单的实例来完整的展示一个KeilC与Proteus相结合的仿真过程。
1、单片机电路设计
如图所示。
电路的核心是单片机AT89C51。
单片机的P1口八个引脚接LED显示器的段选码(a、b、c、d、e、f、g、dp)的引脚上,单片机的P2口六个引脚接共阳极(anode)LED显示器的位选码(1、2、3、4、5、6)的引脚上,电阻起限流作用,总线使电路图变得简洁。
电路图的绘制
2、单片机led显示电路程序设计
程序设计:
实现LED显示器的选通并显示字符。
进入KeilCμVision2开发集成环境,创建一个新项目(Project),并为该项目选定合适的单片机CPU器件(如:
Atmel公司的AT89C51)。
并为该项目加入KeilC源程序。
源程序如下:
#defineLEDS6
#include"reg51.h"
//led灯选通信号
unsignedcharcodeSelect[]={0x01,0x02,0x04,0x08,0x10,0x20};
unsignedcharcodeLED_CODES[]=
{0xc0,0xF9,0xA4,0xB0,0x99,//0-4
0x92,0x82,0xF8,0x80,0x90,//5-9
0x88,0x83,0xC6,0xA1,0x86,//A,b,C,d,E
0x8E,0xFF,0x0C,0x89,0x7F,0xBF//F,空格,P,H,.,-};
voidmain()
{
chari=0;
longintj;
while
(1)
{
P2=0;
P1=LED_CODES[i];
P2=Select[i];
for(j=3000;j>0;j--);//修改循环次数,改变点亮下一位之前的延时,可得到不同的显示效果。
i++;
if(i>5)i=0;
}
}
3、将生成的.hex文件烧入proteus中的单片机。
4、使用proteus调试。
5、keil和proteus的在线联调
①单击“Project菜单/OptionsforTarget”选项或者点击工具栏的“optionfortarget”按钮,弹出窗口,点击“Debug”按钮,在出现的对话框里在右栏上部的下拉菜单里选中“ProteusVSMSimulators”。
并且还要点击一下“Use”前面表明选中的小圆点。
最后将工程编译,进入调试状态,并运行。
②Proteus的设置
进入Proteus的ISIS,鼠标左键点击菜单“Debug”,选中“useremotedebugmonitor”,如图所示。
此后,便可实现KeilC与Proteus连接调试。
③KeilC与Proteus连接仿真调试
单击仿真运行开始按钮,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。
在LED显示器上,循环显示0、1、2、3、4、5。
项目2步进电机的仿真控制
一、实习目的
掌握单片机编程软件(keil)与仿真软件(proteus)的安装及使用。
二、实习器材
﹙3﹚计算机一台;
﹙4﹚HC6800E单片机开发板一套(含接线与步进电机)。
三、项目要求
设计一步进电机控制系统,可实现对步进电机的启停、正反转以及调速控制,电机的转速有四档,各档的转速如下:
1档:
25rpm;
2档:
16.67rpm;
3档:
12.5rpm;
4档:
10rpm。
四、实习方法与步骤
1、步进电机的工作原理。
步进电动机是一种将电脉冲信号转换成角位移或线位移的机电元件。
步进电动机的输入量是脉冲序列,输出量则为相应的增量位移或步进运动。
正常运动情况下,它每转一周具有固定的步数;做连续步进运动时,其旋转转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。
由于步进电动机能直接接受数字量的控制,所以特别适宜采用微机进行控制。
在HC6800E-V2.8开发板上单片机的管脚通过排线连接ULN2003D驱动步进电机,开发板上M1-M5均为步进电机接口,用于外接5线4相步进电机,最多可外接5个步进电机。
下面先介绍三相反应式步进电机的原理。
①结构:
电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开0、1/3T、2/3T(相邻两转子齿轴线间的距离为齿距,以T表示),即A与齿1相对齐,B与齿2向右错开1/3T,C与齿3向右错开T,A’与齿5相对齐,(A’就是A,齿5就是齿1)下面是定转子的展开图:
②旋转:
如A相通电,B、C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。
如B相通电,A、C相不通电时,齿2应与B对齐,此时转子向右移过1/3T,此时齿3与C偏移为1/3T,齿4与A偏移(T-1/3T)=2/3T。
如C相通电,A、B相不通电,齿3应与C对齐,此时转子又向右移过1/3T,齿4与A’偏移为1/3T对齐。
如A相通电,B、C相不通电,齿4与A’对齐,转子又向右移过1/3T,这样经过A、B、C、A分别通电状态,齿4移到A相,电机转子向右转过一个齿距,如果不断地按A、B、C、A……通电,电机就每步(每脉冲)1/3T向右旋转。
如按A、C、B、A……通电,电机就反转。
由此可见:
电机的位置和速度与导电次数(脉冲数)和频率成一一对应关系。
而方向由导电顺序决定。
不过,出于对力矩、平稳、噪音及减少角度等方面考虑。
往往采用A-AB-B-BC-C-CA-A这种导电状态,这样将原来每步1/3T改变为1/6T,这就是电机细分驱动的基本理论依据。
不难推出:
电机定子上有m相励磁绕阻,绕阻轴线分别与转子齿轴线偏移1/m,2/m……(m-1)/m。
如果这m相励磁绕阻导电按一定的相序,步进电机就能被控制正反转,这是步进电机旋转的物理条件。
只要符合这一条件我们理论上可以制造任何相的步进电机,出于成本等多方面考虑,市场上一般以二、三、四、五相为多。
2、项目的解决方案
系统采用AT89C51单片机作为主控制器,单片机采用12MHz的晶振。
步进电机的启停、正反转以及4档调速分别用按钮实现,步进电机采用5V电源供电,步进电机驱动芯片选择ULN2003A(插件)或ULN2003D(贴片),此外,还用一个8段数码管显示电机的转速档位,数码管的驱动芯片选用7447。
硬件原理如下图:
软件设计:
时钟频率是12MHz,机器周期是1us,采用定时器T0定时,定时周期设为1000×1us=1ms,此时,T0的初值为T0初值=216-1000=64536=0xFC18。
若已知转子齿数为10,步进电机工作于双四拍方式,则步距角=360/(10×4)=9°。
Tmd表示步进间隔,nr表示步进电机转速,n0表示计时因数,则:
各档转速对应的计时因数分别如下:
1档:
步进电机的转速nr=
=25rpm,n0=60,步进间隔为60×1ms=0.06s;
2档:
步进间隔为
3档:
步进间隔为
4档:
步进间隔为
启动档:
步进间隔为0.2s。
程序:
预处理(定义变量):
定义步进相序变量、速度档位变量以及方向、启停开关变量。
主程序
初始化:
P0、P3口输入准备,P1口输出高电平使步进电机的所有相断电;设定外部中断0和外部中断1的触发方式(下降沿触发);开外部中断和定时器0中断;定时器0的模式和初值设置,开定时器0。
循环检测档位信号:
如果P0=0xfe(P0.0=0),设定速度档位变量为1档(n0=60),P2口输出档位信号;
如果P0=0xfd(P0.1=0),设定速度档位变量为2档(n0=90),P2口输出档位信号;
如果P0=0xfb(P0.2=0),设定速度档位变量为3档(n0=120),P2口输出档位信号;
如果P0=0xf7(P0.3=0),设定速度档位变量为4档(n0=150),P2口输出档位信号;
否则,循环检测档位信号。
外部中断0服务程序(启停开关)
启停变量step的值加1;
如果step>=2,step=0。
(限定值为0或1)
外部中断1服务程序(正反转开关)
方向变量flag的值加1;
如果flag>=2,flag=0。
(限定值为0或1)
定时器0中断服务程序(步进间隔为T0×n0)
重装定时器T0的初值
如果启停变量step=1,则转下一步,否则停止步进电机(计时变量n清0);
如果计时变量n>=档位变量n0,即步进间隔时间到,
如果转向变量flag=0,则根据步进相序变量index的值输出正转相序;否则根据步进相序变量index的值输出反转相序。
(注意:
index加1,n清0)
在step=1的情况下,每次定时器T0中断,n的值加1。
主程序和定时器0中断服务程序的流程图如下:
项目3单个步进电机的控制实习
一、实习目的
掌握步进电机的单双节拍控制方法、正反转以及加减速控制方法。
二、实习器材
﹙5﹚计算机一台;
﹙6﹚HC6800E单片机开发板一套(含接线与步进电机)。
三、项目要求
采用HC6800E开发板控制单个步进电机转动,用开发板上M1-M5五个接口中的某一个接口外接一个步进电机,步进电机驱动芯片ULN2003D的输入端口与单片机的P1管脚连接。
项目3分为4个子项目,各个子项目的要求如下:
1、绕组为四相八拍工作方式A-AB-B-BC-C-CD-D-DA-A,采用switch语句或相序数组输出各相的状态,查询工作方式。
步进电机逆时针旋转(正转),转速为125rpm。
2、绕组为四相双四拍工作方式AB-BC-CD-DA,中断工作方式。
步进电机逆时针旋转(正转),转速为125rpm。
3、编程实现让电机正转2圈,而后反转2圈,然后停止,并要求步进电机满足下面两个要求:
①单双八拍方式A-AB-B-BC-C-CD-D-DA;②正反转时,步进电机的转速为125rpm。
4、编程实现让电机在1圈内加速到625rpm,然后以625rpm的转速匀速转动5圈,接着在1圈内从625rpm减速,然后停止,并要求步进电机满足下面两个要求:
①单双八拍方式A-AB-B-BC-C-CD-D-DA;②加速、匀速、减速的过程中,步进电机始终向一个方向转动。
将以上4个子项目依次命名为单双八拍控制、双四拍控制、正反转控制、加减速控制。
四、实习方法与步骤
项目3的仿真模型如下:
图3-1项目3的仿真模型
HC6800E开发板步进电机控制电路的原理见图3-2,接线方法见图3-3。
图3-2
图3-3
3.1单双八拍控制实习
项目要求:
绕组为四相八拍工作方式A-AB-B-BC-C-CD-D-DA,采用switch语句或相序数组输出各相的状态,查询工作方式。
步进电机逆时针旋转(正转),转速为125rpm。
软件原理:
四相八拍工作方式的正转相序为:
FFZ[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}。
已知转子齿数为12,步进电机工作于单双八拍方式A-AB-B-BC-C-CD-D-DA,则步距角=360/(12×8)=3.75度。
若步进间隔为
ms,步进电机的转速为:
Vn=
×
=
rpm
Vn=125rpm,
=5ms
时钟频率是11.0592MHz,设定定时周期为5ms,T0工作于方式1即16位定时器方式,则
T0初值为:
5ms/(12×
)=4608,T0初值=216-4608=60928=EE00H
程序思想:
预处理:
定义步进相序变量MotorStep、计时查询变量TIM。
主程序
步进电机初始化:
P1口输出高电平使步进电机的所有相断电;
系统初始化:
定时器0的模式和初值设置,开定时器0中断,开定时器0。
循环检测计时查询变量TIM:
如果TIM=1,则根据步进相序变量MotorStep的值输出步进电机相序;
调整MotorStep的值;
否则,循环检测计时查询变量TIM。
定时器0中断服务程序
重装定时器T0的初值;
计时查询变量TIM置1。
思考题:
1改为中断工作方式应该如何编写程序?
②如何使步进电机顺时针旋转(反转)?
③试画出主程序的程序流程图。
④如何将步进电机设为四相四拍工作方式AB-BC-CD-DA?
3.2双四拍控制实习
项目要求:
绕组为四相双四拍工作方式AB-BC-CD-DA,中断工作方式。
步进电机逆时针旋转(正转),转速为125rpm。
软件原理:
四相四拍工作方式的正转相序为:
FFZ[4]={0xfc,0xf9,0xf3,0xf6}。
已知转子齿数为12,步进电机工作于双四拍方式AB-BC-CD-DA,步距角=360/(12×4)=7.5度。
若步进间隔为
ms,步进电机的转速为:
Vn=
×
=
rpm
Vn=125rpm,
=10ms
时钟频率是11.0592MHz,设定定时周期为10ms,T0工作于方式1即16位定时器方式,则
T0初值为:
10ms/(12×
)=9216,T0初值=216-9216=56320=DC00H
程序思想:
预处理:
定义步进相序变量MotorStep。
主程序
步进电机初始化:
P1口输出高电平使步进电机的所有相断电;
系统初始化:
定时器0的模式和初值设置,开定时器0中断,开定时器0。
循环等待。
定时器0中断服务程序
重装定时器T0的初值;
根据步进相序变量MotorStep的值输出步进电机相序;
调整MotorStep的值。
3.3正反转控制实习
试编程实现让电机正转2圈,而后反转2圈,然后停止,并要求步进电机满足下面两个要求:
①单双八拍方式A-AB-B-BC-C-CD-D-DA;
②正反转时,步进电机的转速为125rpm。
解:
如何让电机转2圈?
如何控制方向?
已知转子齿数为12,步进电机工作于单双八拍方式A-AB-B-BC-C-CD-D-DA,则步距角=360/(12×8)=3.75度。
2圈=2×12×8步
步进电机的转速为:
Vn=
×
=
rpm
——每分钟电机的步数,
——每步相对的圈数。
由Vn=125得:
Tin=0.005s=5ms
因而可直接设定T0的定时间隔为5ms,T0初值=216-4608=60928=EE00H。
程序思想:
预处理:
定义步进相序变量MotorStep、计时查询变量TIM、正反转相序数组。
(正反转控制变量Flag)
主程序
步进电机初始化:
P1口输出高电平使步进电机的所有相断电;
系统初始化:
定时器0的模式和初值设置,开定时器0中断,开定时器0;
调用motor_ffzw()函数使电机正转2圈,然后使电机反转2圈;
停止。
思考题:
①若要求步进电机先反转5圈,然后正转6圈,该如何编写程序?
②如何改变步进电机的转速?
3.4加减速控制实习
试编程实现让电机在1圈内加速到625rpm,然后以625rpm的转速匀速转动5圈,接着在1圈内从625rpm减速,然后停止,并要求步进电机满足下面两个要求:
①单双八拍方式A-AB-B-BC-C-CD-D-DA;
②加速、匀速、减速的过程中,步进电机始终向一个方向转动。
解:
已知转子齿数为12,步进电机工作于单双八拍方式A-AB-B-BC-C-CD-D-DA,则步距角=360/(12×8)=3.75度。
当步进电机的转速为625rpm时,按下式计算步进间隔:
Vn=
×
=
rpm
由Vn=625得:
Tin=0.001s=1ms。
设定T0的定时间隔为1ms,T0初值=216-922=64614=FC66H
预处理:
定义步进相序变量MotorStep、速度控制变量Rate、计时查询变量TIM以及步进电机的相序数组。
主程序
步进电机初始化:
P1口输出高电平使步进电机的所有相断电;
系统初始化:
定时器0的模式和初值设置