步进电动机控制器

2024-06-07

步进电动机控制器(精选十篇)

步进电动机控制器 篇1

步进电动机的控制的基本方法有以下三种:数字电路控制、单片机控制及PLC的控制。

1 由数字电路组成的简单步进电动机的控制

图1为由数字电路产生脉冲并控制步进电机的原理图。电路控制简单, 此控制电路由一个555定时器、2个74L74集成电路及外围元件组成。如图所示, 每个74LS74集成电路中有2个D触发器, 由三个D触发器产生了环形脉冲分配器, 输出信号经过VT1-VT6组成的3个复合三极管放大后驱动电动机的绕组, 实现了脉冲的放大与分配。而脉冲的频率的变化的控制, 如图所示, 是由555定时器的第6和第7脚之间的10K可调电阻来调节, 555定时器输出的频率为:其频率为f=1.44/[ (R1+2R2+RP) *C1], 从而改变步进电动机的速度, 用3个发光二极管显示对应的绕组工作情况。和电动机绕组并联的二极管为续流二极管。

2 步进电动机的单片机控制

在步进电动机的单片机控制中, 控制信号主要由单片机产生, 主要控制电动机的速度、转向及换相的顺序。步进电动机的换相也就是脉冲的分配。实现脉冲的分配的方法有两种:软件法和硬件法。

(1) 实现脉冲的分配的软件法

按照给定的换相顺序, 通过单片机的I/O口向驱动电路发出脉冲控制。如对五相步进电机的控制, 利用8051系列单片机的P1.0~P1.4D的5条I/O线向五相步进电机传送控制信号。P1口输出的控制信号中, 0代表绕组通电, 1代表绕组断电, 则可用十个控制字来对应这十个通电状态。在程序中, 只要依次将这10个控制字送到P1口, 步进电动机就会转动一个齿距角。每送一个控制字, 就完成一拍, 步进电动机就转过一个步距角。

软件法在电动机运行过程中, 要不停的产生控制脉冲, 占用了大量的CPU空间和时间, 所以人们更倾向于使用硬件法实现脉冲的分配。

(2) 硬件法实现脉冲的分配

硬件法实际上是用脉冲分配器芯片, 来实现通电换相的控制。常用的有三洋M8713, 国产的5G8713, 可以互换使用。8713是单极性控制, 原来控制三相和四相步进电机, 可以选择三相和四相的不同工作方式。8713可以选择单时钟输入或双时钟输入;具有正反转控制、初始化复位、工作方式和输入脉冲状态监视等功能。

(3) 步进电机的速度控制

步进电动机的速度控制通过控制单片机发出的步进脉冲的频率来实现, 若需要调速, 一般是通过定时器中断的方法, 在中断子程序中, 进行脉冲输出操作, 调整定时器定时常数来实现调速。

3 步进通过单片机与脉冲分配器的完美结合, 实现了步进电动机的脉冲分配、转向控制及速度的控制。

随着科学技术的发展, 在九十年代末, 在生产中逐步运用的可编程的控制, 而步进电动机的控制在数控技术中尤为突出。使得加工参数更加精确, 在其他领域, 也凸显了步进控制的准确性。

下面用PLC对步进电动机的控制方法进行介绍:

(1) 步进电动机不能直接和PLC连接, 中间需要经过控制器, 才能实现对步进的控制, 如图2所示。

(2) 通过控制器, 可以根据需要, 调节细分值及输出相电流。通过细分设置开关, 可以实现细分值由2~256的变化。根据电动机的功率, 通过波段开关的状态, 实现输出电流的变化。

脉冲输出指令:

步进电动机的控制方式灵活, 可以根据实际选择合适的控制。PLC对步进的控制虽然增加了程序控制器及控制器, 但是越来越被用户所接收。

摘要:本文阐述了步进电动机的工作原理;步进电动机的控制方式:数字电路、单片机及PLC的控制。

关键词:步进电动机,控制,方法

参考文献

步进电动机控制器 篇2

课程名称:步进电动机驱动器的设计 专业班级:

姓 名:

学 号:

指导教师:

2014/06/11

目 录

第一章 课程设计任务书.............................................................................1 1.1、课程设计的目的...........................................................................1 1.2、课程设计的内容...........................................................................1 1.3、课程设计的具体要求...................................................................2 第二章 电器元件图的设计.........................................................................2 2.1、元器件清单…….....................................................................2

2.2、绘制简单电路图…....................................6 2.3、添加元件库和元件.......................................................................8 第三章 电气原理图设计...........................................................................12 第四章 元器件封装设计...........................................................................13 第五章 PCB图设计...................................................................................14 第六章 课程设计体会...............................................................................18 6.1、设计过程中遇到的问题及解决方法..........................................18 6.2、心得体会....................................................................................18 附录1.........................................................................................................19 附录2......................................................20

第一章 课程设计任务书 1.1、课程设计的目的

通过本课程的实习,使学生掌握设计电路原理图、制作电路原理图元器件库、电气法则测试、管理设计文件、制作各种印制电路板、制作印制板封装库的方法和实际应用技巧;使学生掌握电路原理图的设计方法,掌握电路板的绘制方法和技巧;培养学生的动手操作能力,提高学生的专业技能水平;为学生胜任实际PCB板设计打下坚实的基础。主要包括以下内容:

1、电气原理图(SCH)设计系统。

2、电气原理图元件库编辑。

3、印制电路板(PCB)设计系统。

4、印制电路板元件库编辑。

1.2、课程设计的内容

(一)原理图(SCH)设计系统

(1)原理图的设计步骤;(2)绘制电路原理图;(3)文件管理;(4)生成网络表文件;

基本要求:掌握原理图的设计步骤,会绘制电路原理图,利用原理图生产网络表,以达到检查原理图的正确性的目的;熟悉文件管理的方法。

(二)原理图元件库编辑

(1)原理图元件库编辑器;

(2)原理图元件库绘图工具和命令;(3)制作自己的元件库。

基本要求:熟悉原理图元件库的编辑环境,熟练使用元件库的常用工具和命令,会制自己的元件库。

(三)印制电路板(PCB)设计系统

(1)印制电路板(PCB)的布线流程;(2)设置电路板工作层面和工作参数;(3)元件布局;(4)手动布线;

(5)电路板信息报表生成。

基本要求:熟悉PCB布线的流程,熟练设置电路板的工作层面和参数,根据实际情况,规范的对元件进行布局。掌握自动布线和手动布线的方法,并会对布线后生成的信息报表进行检查,以达到修改完善PCB的目的。

(四)印制电路板元件库编辑

(1)PCB元件库编辑器;

(2)PCB元件库绘图工具和命令;(3)制作自己的PCB元件库

基本要求:基本要求:熟悉印制电路元件库的编辑环境,熟练使用元件库的常用工具和命令,会制作自己的元件库。

1.3、课程设计的具体要求

按照学号顺序根据给定的电气原理图样本图绘制原理图和PCB图。

共4个题目(见教材):

1、数据采集卡的设计

2、直流调速系统控制器的设计

3、步进电动机驱动器的设计

4、直流无刷电动机驱动系统的设计

第二章 电器元件图的设计

2.1、元器件清单

2.2、绘制简单电路图

(1)原理图设计过程

原理图的设计可按下面过程来完成。设计图纸大小首先要构思好零件图,设计好图纸大小。图纸大小是根据电路图的规模和复杂程度而定的,设置合适的图纸大小是设计好原理图的第一步。

设置protel99 se/Schematic设计环境包括设置格点大小和类型,光标类型等等,大多数参数也可以使用系统默认值。

旋转零件用户根据电路图的需要,将零件从零件库里取出放置到图纸上,并对放置零件的序号、零件封装进行定义和设定等工作。

原理图布线利用protel99 se/Schematic提供的各种工具,将图纸上的元件用具有电气意义的导线、符号连接起来,构成一个完整的原理图。

调整线路将初步绘制好的电路图作进一步的调整和修改,使得原理图更加美观。

报表输出通过protel99 se/Schematic提供的各种报表工具生成各种报表,其中最重要的报表是网络表,通过网络表为后续的电路板设计作准备。

文件保存及打印输出最后的步骤是文件保存及打印输出。(2)新建一个设计库

1)启动Protel99 se,出现以下启动界面,如下图所示。

(2)选取菜单File/New来新建一个设计库,出现如下图2.4对话框。

Database File Name处可输入设计库存盘文件名,点击Browse...改变存盘目录。

(3)选取File/New...打开New Document对话框,如图,选取Schematic Document建立一个新的原理图文档。

2.3、添加元件库和元件

在放置元件之前,必须先将该元件所在的元件库载入内存才行。如果一次载入过多的元件库,将会占用较多的系统资源,同时也会降低应用程序的执行效率。所以,通常只载入必要而常用的元件库,其它特殊的元件库当需要时再载入。添加元件库的步骤如下:

(1)双击设计管理器中的Sheet1.Sch原理图文档图标,打开原理图编辑器。

(2)点击设计管理器中的Browse Sch选项卡,然后点击Add/Remove按钮,屏幕将出现如图所示的“元件库添加、删除”对话框。

(3)在Design Explorer 99LibrarySch文件夹下选取元件库文件,然后双击鼠标或点击Add按钮,此元件库就会出现在Selected Files框中,如图所示。

(4)然后点击OK按钮,完成该元件库的添加。

对于添加元件,由于电路是由元件(含属性)及元件间的边线所组成的,所以现在要将所有可能使用到的元件都放到空白的绘图页上。

通常用下面两种方法来选取元件。

1.通过输入元件编号来选取元件

做法是通过菜单命令Place/Part或直接点击电路绘制工具栏上的按钮,打开如 10

