自动化工程训练报告Word文件下载.docx
- 文档编号:19988049
- 上传时间:2023-01-13
- 格式:DOCX
- 页数:35
- 大小:474.25KB
自动化工程训练报告Word文件下载.docx
《自动化工程训练报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《自动化工程训练报告Word文件下载.docx(35页珍藏版)》请在冰豆网上搜索。
PC机一台、小型单片机试验箱(含STC89C52RC单片机、数码管、独立键盘)、步进电机。
二、设计思想和实施方案
本次课程设计主要内容是步进电机的控制和运行状态显示,硬件部分主要的涉及的步进电机、小键盘、数码管和相关控制电路。
软件包括下位机单片机程序设计和上位机中Delphi设计的人机交互界面,二者互相协作实现串口通信。
本次设计的思路是由计算机操作Delphi制作的人机交互界面通过串口通信向单片机发送0到15之间的两位十进制数据或者十六进制数据作为速度设定,由单片机产生一系列脉冲信号实现对步进电机进行控制。
单片机发出的脉冲信号控制步进电机的运行速度。
同时单片机把步进电机运行状况反馈给计算机,由所编写的DELPHI组件显示步进电机的运行状况并进行监控。
此外还可以通过硬件的独立键盘发给单片机控制信号,实现控制步进电机的启动、停止、转向和速度等级,同时利用数码管显示步进电机当前的运转状态。
该设计实现了上位机对步进电机的控制。
通过计算机与单片机通信发出脉冲信号控制步进电机的启动﹑停止运行。
通过C语言编程,能够实现对步进电机正反两个方向运行的控制,单片机控制板用来发送脉冲信号直接控制步进电机各相线路电流的通断。
根据计算机所发送的十进制数,再根据驱动电路的原理和步进电机的特性说明来确定步进电机各相的具体通电步骤,同时控制板上可以显示出步进电机的转向和速度等级。
2.1硬件部分
2.1.1步进电机
步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。
传统电动机作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。
可是在人类社会进入自动化时代的今天,传统电动机的功能已不能满足工厂自动化和办公自动化等各种运动控制系统的要求。
为适应这些要求,发展了一系列新的具备控制功能的电动机系统,其中较有自己特点,且应用十分广泛的一类便是步进电动机。
步进电动机的发展与计算机工业密切相关。
自从步进电动机在计算机外围设备中取代小型直流电动机以后,使其设备的性能提高,很快地促进了步进电动机的发展。
另一方面,微型计算机和数字控制技术的发展,又将作为数控系统执行部件的步进电动机推广应用到其他领域,如电加工机床、小功率机械加工机床、测量仪器、光学和医疗仪器以及包装机械等。
步进电动机有如下特点:
(1)步进电动机的角位移与输入脉冲数严格成正比,因此,当它转一转后,没有累计误差,具有良好的跟随性。
(2)由步进电动机与驱动电路组成的开环数控系统,既非常简单、廉价,又非常可靠。
同时,它也可以与角度反馈环节组成高性能的闭环数控系统。
(3)步进电动机的动态响应快,易与起停、正反转及变速。
(4)速度可在相当宽的范围内平滑调节,低速下仍能保证获得大转矩,因此,一般可以不用减速器而直接驱动负载。
(5)步进电动机只能通过脉冲电源供电才能运行,它不能直接使用交流电源和直流电源。
(6)步进电动机存在振荡和失步现象,必须对控制系统和机械负载采取相应的措施。
(7)步进电动机自身的噪声和振动较大,带惯性负载的能力较差。
随着科学技术的进步,步进电机已广泛运用在需要高定位精度、高分解能、高响应性、信赖性等灵活控制性高的机械系统中。
在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合对数字系统的控制。
步进电机可分为反应式步进电机(简称“VR”)、永磁式步进电机(简称“PM”)和混合式步进电机(简称“HB”)。
步进电机区别于其他控制电机的最大特点是,通过输入脉冲信号来进行控制,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。
步进电机的驱动电路根据控制信号工作,控制信号由各类控制器来产生。
其基本原理作用如下:
(1)步进电机的转动和转向控制
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,即步距角。
它的旋转是以固定的角度一步一步运行的。
通过控制脉冲个数来控制角位移量,可以达到准确定位的目的。
通过控制脉冲频率来控制电机转动的速度和加速度,达到调速的目的。
步进电机作为执行元件,广泛应用在各种自动化控制系统中。
本次课程设计控制的是实验室提供的四项八拍步进电机,电压时DC12V,其励磁线圈及励磁顺序如图2.1和表2.1所示。
表2.1四项八拍步进电机励磁顺序
图2.1四项八拍步进电机励磁线圈
制换相顺序,通电换相。
这一过程称为“脉冲分配”。
例如:
四相步进电机的单四拍工作方式,其各相通电顺序为A—B—C—D。
通电控制脉冲必须严格按照这一顺序分别控制A、B、C、D相的通断,控制步进电机的转向。
如果给定工作方式正序换相通电,则步进电机正转;
如果按反序换相通电,则电机就反转。
(2)步进电机的速度控制
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
两个脉冲的间隔越短,步进电机就转得越快。
调整控制器发出的脉冲频率,就可以对步进电机进行调速。
考虑到步进电机的转速、停止的位置只取决于脉冲信号的频率和脉冲,结合单片机课程中所学的硬件知识,决定使用单片机P1向步进电机传送供电脉冲。
其中P1.0表示A相线路,P1.1表示B相线路,P1.2表示C相线路,P1.4表示D相线路。
当P1.X=1时,该相通电,当P1.X=0时,该相断电。
通过控制P1口的输出来控制步进电机的励磁顺序。
设定步进电机共有18个速度等级,数字越大,电机转动速度越快。
利用软件编程实现不同延时,得到不同的脉冲频率,从而实现对步进电机的转速控制。
2.1.2单片机及其他硬件电路
1.单片机
步进电机的控制系统主要由单片机STC89C52RC、数码管及其显示电路、独立键盘、USB芯片转串口芯片PL2303、电源和时钟电路等几个单元组成,单片机系统如图2.2所示:
图2.2系统整体方案设计
本设计所用的STC89C52RC是一个低功耗,高性能8位单片机。
STC89C52RC具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
如图2.3所示。
图2.3单片机STC89C52RC示意图
STC89C52RC单片机中两条主电源引脚,两条外接晶体引脚,4条控制电源复位引脚,32条I/O引脚。
其中19脚、20脚外接晶振11.0592MHZ及两个30P电容,9脚外接复位电路,40脚、20脚分别接电源正负极,31脚接+5V电源,以上所述是保证单片机能正常工作的外接条件。
P0口:
共8条引脚,即39—32脚,是双向8为三态I/O口。
本次设计P0口为数据端口。
由于本次设计采用的共阴数码管,所以8位输出信号为欲输出的0-9的共阴极段选码。
P1口:
共8条引脚,即1—8脚,P1口是一个带有内部上拉电阻的8为双向I/O口。
本次设计中其中P0.0到P0.4控制步进电机驱动器,通过P0.0发出的时钟脉冲来控制步进电机的起停,通过控制P0.0口各脉冲的快慢来实现对步进电机的定速控制,通过P0.0时钟脉冲的次数来实现对步进电机的定位控制。
改变P0.0到P0.4输出脉冲的顺序来控制步进电机的正反转。
P3口:
共8条引脚,即10—17脚。
P3口的每个引脚都有各自的第二功能。
P3.0口的第二功能时RXD,既串行数据接收端,P3.1口的第二功能是TXD,既串行数据发送端。
因此P3.0、P3.1在系统中起着与计算机互传数据的作用,是步进电机通信控制的主要端口。
P3.2、P3.3作为数码管显示电路锁存使能信号。
P3.2为段锁存信号,P3.3为位锁存信号。
2.串口通信
串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线UniversalSerialBus或者USB混淆)。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;
很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;
而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成:
地线,发送,接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但是不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通行的端口,这些参数必须匹配:
(1)波特率:
这是一个衡量通信速度的参数。
它表示每秒钟传送的bit的个数。
例如300波特表示每秒钟发送300个bit。
当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。
这意味着串口通信在数据线上的采样率为4800Hz。
通常电话线的波特率为14400,28800和36600。
波特率可以远远大于这些值,但是波特率和距离成反比。
高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。
(2)数据位:
这是衡量通信中实际数据位的参数。
当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。
如何设置取决于你想传送的信息。
比如,标准的ASCII码是0~127(7位)。
扩展的ASCII码是0~255(8位)。
如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。
每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。
由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。
(3)停止位:
用于表示单个包的最后一位。
典型的值为1,1.5和2位。
由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。
因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。
适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
(4)奇偶校验位:
在串口通信中一种简单的检错方式。
有四种检错方式:
偶、奇、高和低。
当然没有校验位也是可以的。
对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。
例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。
如果是奇校验,校验位位1,这样就有3个逻辑高位。
高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。
这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。
RS-232是IBM-PC及其兼容机上的串行连接标准。
可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。
用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。
RS-232只限于PC串口和设备间点对点的通信。
RS-232串口通信最远距离是50英尺。
目前RS-232是计算机与通信工业中应用最广泛的一种串行接口,考虑到计算机有RS-232接口,可以很方便地与计算机之间通信,该系统通讯模块选用RS-232串行数据接口。
在电气特性上RS-232采用负逻辑,要求高、低两信号间有较大的幅度。
RS232接口如图2.4所示。
图2.4RS232接口示意图
USB中文含义是“通用串行总线”。
它不是一种新的总线标准,而是应用在PC领域的接口技术。
它到现在已经发展为2.0版本,成为目前电脑中的标准扩展接口。
USB用一个4针插头作为标准插头,采用菊花链形式可以把所有的外设连接起来,最多可以连接127个外部设备,并且不会损失带宽。
USB具有传输速度快(USB1.1是12Mbps,USB2.0是480Mbps,USB3.0是5Gbps),使用方便,支持热插拔,连接灵活,独立供电等优点,可以连接鼠标、键盘、打印机、扫描仪、摄像头、闪存盘、MP3机、手机、数码相机、移动硬盘、外置光软驱、USB网卡、ADSLModem、CableModem等,几乎所有的外部设备。
USB需要主机硬件、操作系统和外设三个方面的支持才能工作。
目前的主板一般都采用支持USB功能的控制芯片组,主板上也安装有USB接口插座,而且除了背板的插座之外,主板上还预留有USB插针,可以通过连线接到机箱前面作为前置USB接口以方便使用。
而且USB接口还可以通过专门的USB连机线实现双机互连,并可以通过Hub扩展出更多的接口。
USB自从1996年推出后,已成功替代串口和并口,并成为当今个人电脑和大量智能设备的必配的接口之一。
在本次设计中,为了方便直接利用实验箱中的USB芯片转串口芯片PL2303,将单片机的串行信号通过转换芯片实现USB的通信,利用专门的USB连机线实现双机互连实现单片机和计算机的串行通信。
3.显示系统
本电路显示系统有8个共阴数码管和内部集成的74HC573芯片组成,在单片机系统中,通常用数码显示器来显示各种数字或符号。
由于它具有显示清晰、高亮度、使用电压低、寿命长的特点,因此使用非常广泛。
该系统LED显示方法采用动态扫描的方法。
在多位LED显示时,为了简化电路,降低成本,利用锁存器来实现段码和位码的分别锁存,点亮数码管。
要想显示不同的字符,就必须采用扫描的方法轮流点亮各位LED,即在每一瞬间只使某一位显示字符。
在此瞬间,段选控制I/O口输出相应字符段选码(字型码),而位选码则控制I/O口在该显示位送入选通电平(因为LED为共阴,故应送低电平),以保证该位显示相应字符。
如此轮流,使每位分时显示该位应显示的字符。
段选码和位选码每送入一次都会延时,,因人眼的视觉暂留时间很短为0.1s,所以显示的时间间隔不必超过20ms,并保持延时一段时间,以造成视觉暂留效果,给人看上去每个数码管总在亮。
这种方式成为软件扫描显示。
利用8个数码管中的前三个实时显示系统当前状态。
左起第一个数码管显示当前电机的运行状态:
“+”表示电机处于正转状态,不显示表示电机处于反转运行状态。
第二个数码管和第三个数码管用来显示当前步进电机的速度等级。
速度等级分为01-15等共15个等级。
其中第二个数码管显示速度等级的十位数,第三个数码管显示速度等级的个位数。
当步进电机的转向和速度发生改变时,数码管的显示也会随之发生改变,可实现实时显示步进电机的运转方向和运转素等等信息。
显示系统示意图如图2.5所示。
图2.5显示系统示意图
4.硬件控制系统
此外,本次设计还用到了实验箱中的独立键盘来控制步进电机的启动、暂停、转动方向和转动速度等控制。
其中第一行中的5、6键实现方向设定,使电机转动方向为正向或者反向。
3、4键实现运行或暂停功能,使电机运行或者暂停。
2、7键依次表示加速和减速,,实现电机速度的设定。
独立键盘的按键示意图如图2.3所示。
图2.3小键盘按键示意图
三、硬件电路原理图及分析
图3.1步进电机控制系统硬件电路原理图
如图3.1所示,该原理图为步进电机控制系统硬件电路原理图,主要涉及到单片机STC89C52RC芯片、独立键盘及数码管显示单元和步进电机及其驱动电路。
其中,单片机P0口的P0.0~P0.7分别接数码管的A、B、C、D、E、F、G和DP。
P1口低四位P1.0~P1.3依次接电机驱动电路的A、B、C和D。
P2口的P2.0~P2.7分别接独立键盘K1~K8。
P3口的P3.2和P3.3分别接数码管单元锁存芯片的使能端,P3.2给定段锁存信号,P3.3给定位锁存信号。
四、典型程序模块及典型编程技巧分析
4.1单片机程序分析
4.1.1主程序步进电机控制模块
主程序主要是判断操作,综合调用各子函数,从而完成对步进电机的相关控制,并在PC机及数码管上实时显示电机的状态、转向和速度等级。
本次设计中,实现了电机运行状态、转向和1-15个速度等级的转速控制。
当程序开始运行时,电机进入初始状态:
正转,速度等级为1级。
数码管显示信息为01。
操作如下:
(1)当小键盘中“5”键被按下时,电机的转向变为正转。
当小键盘中“6”键被按下时,电机的转向变为反转。
在转向发生改变的同时,数码管第一位显示也相应发生变化:
当电机正转时,数码管不显示;
当电机正转时,显示“-”,表示反转;
(2)当小键盘中“3”键被按下时,电机开始转动。
在运行过程中,当“4”键被再次按下时,电机暂停转动;
(3)当小键盘中“2”键被按下时,电机的转速发生改变,开始减速。
当小键盘中“7”键被按下时,电机的转速发生改变,开始加速。
每按一次,速度等级改变一级。
速度改变的同时,数码管第二位和第三位显示相应速度档位两位数值。
数码管第二位显示十位,第三位显示个位。
主程序主要通过设置标志变量来控制实现以上操作。
在C语言中设置运动状态标志变量StopFlag、方向标志变量RunFlag、速度等级Speed和按键键值num。
通过KeyScan键盘扫描模块判断键盘哪个按键被按下,将键值赋给num,根据num的不同改变运动状态标志变量StopFlag、方向标志变量RunFlag、速度等级Speed。
再通过Display数码管显示模块实现电机运行情况的数码管显示。
通过定时器中断服务子程序voidTimer0_isr(void)interrupt1来实现步进电机的速度改变。
通过串口中断服务子程序来实现上位机Delphi界面对于单片机的控制和速度返回。
步进电机的控制主要靠主程序中一下步骤实现:
(1)单独开辟区域,存放数码管的段码和位码信息以及返回给上位机的数字信息。
(2)将单片机定时器0和串口初始化,为下面步进电机转动和与上位机串行通信做好准备。
(3)不断循环利用KeyScan键盘扫描函数判断是有有按键按下以及判断按键键值,根据键值改变步进电机的运动状态标志变量StopFlag、方向标志变量RunFlag、速度等级Speed。
同时,根据改变后的方向标志变量RunFlag和速度等级Speed延时经过运算,将其相应的共阴极段选码赋给数组TempData中的前三位,已根据键盘输入刷新数码管,使数码管常亮。
4.1.2Display数码管显示模块
该模块为数码管显示函数,用于动态扫描数码管。
主要将主函数模块中保存下的电机的转向和转速档位的信息送到数码管上显示。
输入参数FirstBit表示需要显示的第一位,如赋值2表示从第三个数码管开始显示如输入0表示从第一个显示。
Num表示需要显示的位数,如需要显示99两位数值则该值输入2。
为防止有交替重影,先清空数据,在根据输入参数依次锁存各个数码管的位码和段码,从而实现数码管的动态扫描显示。
4.1.3KEYSCAN键盘扫描模块
键盘扫描模块主要用来扫描小键盘,确定在操作过程中那个按键被按下,从而将设定信息反馈给系统,实现相关控制和数码管的显示。
在KEYSCAN子程序中,扫描主要包括以下几个步骤:
(1)判断是否有按键按下,若无键按下则反复检测
(2)若有键按下,利用软件延时要消除键抖动,确认有键按下
(3)根据按下的按键设置相应的键值。
通过单片机的P2口输入K1~K7的信息。
首先判断P2口数值,无任何键按下则读入的全是“1”,若有键按下则读入的对应位是“0”,其余全是“1”。
调用延时函数,如果右键按下,延时后,键值即P2口数据不改变,为“0”的位为被按下的键,通过对比此时P2口的值,返回当前按下的数字键的键值。
如果没有键被按下,则返回键值为“0”。
4.1.4定时器0的初始化模块和中断服务子程序模块
步进电机的运转由定时器T0来控制。
有定时器来改变步进电机的各相通断电时间。
定时器T0的初始化模块定义了定时器使用模式1,开中断,并令定时器中断为高优先级。
定时器中断服务子程序中首先定义定时器0约1ms中断一次。
首先根据Speed来控制励磁换相时间间隔,再根据RunFlag来控制励磁顺序是正转还是反转。
4.1.5串口的初始化模块和中断服务子程序模块
由于本次设计要实现上位机Delphi界面与单片机的串口通信,从而实现上位机对于单片机的速度控制,且单片可将目前步进电机运行状态反馈给上位机显示,因此要利用串口中断来实现上述串行通信。
在串口初试化中通过设置TMOD和SCON将串行口工作方式设置为方式1,将定时器T1设为方式2,定时器初值为FDH,即波特率为9600kbps,然后开中断。
在串口中断服务子程序中,首先判断是否为接收中断,如为接收中端,将标志位清零,然后将接收值赋给Speed。
接收后,单片机要将目前步进电机的运行状态返回给上位机,要利用发送中断,根据Speed和RunFlag改变发送字符串的内容后将字符串发送给上位机。
4.1.6DelayMs软件延时模块
程序中存在两个延时时间不同的延时模块,根据不同情况调用不同模块,可以实现较好的效果。
4.2Delphi程序分析
本次设计中的一个难点就是上位机中界面的设计和上位机和单片机中间的串行通信。
本此设计选用界面设计软件是Borland公司推出的快速应用开发工具Delphi。
它具有功能强大、易于学习和使用、编程效率高以及易于调试等特点。
它将可视化应用程序开发环境IDE、面向对象程序设计语言ObjectPascal、快速编译器和数据库编程工具完美地结合在一起,使用它可以更直观、更快捷地开发出高质量的应用程序,具有丰富的组件集、强大的代码自动生成功能和丰富的数据库管理工具等。
使用它的集成开发环境,编程人员可以更快地建立应用程序。
4.2.1系统所用组件
本项目设计所用到的Delphi组件有:
一个BtnSend、三个Button、一个CheckBox、一个CmbBaud、一个CmbByteSize、一个CmbParity、一个CmbPort、一个CmbStopBit、两个Image、十二个Label、两个Memo、一个串行通讯组件SPComm和一个XPMnaifest组件等。
界面如图4.1所示。
图4.1上位机Delphi界面
目前,利用Delphi实现串口通信的常用的方法有3种:
一是利用控件,如MSCOMM控件和SPCOMM控件;
二是使用API函数;
三是调用其他串口通信程序。
其中利用API编写串口通信程序较为复杂,需要掌握大量的通信知识。
相比较而言,利用SPCOM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动化 工程 训练 报告