图所示的“Place Part”对话框,然后在该对话框中输入元件的名称及属性,如图所示。

Protel99se的Place Part对话框包括以下选项。

(1)Lib Ref 在元件库中所定义的元件名称,不会显示在绘图页中。(2)Designator 流水序号。

(3)Part Type 显示在绘图页中的元件名称,默认值与元件库中名称Lib Ref一致。

(4)Footprint 包装形式。应输入该元件在PCB库里的名称。

放置元件的过程中,按空格键可旋转元件,按下X或Y可在X方向或Y方向镜像,按Tab键可打开编辑元件对话框。

2.从元件列表中选取添加元件的另外一种方法是直接从元件列表中选取,该操作必须通过设计库管理器窗口左边的元件库面板来进行。

下面示范如何从元件库管理面板中取一个与门元件,如图所示。首先在面板上的Library栏中选取Miscellaneous Devices.lib,然后在Components In Library栏中利用滚动条找到AND并选定它。接下来单击Place按钮,此时屏幕上会出现一个随鼠标移动的AND符号,按空格键可旋转元件,按下X 或Y可在X方向或Y方向镜像,按Tab键可打开编辑元件对话框。将符号移动到适当的位置后单击鼠标左键使其定位即可。

第三章 电气原理图设计

确定起始点和终止点,Protel99就会自动地在原理图上连线,从菜单上选择“Place/Wire”后,按空格键切换连线方式,自动连线、任意角度、45°连线、90°连线,使得设计者在设计时更加轻松自如。只要简单地定义Auto Wire方式。自动连线可以从原理图的任何一点进行,不一定要从管脚到管脚。

连接线路所有元件放置完毕后,就可以进行电路图中各对象间的连线(Wiring)。连线的主要目的是按照电路设计的要求建立网络的实际连通性。要进行操作,可单击电路绘制工具栏上的 按钮或执行菜单Place/Wire将编辑状态切换到连线模式,此时鼠标指针由空心箭头变为大下字。只需将鼠标指针指向欲拉连线的元件端点,单击鼠标左键,就会出现一条随鼠标指针移动的预拉线,当鼠标指针移动到连线的转弯点时,单击鼠标左键就可定位一次转弯。当拖动虚线到元件的引脚上并单击鼠标左键,可在任何时候双击鼠标左键,就会终止该次连线。若想将编辑状态切回到待命模式,可单击鼠标右键可按下Esc键。

放置接点在某些情况下Schematic会自动在连线上加上接点(Junction)。但通常有许多接点要我们自己动手才可以加上的。如默认情况下十字交叉的连线是不会自动加上接点的。如图所示。

要放置接点,可单击电路绘制工具栏上的 按钮或执行菜单Place/Junction,这时鼠标指针会由空心箭头变成大十字,且蹭还有一个小黑点。将鼠标指针指向欲放置接点的位置,单击鼠标左键即可,单击鼠标右键可按Esc键退出放置接点状态。

第四章 元器件封装设计 元器件封装设计步骤:

(1)执行File/New/Pcb Library 命令。在设计窗口中显示一个新的名为“PcbLib1.PcbLib”的库文件和一个名为“PCB Component_1”的空白元件图纸。

(2)执行存储命令,将库文件更名为“PCB Footprints.PcbLib”存储。(3)点击PCB Library 标签打开PCB 库编辑器面板。

(4)现在你可以使用PCB 库编辑器中的命令添加,移除或者编辑新PCB 库 中的封装元件了。

(5)使用PCB元件向导来进行元器件的快速绘制,执行Tools/New Component 命令或者在PCB 库编辑器中点击Add 按钮。元件向导自动开始。点击Next 按 13

钮进行向导流程,选择不同的封装,根据器件PDF文档中尺寸的描述进行编辑可以迅速的完成相应器件的绘制。

(6)手工创建元件封装,在PCB 库编辑器中创建和修改封装使用一套和在PCB 编辑器中使用的一样的工具及设计对象。任何东西,如角度标识,图片目标及机械说明,都可以作为PCB 封装存储。

第五章 PCB图设计

(1)新建PCB文件

(2)绘制一张双面PCB板

(3)加载网络表,并分析改正其中的错误

(4)加载完成后在PCB文档中进行布局

(5)布局完成后手动进行布线

(6)布线完成后进行DRC检测

第六章 课程设计体会

6.1、设计过程中遇到的问题及解决方法

设计过程中遇到了很多问题,可以说问题不大,但是如果不细心就会很难纠正,找不到错误原因。

比如说在画原理图的时候,原理图画完了,可是用ERC一检测,有好几百个错误,不如有的重名、端口没有接好、漏写了端口名称等等各种问题。但都被我通过查资料或者问同学一一解决了。在封装的时候又遇到了很多问题,好多封装号不清楚,把封装号填完后,又是一些小错误接踵而来,但最终还是完成了这份课程设计的作业。

6.2、心得体会

通过这些天对这个课程设计的投入学习,让我学习到了很多知识,确切的说应该是经验,因为在课堂上面你是发现不了这些问题的,只有经过自己的实际学习才能发现这些问题。对于protel的认识起步比较早,但是从本次课程设计当中学习到了很多以前还很模糊的东西,在课程设计当中中碰到了一些比较难的问题,自己不畏困难,专心研究,学会如何独立思考并解决问题。实在最后解决不了的就去请教学长和上网搜查资料。以及周围同学大家互相学习,共同提高。为将来更好的工作打好基础。

本次课程设计使我学到了关于protel软件的安装、电子线路原理图的设计、电路原理图元件库文件的设计、电子线路PCB电路板设计、PCB元件封装库设计。这些内容对于我们今后的所用是远远不够的。为此,在以后的时间里要进一步的去学习和思考,对protel要有近一步的认识,更好能熟练地掌握各种操作此软件。但是,本次课程设计对我是受益颇深的,让我学习了很多懂得了很多。

附录1

步进电动机控制器 篇3

关键词:步进电动机  PLC  步进驱动器  程序

2013年山东省高级技师实训操作试题一:运料小车由步进电动机控制。这说明步进电动机在一些控制精度不高的设备中已经得到广泛应用。例如:线切割、简易自动生产线设备都使用步进电动机来完成设备的直线运动。

步进电动机是如何能够旋转的,步进电机是一种将电脉冲信号转化为角位移的执行机构,一般电动机都是连续旋转的,而步进电机的转动是一步一步进行的,每输入一个脉冲电信号,步进电机就转动一个角度,通过改变脉冲频率和数量,可实现步进电机的调速和控制转动的角位移大小,具有较高的定位精度,其最小步距角可达0.75,转动、停止、反转反应灵敏可靠。而步距角是每输入一个电脉冲信号时转子转过的角度称为步距角,步距角的大小可直接影响电机的运行精度。

步进电机的运行要有一电子装置进行驱动,这种装置就是步进电机驱动器,它是把控制系统发出的脉冲信号,加以放大以驱动步进电机。步进电机的转速与脉冲信号的频率成正比,控制步进电机脉冲信号的频率,可以对电机精确调速;控制步进脉冲的个数,可以对电机精确定位。整步:最基本的驱动方式,这种驱动方式的每个脉冲使电机移动一个基本步矩角。例如:标准两相电机的一圈共有200个步矩角,则整步驱动方式下,每个脉冲可以使电机移动1.8°,而半步是在单相激磁时,电机转轴停至整步位置上,驱动器收到下一个脉冲后,如给另一相激磁且保持原来相继续处在激磁状态,则电机转轴将移动半个基本步矩角,停在相邻两个整步位置的中间。如此循环地对两相线圈进行单相然后两相激磁,步进电机将以每个脉冲半个基本步矩角的方式转动。步进电机的相数是指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机。电机相数不同,其步距角也不同,一般二相电机的步距角为0.9°至1.8°、三相的为0.75°至1.5°、五相的为0.36°至0.72°。在没有细分驱动器时,用户主要靠选择不同相数的步进电机来满足自己步距角的要求。如果使用细分驱动器,则相数将变得没有意义,用户只需在驱动器上改变细分设置数就可以改变步距角。步进电机的拍数指的是电机转过一个齿距角所需的脉冲数。

①细分:细分就是指电机运行时的实际步矩角是基本步矩角的几分之一。如:驱动器工作在10细分状态时,其步矩角只为电机固有步矩角的十分之一,也就是说:当驱动器工作在不细分的整步状态时,控制系统每发一个步进脉冲,电机转动1.8°,而用细分驱动器工作在10细分状态时,电机只转动了0.18。细分功能完全是由驱动器靠精度控制电机的相电流所产生的,与电机无关。细分是控制精度的标志,通过增大细分能改善精度。步进电机都有低频振荡的特点,如果电机需要工作在低频共振区,细分驱动器是很好的选择。此外,细分和不细分相比,输出转矩对各种电机都有不同程度的提升。②硬件准备。S7-200 PLC、步进驱动器KINCO9(步科)3M458、步进电机3S57Q-

04056和连线。电机的连线:由于步进电机是三相步进电动机需要把电机接成三角形。整步方式下步距角是1.8°,半步方式下步距角为0.9°,相电流为5.8A。③步进驱动器接线及接点的解释:PLS+和PLS-为脉冲信号的接点:脉冲信号的数量、频率与步进电机的位移和速度成正比;DIR+和DIR-为方向信号的接点:它的高低电平决定电动机的旋转方向;FREE+和FREE-为脱机信号:当为ON时,驱动器将断开输入到步进电动机的电源回路;当为OFF时,步进电动机在上电后,即使静止时也保持自动半流的锁紧状态。步进驱动器主要解决的问题是:脉冲的分配和功率放大。脉冲分配(环形脉冲分配器):用来控制步进电动机的通电运行方式,其作用是把控制器送来的一串指令脉冲按照一定的顺序和分配方式控制各相绕组的通断,由于步进电动机的工作原理是各绕组必须按一定的顺序通电变化才能正常工作,完成这种通电顺序变化的规律我们称为环形分配器。驱动器采用的是细分驱动电源:这里的细分表示为每送给步进电动机一相或几相绕组一个脉冲信号的电压,步进电动机就旋转一步即步距角,如果在一拍中通电相的电流不是一次直接到达最大值,而是分成多次,每次增加都会使转子转动一小步;同样的绕组电流的下降也是分成几次完成,这样的方式称为细分,这样步进电机由原来的一步到达便分成许多微步来完成实现了步进的细分。在实际应用中,步进驱动器的侧面有一个红色的8位开关我们称为功能设定开关,主要用来设定驱动器的工作方式和工作参数。其中开关1至3用来表示细分设置用,如果开关打在ON,表示使用,如果打在OFF表示此开关不用,加细分设置表。

DIP4:ON表示静态电流全流,OFF表示静态电流半流。

DIP5至DIP8:表示输出相电流设置用,加输出相电流的设置表。

电路的整体接线图(图1)。

步进电机的控制方式:

①利用字节控制步进电机。在主程序中调用初始化子程序,在子程序中设置:

a设置PTO/PWM控制字节(Q0.0对应的是字节SMB67;Q0.1对应的是字节SMB77)。b写入周期值:(Q0.0对应的是字节SMW68;Q0.1对应的是字节SMW78)。c写入脉冲串计数值:(Q0.0对应的是字节SMD72;Q0.1对应的是字节SMD82)。d连接中断事件和中断服务程序,允许中断(可选)。e执行PLS指令,使S7-200CPU对PTO硬件编程。(图2)

图2                      图3

②利用包络控制步进电机(图3)。

③利用库控制步进电机(图4)。

Velocity_ss:启动/停止频率(最低速度),单位:pulse/Second

Velocity_max:最大频率(最高速度),单位:pulse/Second。

Accel_dec_time:加减速时间 Fwd_limit:正向限位开关

Rev_limit:反向限位开关  C_pos:当前的脉冲数值

Num_pulses:脉冲数值(必须大于1)

velocity:预设的频率(预设的速度)direcition:预设的方向(0表示反向,1表示正向)。

Done:完成位

步进电动机最大的优势在于它控制简单,投资成本低,所以很多小型设备在设计上优先选择步进电机,而步进电动机的型号非常全。但是其缺点是其控制精度不高,在一些高精尖的设备已不再采用,而是用交流伺服电机来驱动。

参考文献:

[1]李全.PLC运动控制技术应用设计与实践[M].机械工业出版社.

[2]陈伯时.电力拖动自动控制系统[M].机械工业出版社.

试论PLC步进电动机控制的实现 篇4

关键词:PLC,步进电动机,特点,控制

前言

在棉纺生产中步进电机有着广泛的使用。为了棉纺产品的质量保证, 要求步进电机必须迅速、准确、安全的控制完成任务。步进电机在生产过程中是机电一体化的关键产品, 广泛在各种电一体化设备和自动化控制系统机中应用。PLC作为一种具有模块化结构、高速的处理速度、配置灵活、PLC对步进电机也具有良好的控制能力、精确的数据处理能力的工业控制计算机。具有可靠性高、编程方式简单直观、功能完善的特点。

1 工作性能及原理

步进电动机是用电脉冲信号进行控制一种的计算机, 并将电脉冲信号转换成相应的线位移或角位移的执行要塞。因为受到脉冲的控制, 通过控制脉冲数量来控制角位移量以及其转子的角位移量和速度严格地与输入脉冲的数量和脉冲频率成正比, 从而达到目标准确定位。控制电机转动的速度和加速度主要是通过控制脉冲频率来控制的, 这样才能达到调速的目的;要想达到改变电机旋转方向的目的, 只有通过改变通电顺序来实现。步进电机主要是按结构可以分为反应式、永磁式及混合式步进电机来分类的, 也可以按相数分类, 分别为单相、两相和多相三种。

1.1 步进电机的优点

(1) 步进电机的输入脉冲数与角位移严格成正比, 电机运转一周后没有累积误差, 具有良好的跟随性。

(2) 由步驱动器电路与进电机组成的开环数字控制系统, 既简易、价廉, 可靠。同时, 它也可以与角度反馈环节组成高性能的闭环数字控制系统。

(3) 步进电机的动态响应速度快, 方便启停、正反转、变速。

(4) 速度可与宽的范围内平滑调节, 低速下仍能保证获得大转矩。

1.2 步进电机的缺点

(1) 步进电机只能通过脉冲电源供电才能启用, 它不能直接使用直流电源和交流电源。

1.3 步进电机的控制原则

"启动频率"就是步进电机能响应而不失步的最高步进频率;与其相同, “停止频率”是指系统控制信号突然停断, 步进电机不冲过目标位置的最高步进频率。而电机的输出转矩和启动频率、停止频率都要和负载的转动惯量相适应。有了这些数据, 就能有效地控制步进电机的运行变速。

PLC控制步进电机的使用, 应根据下式计算系统的脉冲当量、脉冲频率上限和最大脉冲数量, 进而选择与PLC及相应的功能模块。根据脉冲频率可以确定PLC高速脉冲输出时需要的频率, 根据脉冲数量可以确定PLC的位宽。脉冲频率上限= (移动速度×步进电机细分数) /脉冲当量;最大脉冲数量= (移动距离×步进电机细分数) /脉冲当量;脉冲当量= (步进电机步距角×螺距) / (360×传动速比) 。

2 升降速控制

在步进电机起动和停止的时候往往出现失步和过冲现象;一般情况下, 要求的运行速度往往比较高, 而系统的极限启动频率比较低;当要求步进电机从起动到大于突跳频率的工作频率时, 变化速度必须逐渐上升;同样, 高于突跳频率或最高工作频率的工作频率停止时, 变化速度必须逐渐下降, 因此, 步进电机的运行一般要经过恒频、升频和降频等过程。

实现步进电机升降速的方法分三种:

(1) 直线升降速控制。这种方法节省资源、计算简单, 但是匀速和升降速不能光滑过渡, 影响系统的运行寿命和质量, 所以此方法适用于要求不高、处理较慢的场合。

(2) 指数升降速控制。这种方法符合步进电机的固有规律, 但是计算实现比较麻烦, 适用于处理速度要求较高的场合。

(3) S形曲线升降速控制。这种方法根据实际升降速过程采用慢、快、慢的过程来控制步进电机, 适用于要求较高和平稳的场合。

3. 步进电机单双轴运动的控制的实现

3.1 控制坐标系的建立

确立坐标系是PLC对步进电机的控制的前提, 可以设为相对和绝对坐标系。坐标系的设置在DM6629字中, 脉冲输出0对应00-03位, 04-07位对应脉冲输出1。设置为0时, 为相对坐标系;设置为1时, 为绝对坐标系。

(1) 不带加减速的单相脉冲输出

当PLC控制坐标系设定为相对坐标系时, 可以从端口1和端口0以增量的形式输出脉冲, 输出脉冲的计数值, 对于端口1记录在SR231、SR230通道中, 对于端口0记录在SR229、SR228通道。

3.2 控制系统组成

步进电动机主要采用DM5654A型两相混合式, 控制器采用S7-200 CPU224, 功率驱动器采用DMD402, 晶体管输出类型。S7-200CPU224 PLC的指令功能强, 可靠性高, 指令丰富, 内置有高速计数器、RS485通信、高速输出、MPI通信协议等功能, 晶体管输出类型有两路20k Hz的高速脉冲输出, 可以使步进电动机得到有效控制。

输入信号的脉冲频率决定步进电动机的转速, 并与频率同步, 要有效控制其转速, 改变脉冲信号的频率即可。利用CPU224的PTO功能生成指定脉冲数目的方波脉冲序列。脉冲数、脉冲宽度或周期装入相应的控制寄存器。改变脉冲周期, 就可改变控制频率, 以改变步进电动机的速度:改变脉冲数量, 就可改变步进电动机旋转的角位移。方向信号由Q0.1输出, 脉冲信号由Q0.0的输出脉冲。

PTO功能流水线方式有两种:第一, 单段流水线方式:移动距离L较小, 要求步进电动机以恒定低速旋转。第二, 多段流水线方式:移动距离L较大, 要求步进电动机能加速起动、恒速运行和减速到起动频率。本控制系统选用单段流水线方式。

结论

使用PLC可方便地实现对电动机的位置和速度进行控制, 有效操作各种步进电动机, 完成各种复杂多样的工作, 目前基于PLC的步进电动机控制已经广泛地在造纸、食品、

参考文献

[1]王晓明.电动机的单片机控制[M].北京:北京航空航天出版社, 2002

[2]廖常初.PLC编程及应用 (第2版) [M].北京:机械工业出版社, 2005, 10.

[3]宣财鑫.PLC脉冲控制步进电机技术[J].机车车辆工艺, 2002

ARM的步进电机细分控制报告 篇5

一、ARM简介

ARM 公司是一家IP供应商,其核心业务是IP核以及相关工具的开发和设计。半导体厂商通过购买ARM公司的IP授权来生产自己的微处理器芯片。由此以来,处理器内核来自ARM公司、各芯片厂商结合自身已有的技术优势以及芯片的市场定位等因数使芯片设计最优化,从而产生了一大批高度集成、各据特色的SOC芯片。

ARM微处理器具有以下特点:采用RISC指令集、使用大量寄存器、ARM/THUMB指令支持、三/五级流水线具有低功耗、低成本、高性能等。

到目前为止,ARM公司的IP核已经由ARM7,ARM9发展到今天的ARM11版本,ARM微处理器及技术的应用已经广泛深入到国民经济的各个领域, 如工业控制领域、网络应用、消费类电子产品及成像和安全产品等领域。

鉴于ARM7所具备的强大功能完全可以满足本次设计要求,本次设计仍使用ARM7系列芯片。

二.步进电机细分控制方案

1、步进电机细分技术简介

细分驱动技术在七十年代中期由美国学者首次提出,基本原理是将绕组中的电流细分。由常规的矩形波供电改为阶梯波供电,此时绕组中的电流将按一定的阶梯顺序上升和下降,从而将每一自然步进行细分。步进电机细分控制的本质是通过对励磁绕组中的电流控制,使步进电机合成磁场为均匀离散化的圆形旋转磁场。采用细分驱动技术可以改善步进电机的运行品质,减少转矩波动、抑制振荡、降低噪音、提高步距分辨率。

2、硬件框图设计

系统总体硬件框图设计如图2-1所示:

0

图2-1总体设计框图

3、软件总体设计流程图

图2-2 软件设计流程图

4、步进电机

图2-3 28BYJ-48-5VDC步进电机

中间部分是转子,由一个永磁体组成,边上的是定子绕组。当定子的一个绕组通电时,将产生一个方向的电磁场,如果这个磁场的方向和转子磁场方向不在同一条直线上,那么定子和转子的磁场将产生一个扭力将定子扭转。依次改变绕组的磁场,就可以使步进电机正转或反转(比如通电次序为A->B->C->D正转,反之则反转)。而且按照通电顺序的不同,可分为单四拍(A-B-C-D)、双四拍(AB-BC-CD-DA)、单双八拍(A-AB-B-BC-C-CD-D-DA)三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。

由于步进电机的驱动电流较大,单片机不能直接驱动,一般都是使用ULN2003达林顿阵列驱动,当然,使用下拉电阻或三极管也是可以驱动的,只不过效果不是那么好,产生的扭力比较小。

5、电机驱动ULN2003简介

ULN2003 是高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成。ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。输入5VTTL电平,输出可达500mA/50V。ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。

图2-4 ULN2003芯片引脚图

该电路的特点如下: ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路 直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。其接线图如下所示:

图2-5 步进电机驱动电路 6、12864液晶显示简介

12864是128*64点阵液晶模块的点阵数简称。液晶屏类型:STN FSTN;模块显示效果:黄绿底黑字、蓝底白字、白底黑字;驱动方式:1/64 DUTY 1/9 BIAS;背光:LED白色、LED黄绿色;控制器:KS0108或兼容 ST7920 T6963C;数据总线:8 位并口/6800 方式 串口;工作温度:-20℃~+70℃;储藏温度:-30℃~+80℃;点阵格式:128 x 64;现实角度:6:00直视;基本用途:该点阵的屏显成本相对较低,适用于各类仪器,小型设备的显示领域。其接线图如下所示:

图2-6 12864液晶显示与LPC2131接口接线图

三、硬件电路图

图2-7 系统硬件电路图

四、总结

此次基于ARM的步进电机细分驱动控制设计,由于掌握知识及时间有限,我们目前只实现了对步进电机正反转控制以及三种运行方式(单四拍、双四拍、单双八拍)的选择控制,并且实现了在12864液晶显示屏上显示相关的信息。连接好硬件电路,上电复位,程序开始运行。此时步进电机不转动,按下启停键,步进电机开始转动,初始值设为正传,按反转键开始反转,再按正传键则开始正传。当按下加速键时电机开始加速,当按下减速键时电机开始减速。

当然,此次课程设计还存在很多问题,实现的功能较简单,这都需要以后不断加强相关知识的学习从而不断提高自己。

最后,感谢李红岩老师和黄梦涛老师的辛勤教诲。

五、心得体会

这次课程设计的硬件部分由我来完成,虽然不用焊接电路,但是在画硬件图的过程中仍遇到很多问题。例如对Protel软件的不熟悉,许多操作需要多次尝试,才能正确完成;还有就是在电路的连接过程中,由于自己的马虎,线路有错连和少连的现象。但是经过自己的不断努力,最终还是完成了任务。

通过这次课程设计,我从一开始对系统的不太熟悉,到能开发一个简单的系

统,在这整个过程中我学到了很多东西,掌握了一些常用的开发技能,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。

在本次ARM课程设计训练中,不仅锻炼了自己的动手能力,也在向同学老师请教的过程中学到了不少东西,十分感谢老师和同学的帮助。通过本次课程设计,我最深的感触便是,许多东西都需要自己亲自去做去实践去学习,才能真正的弄懂,才能真正的学到东西。

在整个的设计和实践过程中,通过老师的指导和同学的帮助,我们组最终在最后时间完成了任务。通过这次课程设计,才知道自己需要学习的东西还有很多,下来之后一定得加紧学习。平常我们都只是在课堂上学习,通过这次课程设计,实现了从理论到实践的飞跃。增强了认识问题,分析问,解决问题的能力。

最后感谢老师对我们此次课设的耐心指导和帮助!

经过这次ARM课程设计,使我对这学期ARM课程做了全面的复习,并学会将其应用于实践,在这次基于ARM的步进电机细分控制中,我对于ARM、步进电机、液晶显示及相关软件都有了进一步的认识,也是我发现团队合作的重要性,更激起了我对于电子设计方面的热情。

不过,通过这次课程设计,我同样感受到了自身知识的缺乏,如不太熟悉使用上位机进行监控、ARM的掌握不够透彻、还不能脱离参考资料独立进行软硬件设计等,这些都需要我以后不断加强学习锻炼加以增强,这将对于我今后进一步的学习打下基础,我以后会不断根据自身缺点进行学习锻炼,使自己不断提高。最后,感谢老师的辛勤教诲!

六、参考文献

1.ARM嵌入式系统基础教程[第2版] 主编 周立功 北京航空航天大学出版社.2008 2.步进电动机及其驱动控制系统 主编 刘宝廷 哈尔滨工业大学出版社.1997

附录

#include“config.h” #define

MOTOA

1<<10

// P0.10

#define

MOTOB

1<<11

// P0.11

#define

MOTOC

1<<12

// P0.12 #define

MOTOD

1<<13

// P0.13 #define

key1

1<<17

// 加速 #define

key2

1<<18

// 减速 #define

key3

1<<19

//正反转 #define

key4

1<<20

//启停

#define

KEYCON 0x001e0000 // LED控制字 #define

MOTOCON 0x00003c00 // MOTO控制字

#define

GPIOSET(PIN)IO0SET = PIN

// 方便修改置位端口 #define

GPIOCLR(PIN)IO0CLR = PIN

// 方便修改清位端口 #define

RS

1<<9

//P0.9 #define

SID

1<<6

//P0.6 #define

E

1<<4

//P0.4 #define

PSB

1<<2

//P0.2并行或串行,选择低电平串行模式 #define

RST

1<<25

//P1.25,复位脚

unsigned char DAT1[64]=“低速—单四拍A-B-C-D运行方式”;unsigned char DAT2[64]=“中速—双四拍AB-BC-CD-DA运行方式”;unsigned char DAT3[64]=“高速—单双八拍A-AB-B-BC-C-CD-D-DA运行方式”;unsigned char DAT4[64]=“低速反转—单四拍D-C-B-A运行方式”;unsigned char DAT5[64]=“中速反转—双四拍AD-DC-CB-BA运行方式”;unsigned char DAT6[64]=“高速反转—单双八拍D-CD-C-BC-B-AB-A-DA运行方式”;unsigned char DAT7[64]=“

”;unsigned char DAT8[64]=“步进电机细分控制测控1002班:刘怡楠&石娟利”;

void TransferCom(unsigned char data0);void TransferData(unsigned char data1);void delay(unsigned int m);void lcd_mesg(unsigned char *adder1);void SendByte(unsigned char Dbyte);void init(void);void LCD12864_init(void);void DelayNS(uint32 dly);void MOTO_Mode1(uint8 i);

// A-B-C-D void MOTO_Mode10(uint8 i);void MOTO_Mode2(uint8 i);

// AB-BC-CD-DA-AB void MOTO_Mode20(uint8 i);void MOTO_Mode3(uint8 i);

// A-AB-B-BC-C-CD-D-DA-A void MOTO_Mode30(uint8 i);

int main(void){

unsigned int t=0;//启停标志

unsigned int f=0;//正反转标志

unsigned int i=0;//电机运行模式标志

PINSEL0=0x00000000;

PINSEL1=0X00000000;

PINSEL2&=~(0x00000006);//设置所有I/O口为普通GPIO口

IO0DIR =MOTOCON;// 配置I/O输入输出方向

LCD12864_init();//液晶端口初始化

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)

{ init();

lcd_mesg(DAT8);

//显示界面

}

while(1)

{

if(t==0)//电机停止

{ init();

lcd_mesg(DAT7);

IO0CLR=MOTOCON;

if((IO0PIN&key4)==0)t=!t;//key4控制启停转换

} else if(t==1)//电机启动

{ if((IO0PIN&key1)==0)//key1控制加速

{ if(i>=2)i=2;

else i++;

DelayNS(10);

}

if((IO0PIN&key2)==0)//key2控制减速

{ if(i<=0)i=0;

else i--;

DelayNS(10);

}

if((IO0PIN&key3)==0)f=!f;//key3控制正反转

if((IO0PIN&key4)==0)t=!t;

if(f==0)

//正转

{ if(i==0)MOTO_Mode1(10);//低速

else if(i==1)MOTO_Mode2(10);//中速

else if(i==2)MOTO_Mode3(10);//高速

}

else if(f==1)//反转

{ if(i==0)MOTO_Mode10(10);//低速

else if(i==1)MOTO_Mode20(10);//中速

else if(i==2)MOTO_Mode30(10);//高速

} }

}

return(0);}

void DelayNS(uint32 dly){ uint32 i;

for(;dly>0;dly--)

for(i=0;i<5000;i++);} void MOTO_Mode1(uint8 i)

//单四拍A-B-C-D运行方式 {

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)

{

init();

lcd_mesg(DAT1);//显示字符串DAT1

/* A */

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOA);

/* B */

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOB);

/* C */

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOC);

/* D */

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOD);

} } void MOTO_Mode10(uint8 i)

//单四拍D-C-B-A运行方式 {

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)

{

init();

lcd_mesg(DAT4);

//显示字符串DAT4

/* D */

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOD);

/* C */

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOC);

/* B */

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOB);

/* A */

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOA);

} } void MOTO_Mode2(uint8 i)

//双四拍AB-BC-CD-DA运行方式 {

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)

{

init();

lcd_mesg(DAT2);

//显示字符串DAT2

GPIOSET(MOTOA);

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOA);

GPIOCLR(MOTOB);

/* BC */

GPIOSET(MOTOB);

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOB);

GPIOCLR(MOTOC);

/* CD */

GPIOSET(MOTOC);

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOC);

GPIOCLR(MOTOD);

/* DA */

GPIOSET(MOTOD);

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOD);

GPIOCLR(MOTOA);

} } void MOTO_Mode20(uint8 i)

//双四拍AD-DC-CB-BA运行方式 {

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)

{

init();

lcd_mesg(DAT5);

//显示字符串DAT5

GPIOSET(MOTOA);

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOA);

GPIOCLR(MOTOD);

/* DC */

GPIOSET(MOTOD);

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOD);

GPIOCLR(MOTOC);

/* CB */

GPIOSET(MOTOC);

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOC);

GPIOCLR(MOTOB);

/* BA */

GPIOSET(MOTOB);

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOB);

GPIOCLR(MOTOA);

} } void MOTO_Mode3(uint8 i)

//单双八拍A-AB-B-BC-C-CD-D-DA运行方式 {

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)

{

init();

lcd_mesg(DAT3);

//显示字符串DAT3

/* A */

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOA);

/* AB */

GPIOSET(MOTOA);

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOA);

GPIOCLR(MOTOB);

/* B */

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOB);

/* BC */

GPIOSET(MOTOB);

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOB);

GPIOCLR(MOTOC);

/* C */

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOC);

/* CD */

GPIOSET(MOTOC);

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOC);

GPIOCLR(MOTOD);

/* D */

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOD);

/* DA */

GPIOSET(MOTOD);

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOD);

GPIOCLR(MOTOA);

} } void MOTO_Mode30(uint8 i)

//单双八拍D-CD-C-BC-B-AB-A-DA运行方式 {

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)

{

init();

lcd_mesg(DAT6);

//显示字符串DAT6

/* D */

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOD);

/* CD */

GPIOSET(MOTOC);

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOC);

GPIOCLR(MOTOD);

/* C */

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOC);

/* BC */

GPIOSET(MOTOB);

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOB);

GPIOCLR(MOTOC);

/* B */

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOB);

/* AB */

GPIOSET(MOTOA);

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOA);

GPIOCLR(MOTOB);

/* A */

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOA);

/* DA */

GPIOSET(MOTOD);

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOD);

GPIOCLR(MOTOA);

} } void delay(unsigned int m){

unsigned int i,j;

for(i=0;i

for(j=0;j<50;j++);} void init(void){ delay(40);

//大于40ms的延时程序

IO0SET=PSB;//设置为串行工作方式

delay(1);

IO1CLR=RST;//复位

delay(1);

IO1SET=RST;//复位置高

delay(10);

TransferCom(0x30);//RE=0,G=0,图片显示关

delay(100);

TransferCom(0x0C);//D=1,显示开

delay(100);

TransferCom(0x01);//清屏

delay(10);

TransferCom(0x06);//模式设置,光标从右向左加1位移动

delay(100);} void lcd_mesg(unsigned char *adder1){ unsigned char i;

TransferCom(0x80);

delay(100);

for(i=0;i<32;i++)

{ TransferData(*adder1);

adder1++;

}

TransferCom(0x90);

delay(100);

for(i=32;i<64;i++)

{ TransferData(*adder1);

adder1++;

} } void SendByte(unsigned char Dbyte){ unsigned char i;

for(i=0;i<8;i++)

{ IO0CLR=E;

if((Dbyte&0x80)==0x80)IO0SET=SID;

else IO0CLR=SID;

Dbyte=Dbyte<<1;

IO0SET=E;

IO0CLR=E;

} }

void TransferCom(unsigned char data0){

IO0SET=RS;

SendByte(0xf8);

// 11111,RW=0,RS=1,0

SendByte(0xf0&data0);//高4位

SendByte(0xf0&data0<<4);//低4位

IO0CLR=RS;

} void TransferData(unsigned char data1){

IO0SET=RS;

SendByte(0xfa);

// 11111,RW=0,RS=1,0

SendByte(0xf0&data1);//高4位

SendByte(0xf0&data1<<4);//低4位

IO0CLR=RS;} void LCD12864_init(void){

IO0DIR|=(E|SID|RS);//设置为输出

IO0CLR=(E|SID|RS);

IO1DIR|=RST;

IO1CLR=RST;

//复位

delay(1);

IO1SET=RST;

步进电动机控制器 篇6

步进电动机控制系统主要是由步进控制器、功率放大器及步进电动机组成。步进 控制器一 般由缓冲 寄存器、环形 分配器、控制逻辑以及正反转控制门组成, 其主要作用是把输入 的脉冲转换成环形脉冲, 控制步进电动机的运行和方向[1]。由于这种控制器电子线路复杂、可靠性差, 因而在很多场合由可 编程逻辑控制器取而代 之[2,3]。然而, 可编程逻 辑控制器 虽然简化了线路, 提高了系统的可靠性, 但却增加了成本。一 是系统硬件的投入, 二是相关软件编程学习的投入, 需要大量的时间。TC55控制器却凭借它自身的优势很好地解决了这些问题。上蜡机样机的调试成功, 充分印证了这一点。

1TC55控制器简介

1.1外观

TC55面板型运动控制器, 采用高性能32位CPU, 驱动装置采用细分步进电机或交流伺服电机, 配备液晶显示屏, 全封闭触摸式操作界面。该系统具有可靠性高、精度高、噪音小、操作方便等特点。本控制器可控制1~3台电机的运动, 可实现点位、直线插补、圆弧插补等操作, 具有循环、跳转及简易PLC等功能。图1为TC55控制器的面板示意图。

图1也是TC55控制器的开机界面, 按左边的F1~F4按钮分别进入自动运 行、手动运行、程 序管理和 参数设置 界面。X、Y、Z分别表示当 前的坐标 位置;F表示当前 运行的速 度;100%是F值的速度倍率。

1.2编程语言

TC55控制器的编程语言简单易懂, 类似于数 控编程。下面举例说明。

例:X轴正向行进50mm, Y轴负向行进25mm, 合成速度是800mm/min。然后延时10s, 最后X、Y轴按照同样速度返回至程序零点。

n001直线运动文件:1111标号:0

X:50.000Y:-25.000F:800

n002延时文件:1111标号:0延时时间:10

n003绝对运动文件:1111标号:0

X:0.000Y:0.000F:800

程序中n001是行号, 表示程序第一行。TC55控制器最多可以编写480行。

直线运动、绝对运动, 是运动方 式, 还有点位 运动、插补运动等。直线运动表 示以该行 给定速度F值运行, 采用相对 坐标;绝对运动表示以该行给定速度F值运行, 采用绝对坐标。

1111是文件名, 用数字表示。

标号默认是0, 如果不用一般不写。在做条件跳转时就要用到这个标号, 可以随意编写, 以备用于程序跳转时的入口。

2TC55控制步进电动机系统

图2是控制器与步进电动机驱动器接线示意图, 是利用控制器来进行的X/Y轴双轴控制。X轴代表一台步进电动机的运行轨迹, Y轴代表另外一台步进电动机的运行轨迹。图中X轴:A+、A-、B+、B-分别连接步进电动机两相绕组的两端, Y轴同理。当把外部 硬件 (控制器、驱动 器和电动 机) 连接好后, 利用TC55控制器进行软件编程。X、Y轴便可以在步进电动机的驱动下按照编辑好的程序要求进行相应的动作。

实际应用中可以通过TC55控制器本身来操作, 也可以通过控制器的输入端口定义一些端口来连接外部按钮进行操作, 从而直接对外部按钮进行操作, 而不直接对控制器本身进行操作。这样, 既可以简化操作过程, 也可以延长控制 器的使用 寿命、节约成本。

TC55控制器输入/输出端口定义, 如表1所示。

3实例

图3所示系统为某企业制造的 上蜡机。 上蜡机要 求能够在接收到外部指令信号后进行相应的进给和补偿, 因此是双轴控制的。如图所示, 上面行程长的定义为X轴, 用于进给;下面行程短的定义为Y轴, 用于补偿。

实际样机经过软件、硬件的调整, 最终达到 了实际生 产要求。即:X轴作为进给, Y轴作为补 偿。当输 入端口7得到进给信号时, X轴可以往 复运动。当输 入端口8得到补偿 信号时, Y轴可以运动进行位置补偿。

当X轴做往复运动时:正方向运动时, 相应的输出端口指示灯点亮;负方向运动时, 指示灯熄 灭;当X/Y轴分别到 达运动端的极限位置时, 对应的轴向运动应立即停止, 以免发生 危险, 同时发出报警信号。而 且, 在X/Y轴到达极 限位置时, 可以手动操作, 接通输入端口10, 可以使两轴连接的执行机构返回到程序零的位置。

4结语

通过采用TC55控制器来控制步进电动机, 实现了工业生产中应用的上蜡机系统。通过对样机的调试 (包括硬件机械结构的调整和软件编程的调试) , 此系统完全达到了生产需求和功能要求。而且, 此系统编程语言比较直观明了, 易于快速 理解和掌握。TC55控制器替代了工业生产中常用的可编程序控制器, 在实现生产需求的同时, 降低了系统的成本, 节约了企业资金, 提高了企业的经济效益。

此系统在实际生产线上的应用对类似的研究 也将起到 一定的借鉴作用。

摘要:介绍了步进电动机控制系统的组成, 分析了传统步进控制器和可编程逻辑控制器的优缺点, 提出了在步进电动机控制系统中采用TC55控制器, 阐述了TC55控制器的外观和软件编程方法, 给出了控制器与驱动器的连接图。并以上蜡机为例, 通过对实际样机的调试, 证明了采用TC55控制器可在实现生产需求的同时, 降低系统的成本, 从而提高企业的经济效益。

关键词:TC55,步进电动机,控制系统,驱动器,上蜡机,样机

参考文献

[1]梁强.西门子PLC控制系统设计及应用[M].北京:中国电力出版社, 2011

[2]陈果.PLC控制步进电机分度的设计与实现[J].伺服控制, 2010 (2)

步进电动机控制器 篇7

关键词:直线步进电动机,油门控制,改进,应用

0 引言

在传统的汽柴油发动机上,通常用手柄连接软轴来控制油门,这种方式控制很不精确,使得发动机油耗大,并且软轴通常为多股钢丝绞索,这极易造成磨损,引起发动机不能正常工作。随着技术的发展,软轴控制油门方式已逐渐被电动控制油门所取代,即用电动机带动机械结构自动驱动油门来代替人工操作手柄驱动油门,由于电动机可以通过可编程控制器(PLC)的编程来进行控制,而根据负载对发动机状态进行调控,及根据实际需要修改控制方式均可由PLC参数来设定,这样电动控制油门就可彻底消除发动机长时间空载高速运转的恶劣工况,降低油耗,有效延长发动机寿命。

一般说来电动控制油门具有以下特点:

1) 操作简单:通过按钮可以对油门进行自动控制,与手动操作手柄控制相比,减少了操作者的工作量。

2) 参数化控制:可以通过对PLC参数设定来调节油门的工作状态。

3) 定位精度好:由于执行机构的位置是由控制器设定的,因此它的位置更可以保证。

4) 使用寿命长:电气控制比起手动控制零件的寿命更长。

正是由于电动油门控制有如此多的优点,已经被国内越来越多的工程机械厂家所使用。

1 常用的电动控制油门的方式与缺陷

目前国内的电动控制油门大体有两种控制形式,即直流电动机控制油门方式和步进电动机控制油门方式。

1.1 直流电动机控制油门方式其控制框图如图1所示。

典型的直流电动机控制油门机械结构简图如图2所示。

原理为直流电动机带动齿轮,带动滚珠丝杆,再由滚珠丝杆上的螺母带动推杆运动,推动油门工作。由于该种结构的直线运动是由电动机的旋转运动通过外部机构转换而来,因此整个空间结构就比较大,对用户的安装空间有一定的限制。在间接传动的情况下,过多的机械装置就会产生更大的噪声,降低传动的效率,增加零部件磨损和发生故障的可能性。而采用齿轮和滚珠丝杆不仅使得该机构的价格比较昂贵,也不利于今后的维护。直流电动机本身也存在着一定的缺点,电刷需要定期更换,在多粉尘或腐蚀性环境中直流电动机需要经常清洗。由于直流电动机本身不能实现位置控制,所以需要外部加反馈来闭环控制。

1.2 步进电动机控制油门方式

其控制框图如图3所示。

典型的步进电动机控制油门的机械结构简图如图4所示。原理为运动参数通过控制器,变成脉冲信号,脉冲信号进入步进电动机,步进电动机产生高精度的角位移,带动齿轮,齿轮带动滚珠丝杆,再由滚珠丝杆上的螺母带动推杆运动,推动油门工作。与直流电动机控制方式相比,步进电动机能实现停止时保持力矩,运动时脉冲信号的数目精确决定角位移的大小,脉冲信号输入方式决定滚珠丝杆正反转的方向,这些特点使得步进电动机控制油门方式可采用开环控制方式,无需使用传感器或编码器等反馈设备。但是这种方式同样通过齿轮和滚珠丝杆来传输的,因此和直流电动机控制油门方式一样,也存在着结构体积大,不利于客户安装,传动效率低,价格昂贵等缺点。

2 直线步进电动机对油门控制的改进原理与应用

2.1 改进原理

一家专门生产直线电动机的厂家,考虑到以上两种电动控制油门的方式均存在着一定的可改进之处,结合该厂生产直线电动机的优势,研发出一种新型的用直线步进电动机控制油门的产品方案,其控制框图如图5所示。

设计的直线步进电动机控制油门的机械结构简图如图6所示。原理为直线步进电动机在转子中心安装了一个螺母,相应采用一根螺杆通过固定导套与花键轴的配合来限制轴与螺杆组件的旋转运动,并与螺母啮合,使螺杆输出直线运动。这样就把其他电动机所需的外部旋转运动转化为直线运动的机构在电动机内部实现,从而在减少整个装置体积的同时,也提高了油门控制的精度。

2.2 改进后特点

在实际使用时,注意到本设计的机构具有如下特点。

1) 结构紧凑:运动转换在电动机内实现大大减少了体积,有利于客户的安装。

2) 可靠性高:由于步进电动机没有电刷,工作更可靠。

3) 运动效率高:该种电动机采用低磨损的不锈钢梯形螺杆,再加上由自润滑的热塑性材料做成的螺母,使的螺杆螺母运动摩擦系数显著降低,从而极大地提高了电动机的运动效率。

4) 定位精度高:使用寿命长,通过直线步进电动机的实验表明,在额定负载下运行1000000个周期后,精度还继续保持在0.05mm范围内。

5) 终生润滑:专门配制的高性能合成油脂,使得该种电动机使用过程中不需要再加润滑油,并具有出众的耐久性。

6) 控制简单:功能强大,只要通过PLC或单片机就可以对电动机进行速度,位移的精确控制。

2.3 改进后的应用

鉴于以上特点,在油门控制中直线步进电动机就有了它无可替代的优越性。图7所示为根据这一设计思路设计的一款产品图。

3 直线步进电动机控制油门方式的进一步优化改进

为使产品更加贴合用户要求,还对实际产品做了多方面的优化改进。

3.1 保护性措施

由于油门的工作环境可能比较恶劣,油污,灰尘,杂质,阳光,雨水等都会侵蚀直线执行机构,因此如图8所示,实际产品采用喷塑处理的定子,阳极氧化的后盖罩,防油污的橡胶套,不锈钢的转接头等结构,使直线步进电动机的内部不受到工作环境影响,提高可靠性。

3.2 优化电动机功能性配置

a) 把轴与螺杆组件做成标准化、系列化的结构件,使用户能根据油门的安装位置来选择组件行程(10~50mm)。

b) 预设两个极限开关可选,一个极限开关用来做极限保护,另一个极限开关用来做原点复位,随时消除由于螺杆、螺母转化运动过程中产生的累积误差,确保油门控制的可靠性。

c) 由于市场有众多的编码器可选,机构连接电缆尽量考虑与编码器及与用户的电路的连接方式,使产品有可选性、系列化、通用化。

d) 根据用户的产品来设计特殊结构的刚性转接头,避免使用了联轴器,从而保证PLC控制油门的正确性。

4 结语

设计的用直线步进电动机控制油门的产品经多家企业的实际使用,已取得良好的效果,许多产品已有两年的无故障运行,随着订单的不断增加,这项新技术必将使直线步进电动机在油门控制领域发挥更重要的作用。

参考文献

[1]孙宾,仲康民.圆柱-钢球增力机构在液压夹具中的应用[J].组合机床与自动化加工技术,2003(9).

[2]谢光辉,等.摩托车发动机曲轴箱体自动吹屑装置的研究[J].制造技术与机床,2007(9).

[3]李雪峰,等.外圆磨床数控改造实现螺杆磨削加工技术研究[J].组合机床与自动化加工技术,2003(7).

[4]庄曙东,等.风力发电动机主轴端面孔加工数控专机的研制[J].制造技术与机床,2010(1).

[5]王运辉,陈兆明.中小型电动机端盖的改进设计[J].组合机床与自动化加工技术,2003(7).

步进电动机控制器 篇8

随着商品混凝土的发展,广大用户对混凝土搅拌车产品的要求不断提高,因此,产品质量和性能在不断的改进,其中最能体现这一点的是搅拌车操纵控制系统的不断演化。

20世纪八九十年代,搅拌车操纵控制系统主要采用软轴控制器。图1所示为一台液压机械传动的搅拌运输车的搅拌驱动装置总成。这个传动系统的主要特点是通过液压传动部分调速,利用机械传动部分减速。它由搅拌筒、搅拌筒的驱动装置(包括取力传动轴、液压油泵、液压油马达、齿轮减速器等)组成。工作时,发动机通过取力传动轴、液压传动系统及齿轮减速器终端,减速驱动搅拌筒转动。搅拌筒正转时,进行搅拌或装料;反转时,卸料。根据搅拌车的工序,工作人员通过操纵装置,改变液压泵的斜盘角度来实现对搅拌筒转速和转动方向的控制。这种操纵控制系统结构在搅拌车后部一侧进行操作,很不方便。20世纪90年代初期,许多厂家开始采用机械连杆加软轴的操纵控制系统,可实现驾驶室内及搅拌车后部两侧操作,有的在搅拌车上部也可操作。这种系统操作方便,但结构复杂,工作可靠性差,各联接紧固件容易松动,特别是在路况不好的施工工地,一旦松动将可能引起危险事故。

1-操纵杆;2-搅拌筒;3-减速器;4-液压马达;5-油泵;6-油箱;7-发动机

以上的操纵控制系统都不能精确控制搅拌筒转速,特别是在运输途中,容易造成发动机功率过多损耗而降低汽车底盘的行驶性能。

基于上述缺点,本文设计了采用电液控制元件,对搅拌筒的转速进行调整控制的电控操纵系统,它主要有以下特点:(1)运输过程中保证恒速转动,不受搅拌筒负载及发动机转速变化的影响;(2)控制器有驾驶室内控制器和室外控制器(遥控控制器)两部分,控制权可以相互切换,操纵灵活、安全、方便;(3)新型操纵控制系统是创新的电子技术和可靠的静压传动系统的成功结合。

2 混凝土搅拌运输车电控操纵系统设计

混凝土搅拌车电控制器有驾驶室控制器和遥控控制器两种方式。电控制器装有专用的控制模块,控制线连接属于机械固定接触方式,性能安全可靠。

从操纵控制系统的工作机理来说,汽车底盘的发动机油门控制必须采用电子调速器,即电控油门。电控油门的方式在进口底盘中已被广泛应用。液压泵采用电比例控制专用泵,减速箱安装速度传感器,德国ZF公司、力士乐公司及美国萨澳公司皆已推出满足以上要求的产品。

本文设计提出的混凝土搅拌车电控操纵系统利用MCS-51系列单片机实现对步进电动机的控制,从而进一步将步进电动机的旋转运动转换为直线运动,以便调节发动机油门开度和液压泵的流向,达到控制转速和改变搅拌筒旋转方向的目的,实现对搅拌筒驱动装置的控制。

2.1 步进电动机

步进电机是数控式电机,是工业控制及仪表中常用的控制元件之一,最大特点是通过输入脉冲信号来进行控制,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。它具有输入脉冲与电机轴转角成比例的特征,将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。

2.2 控制电路

步进电机控制(包括控制脉冲的产生和分配)可以使用软件方法,即用单片机实现。总体设计方案功能说明:通过按键S0开启控制器,通过S1、S2分别实现混凝土搅拌车搅拌筒的正反转,通过S3、S4分别实现凝土搅拌车搅拌筒转速的增减,在系统程序中增加自动报警程序,在电路中增设报警的硬件电路以在控制过程中当搅拌筒转速过高时报警,转速为零时提示。控制电路总图如图2所示。控制电路共包括开关控制电路、振荡器和时钟电路、复位电路、三相步进电动机三相绕组电路和报警提示电路等5个分支电路。

2.3 步进电动机与执行机构的连接

步进电动机与执行机构动力传递路线见图3所示。各部件的功能如下:

驱动元件:采用步进电动机,体积小,扭矩大,响应快,控制精度高。

传动机构:采用两级齿轮传动,传动精确,输出力矩增大而速度降低。

执行机构:通过输出轴与花盘之间摩擦传动(锥面)输出力矩,并使花盘与软轴连接,将旋转运动转换为直线运动。

反馈机构:通过电位器齿轮将输出转角信号反馈给电位器控制油门开度。电位器齿轮与电位器之间安装了回位弹簧,方便了电位器的调整。

支承元件:壳体采用铸铝,重量轻。设置了可调安装支架和升降台,使安装位置不受空间限制。安装缓冲弹簧减轻了输出轴限位冲击。

3 结束语

为了提高混凝土搅拌车操作控制系统的安全可靠性,同时操作灵活方便,本文提出并完成了对其操作控制系统改造成电控系统的研究工作。由于设计的混凝土搅拌车操作控制系统有待于在实际工况中进一步考察其稳定性和可靠性,尚有下面问题需要探讨和完善。

1)该控制系统的硬件部分需要根据混凝土搅拌车驱动控制系统布局统一安装。

2)控制系统的性能参数需要根据实际工况具体调试和调整。

3)可以对其单片机的空闲端口进行硬件电路扩展,在验证其设计的可靠性与稳定性后,可进一步增设反馈电路以实现控制系统更多功能。

4)利用80C51单片机实现控制只是混凝土搅拌车驱动控制系统软件设计的一部分,最好能将其硬件电路与混凝土搅拌车内部线路进行整合以期达到更好的兼容性。

参考文献

[1]钟富昭.8051单片机典型模块设计与应用[M].北京:人民邮电出版社,2007.

步进电动机控制器 篇9

在数控机床加工过程中,总是希望步进电动机的运行速度尽可能快些,快速地达到控制终点。但是由于受步进电动机本身的特性限制,如果在速度较高的状态起、停及运行速度突变时,往往会出现失步现象(特别是带了负载时),使步进电动机不能正确地跟随进给脉冲。究其原因,是步进电动机的响应频率fs比较低,而空载最高起动频率也有所限制。

数控系统要求以某种最优的方式控制进给脉冲的频率,即要有自动升降速控制的功能。该任务可以通过软件或硬件来实现,最常用的方法还是用软件来完成自动升降速过程。

1 软件实现变速控制简介

软件实现自动升降速的基本思想是:在起动时,以低于响应频率fs的速度运行,然后慢慢加速,加速到fs后,就以此频率恒速运行。当快到终点时,又使其慢慢减速,再以低于响应频率fs的速度下运行,直到走完规定的步数后停机。这样,步进电动机便可以最快的速度走完所规定的步数,而不出现失步现象。

经济型数控机床中,常使用两种变速方式,如图1所示。

fH为步进电动机允许的最高频率;f0为起动频率;f指为指令脉冲频率。图1 a)中用电机所允许的最大加速度和最大减速度等加速度上升或下降,所以能保证时间最省;图1 b)中加减速段近似于指数曲线,开始时加速度逐渐加大可以避免冲击,减速段到最后减速度越来越小,有助于准确停止在目标位置[1]。本文重点讨论这两种速度图的控制软件设计。

2 步进电动机等加速度变速控制及程序设计

2.1 等加速度变速控制运行分析

如图2所示为步进电动机的等加速变速控制运行过程。设步进电动机以起动频率f0起动后,以加速度a进行加速,经过K步运行后达到最高频率fH,以后只需匀速运行。行走一段时间后,则开始减速。从最高频率fH开始,经过S步之后降至f0而停止[2]。

2.1.1 加速阶段的参数求法

对于线性加速进程,图2的坐标系可表示为:

当步进电动机运行x步,所对应的频率为fx,所用时间为tx时,则有:

x=f0tx+21 atx2(2)

可得:

假设相邻两个进给脉冲直接的时间间隔Tx为:

将式(3)代入式(1)可得:

把式(5)代入式(4)可得:

当x=1时取T1=1/f0,以后各步x(x=1,2,3,…,K)间的步进时间间隔Tx可用式(6)递推出来。

2.1.2 匀速阶段的参数求法

步进电动机达到最高运行频率后匀速运行。此时的步进时间间隔为Tx,有:

2.1.3 减速阶段的参数求法

设其加速度为-β,负号表示减速。同上述分析方法,有:

同上分析可得减速阶段相邻两步的时间间隔:

当x=P时Tp=1/fH,以后各步x(x=P,P+1,…,P+S)间的步进时间间隔可用式(9)递推出来。

2.2 等加速度变速控制程序设计

等加速度运行控制程序如图3所示。

经分析可知,根据式(6)、(7)、(9)就可求出电机变速全部运行过程中两步之间的时间间隔。但这些分式计算较为繁琐,编程时一般不采用在线计算控制速度,而采用离线计算出各个Tx,通过延时时间表把Tx编入程序中,然后按照表地址依次取出下一步进给Tx值,通过延时程序发出相应的步进命令。以三相六拍步进电动机运转方式为例,运用定时器延时,用MCS-51汇编程序编写等加速变频控制程序和总的变速运行控制程序,程序清单如下:

3 步进电动机的变加速度变速控制及程序设计

3.1 变加速度运行积分器控制

采用积分器实现变加速度自动升降速控制原理见图4。误差寄存器A中存数N等于指令脉冲数N指与输出脉冲数N出之差。对N以频率f0进行累加运算。当累加之和超过累加器容量时,将在最高位产生溢出,此溢出脉冲即作为输出脉冲送至环形分配器[3]。

设寄存器和累加器的位数为n位,则其容量为2n,累加数的溢出次数为N溢出=Nf0Δt/2n,溢出频率即输出脉冲频率为f出=N溢出/Δt=Nf0/2n,误差寄存器中数的变化ΔN=(f指-f出)Δt。

当指令脉冲频率由0突变为f出时,f出=f指,其中,T为时间常数,以上为升速进程。

当指令脉冲由f指突变为0时,当f指突变时,f出均按指数曲线变化,所以能满足自动升降速的要求。

改变时间常数T可以调整升速与降速过程的时间,采用自动升降速控制后,输出脉冲将滞后于指令脉冲。

3.2 变加速度变速控制程序设计

用软件实现变加速度运行的程序设计基本思路如下:(1)累加脉冲和指令脉冲的产生。设置两个计数器C0和C1,每个机器指令周期值减1,当其值减至0时发出一个累加脉冲,同时C0赋初值,C1值减1。当C1值为0时发出一个指令脉冲。C1中的初值表示累加脉冲频率和指令脉冲频率的比值。(2)误差寄存器中存数N的计算。根据N=N指-N出,每当CPU产生一个指令脉冲时,寄存器中的值加1;每当累加器产生溢出时,寄存器中的值减1。(3)误差寄存器中存数N的累加及输出进给脉冲的产生。每当CPU产生一个累加脉冲时,将误差寄存器中的存数N与上次存储在寄存器B中的累加数M相加,若产生溢出,则发送一个输出进给脉冲,将在累加器中的余数存入寄存器B;若无溢出,将累加结果存入寄存器B中。变加速度运行控制程序如图5所示。

4 结语

讨论步进电动机变速控制的主要技术问题,具体应用时还要考虑其他细节。如系统应既能完成大位移,又能完成小位移。在要求位移小时,速度增加还未到达最高速时,位移量已达到所要求的一半,就应立即转入减速阶段(无等速运行阶段)。为使系统具有这种能力,就须在检查是否已达到最高速前,先检查位移是否已达到所要求行程的一半。

摘要:步进电动机在高速运行时,往往会出现失步现象。为使数控系统以最优的方式控制进给脉冲频率,以经济型数控系统为例,分析了等加速度和变加速度两种步进电动机的变速控制运行方式,给出了具体的程序设计,通过软件控制来完成自动升降速过程。

关键词:步进电动机,变速控制,数控系统

参考文献

[1]张立强,谈世哲.基于指数型曲线的步进电动机升降速控制方法[J].工矿自动化,2010,36(3):85-88.

[2]王爱玲,王俊元,马维金,等.现代数控机床伺服及检测技术[M].3版.北京:国防工业出版社,2009.

步进电机控制器的设计 篇10

目前,国内外运动控制器的种类和功能不断丰富和发展,但总的情况是,国外的运动控制器功能强,使用的技术也比较先进,但价格相当昂贵。更重要的是这种运动控制器的使用方法不易为普通用户所掌握,且编程复杂,即使是专业人员也很难掌握,这两大因素限制了它的使用范围。国内的运动控制器性能和质量总体来说较国外的产品有一定的差距,或性能单一,或结构复杂,且同样存在着使用不方便、难以掌握的缺点。针对当前状况,本文设计一种结构简单、成本又低、使用和维护方便的运动控制器。

2 控制器的设计原理

步进电机控制器由硬件部分和软件部分共同组成,核心部分是控制软件。控制器硬件部分以Atml公司的AT89C51单片机为核心,在本系统中,主要控制三相步进电机带动丝杠的转动,辅以外围接口电路及相关电路构成,其结构框图如图一所示。

3 控制器的电路设计

3.1 步进电机控制器的设计

在本次系统设计中我们选用的是三相步进电机。步进电机是一种将电脉冲转化为角位移的执行机构,即当步进驱动器接收到一个脉冲信号,就驱动步进电机按设定的方向转动一个固定角度。我们可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的,同时我们可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到加速的目的。步进电机的驱动电路根据控制信号工作,控制信号由单片机产生,其工作原理为:通电换相这一过程成为脉冲分配。例如:三相步进电机的三拍工作方式,其各相通电顺序为A-B-C-D,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。如果给定的工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。如果给电机发一个控制脉冲,它就转一步,再发一个脉冲,它就会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。本次系统设计要使用的三相步进电机为三相六拍方式———单相绕组和双相绕组交替施加电流脉冲A→AB→B→BC→C→CA正转,A→AC→C→CB→B→BA反转。由于从单片机输出的电流很小,不足以驱动电机,所以步进电机采用达林顿管驱动,其中一个步进电机的A B C三相分别通过驱动器P2.0、P2.1和P2.2提供控制步进电机的时序脉冲,另一步进电机的三相接P2.4、P2.5P2.6控制步进电机的运行。系统采用软件来完成脉冲的分配,这样可以根据应用系统的需要,方便灵活地改变步进电机的控制方式,步进一步的时间可由两个控制字的送出时间间隔决定。这里的输出电路输出两路信号:即X轴脉冲和Y轴脉冲,两路信号分别从单片机的P2.0-P2.6经过缓冲器再经过光离输出。输出的两路信号经过驱动器驱动X轴步进电机和Y轴步进电机,从而控制工作平台按规定的轨迹移动,电路图如图二所示。

3.2 显示电路的设计

本系统采用四位七段数码管动态扫描现实的方式。该系统又采用两片74LS273芯片扩展了8个I/O口以满足设计要求。数码管的前两位显示的是X轴的坐标,后两位显示的是Y轴的坐标。所谓扫描七段的显示LED的控制,又叫做分时控制的七段显示LED,把所有显示LED的笔画连接在一起,而保持个别的共阳极或共阴极分开,并且在同一时间只能点亮一个七段显示LED。不过由于人类眼睛在看过东西之后,都会有约40ms的影响残存,因此只要影像小时不超过40ms,则眼睛将无法察觉七段显示LED的熄灭,而误以为所有的七段显示LED是一起点亮。

在本设计中,当系统初始化状态下,四位LED数码管都显示0。当没有键按下时,不论按其它任何键时,四位LED数码管还是都显示为0,。只有当键盘上有设置键按下时,才可以设置坐标,这时才可以对数字键进行操作。当设置完坐标后,数码管就显示相应的坐标。利用AT89C51单片机的P0端口的P0.0—P0.7通过一个74LS273连接到共阴数码管的a—h段,再通过另一个74LS273连接到位选数码管的位选1234。通过P2.6、P2.7和P3.6连接74LS02从而选择位选与段选。74LS273是一种带清除功能的8D触发器,1D~8D为数据输入端,正脉冲触发,低电平清除,常用作8位地址锁存器。D0~D7:输出;第一脚WR:主清除端,低电平触发,即当为低电平时,芯片被清除,输出全为0;CP(CLK):触发端,上升沿触发,即当CP从低到高电平时,D0~D7的数据通过芯片,为0时将数据锁存,D0~D7的数据不变。

3.3 键盘的电路设计

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口就可以构成4*4=16个按键,比直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。

在本次设计中我们就采用了4*4=16键盘。矩阵式键盘中,行、列线分别连接到键盘开关的两端,行线通过上拉电阻接到+5V上。当无键按下时,行线处于高电平状态;当有键按下时,行列将导通。此时,行线电平将由与此行线相连的列线电平决定,这是识别按键是否按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,按键按下与否均影响该键所在行线和列线的电平,按键间将相互影响,故必须将行线、列线信号配合起来做适当处理,才能确定闭合键的位置。对键盘的响应取决于键盘的工作方式,键盘的工作方式应根据实际应用系统中CPU的工作状况而定,其选取的原则是既要保证CPU能及时响应按键操作,又不要过多占用CPU的工作时间。通常,键盘的工作方式有三种:变成扫描、定时扫描和中端扫描。在设计中,S1—S10位数字键,S11—S15为功能键。启动键:用于所选运行方式的开始控制键;设置键:手动设定任意坐标点的参数值。对于直线设置两个端点坐标,对于圆设置圆心与半径;返回键:让物体自动回到原点;模式键:首先利用数字键设置圆半径进行确认后,再按启动键运行。键盘功能如图三所示:

3.4 复位电路的设计

单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如:复位后PC=0000H,使单片机从第一个单元取指令。单片机复位的条件是:必须使RST/VPd或RST引脚加上持续两个机器周期(24个震荡周期)的高电平。例如,若时钟频率为12MHz,机器周期为1us,则只需2us以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。本系统设计中是上电复位电路,它是利用电容充电来实现的。在接电瞬间,RESET端的电位与VCC相同,随着充电电流的减少,RESET的电位逐渐下降。只要保证RESET为高电平的时间大于两个机器周期,便能正常复位,其中R=1K,U=22UF。复位电路图如图四所示:

3.5 晶振电路的设计

单片机工作时,是一条一条地从ROM中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为机器周期。一个机器周期包括12个时钟周期。如果一个单片机选择了12MHz晶振,它的时钟周期是1/12us,它的一个机器周期是12*(1/12)us,即为1us。

AT89C51单片机的所有指令中,有一些完成的比较快,只要一个机器周期就行了,有些完成的比较慢,得要两个机器周期,还有两条指令需要四个机器周期才行。

4 结束语

本文主要介绍了步进电机二维运动控制器的基本组成及硬件部分单元的电路设计,基本实现了两轴控制,能方便地进行联动控制。但硬件电路在设计上有很多不完善的地方,需要根据实际应用情况不断修改和完善。硬件电路的核心是单片机,其外围电路可根据实际情况进行取舍。

摘要:本文系统地论述了应用单片机开发步进电机二维运动方法,基本实现了两轴控制,能方便地进行联动控制。由于控制软件对步进电机采用了适当的调速方案,使得电机在运动过程中没有失步现象,运行平稳,定位精度高,重复性好。控制器下位机软件用单片机汇编语言编制,控制部分硬件结构简单,成本低廉。该二维运动控制器经过严格测试,达到了设计要求。

关键词:步进电机,运动控制器,单片机

参考文献

[1]潘新民.单片微型计算机使用系统设计[M].北京:人民日报出版社,1992.

[2]沙占友.单片机外围电路设计[M].北京:电子工业出版社,2003.

上一篇:纵坡设计下一篇:北京旧城