中国工控网 - 中国工控网,专业工控信息服务平台 !

商业资讯: 企业新闻 | 人物专访 | 企业关注 | 专家观点 | 技术文摘 | 解决方案 | 展会新闻 | 工控知识 | 工控百科 | 产品推荐

你现在的位置: 首页 > 商业资讯 > 使用维修 > 基于IPC的悬挂运动控制系统

基于IPC的悬挂运动控制系统

信息来源:gkong.biz  时间:2010-04-21  浏览次数:192

  作者:林琳单位:
  【摘 要】
  本文设计基于PC机控制步进电机的悬挂运动控制系统,控制质量大于100克物体在小于100°倾斜的白板上做规定运动。硬件部分,本系统通过工业PC机ISA总线实现与运动控制器通信,主要使用了步进电机、驱动器、8253、8255芯片以及各种电阻电容等部件;软件部分,运用Visual C++语言,结合运动控制卡,设计给定物体在初始坐标下的直线运动和给定圆心和半径的圆周运动以及一定角度的圆弧运动。由于基于PC机,可通过软件接口实现在Windows界面下的控制,具有很好的人机交互性能(HCI),方便用户直接进行操作。该系统在设计时,通过对于牵引线长度来控制,实现物体可以按指定轨迹运动,工作过程中无需手动干预。系统实际测量最大误差2cm内,在此误差下可在1分钟内完成预定轨迹。
  【关键词】
  悬挂运动控制系统 ISA总线 PC Visual C++ 运动控制器
  【Abstract】
  This article is designed to introduce a suspension motion control system, in which we designed a step motor control system and an object (mass greater than 100 gram) moved on a lean board, whose angle less than 100 degree. The system used ISA bus to realize the communication between PC and motion controller, it mainly used a motion controller, step motors, drivers, 8253, 8355 chips and all kinds of resistances and inductors in hardware, Visual C++ in software, together with compile and debug can we reach the function required in the question. According to the question we designed a given initial coordinate line movement, a circle movement of given centre and radius, and an arc movement of certain angle. For it based on PC, we can realize control in the Windows surface through software interface, which is convenient for the operator and has error correction function. It used the length of the line to control and can move along the locus, and needn’t interpose of the hand during the movement. The largest error of the system is 2 cm in the actual measurement, and it can finish the given locus in 1 minute in such error.
  【Keywords】
  Suspension motion control system、 ISA bus、 PC、 Visual C++、 motion controller
  设计任务和要求
  基本任务
  设计并制作一个电机控制系统,控制物体在倾斜(仰角 °)的板上运动。其结构简图如图1所示:
  图1 悬挂运动控制系统示意图
  基本要求:
  (1)控制系统能够通过键盘或其他方式任意设定坐标点参数;
  (2)控制物体在80cm×100cm的范围内作自行设定的运动,运动轨迹长度不小于100cm,物体在运动时能够在板上画出运动轨迹,限300秒内完成;
  (3)控制物体作圆心可任意设定、直径为50cm的圆周运动,限300秒内完成;
  (4)物体从左下角坐标原点出发,在150秒内到达设定的一个坐标点(两点间直线距离不小于40cm)。
  发挥部分
  (1) 能够显示物体中画笔所在位置的坐标;
  (2)控制物体沿板上标出的任意曲线运动(见图1),曲线在测试时现场标出,线宽1.5cm~1.8cm,总长度约50cm,颜色为黑色;曲线的前一部分是连续的,长约30cm;后一部分是两段总长约20cm的间断线段,间断距离不大于1cm;沿连续曲线运动限定在200秒内完成,沿间断曲线运动限定在300秒内完成;
  (3)其他。
  实际问题的分析过程
  1、模型的建立与分析
  利用数学建模的知识,将物体在该平面内的运动转化到X-Y坐标系内建立模型,简化图如图2所示
  图2 悬挂运动控制系统模型
  按题目的要求物体在第一象限(x≤80,y≤100,其中一个单位为1cm)范围内运动,并可根据两电机的线长来控制物体的位置。根据三角形全等可知,当AE和BE的长度(即两电机的线长)确定以后物体的位置坐标E(x,y)是唯一确定,所以可以通过对线长的控制以实现对物体位置的控制。不仅如此,在初始化以后,当两电机的线长值反馈回程序后也可以实现对于物体坐标的跟踪,并显示出物体的具体坐标。最终通过计算得出的线长与坐标的关系式如下:
  2、硬件的分析与选择
  在最初的选择中,设计通过89C51单片机编程控制来实现以上的功能,但经过充分论证,考虑到89C51单片机对于程序的存储能力、运算速度,外部设备以及直接涉及到的人机交互界面和易操作性,我们选择了基于PC机来控制整个的悬挂运动控制系统。PC发展迅速,性能不断增强,具有开放的总线结构以及丰富的软硬件资源,特别实Visual C++6.0的推出,为开发开放式的运动控制器的发展提供了平台,基于PC的新一代控制器已经成为现代控制系统的主流和发展方向。
  通过对整个运动过程的分析,以及对步进电机驱动控制原理的研究,选择步进电机作为动力部件。步进电机区别于其他控制用途电机的最大特点是,它接受数字电脉冲控制信号,并转化成与之相对应的角位移或直线位移,完全由数字信号控制,输入一个脉冲信号就得到一个规定的位置增量,所以基本实现开环控制。
  结合PC机与步进电机的特点,我们设计了一个二维运动控制卡,该运动控制卡通过8253芯片以及8255芯片并适当配合光耦、电容、电阻等电子器件实现对步进电机的控制。在对于主控制板电器元件优化选择后,对于它的设计及制造也进行了简单的构思。在外围设备上,我们对于驱动控制实现的方法进行了研究,并针对所需要的电源及驱动提出了整体封装的想法及将但布线方案,基本解决了硬件设备的整体布局问题。
  3、软件程序的初步设计
  在考虑过硬件设备后,整个软件程序我们希望能够在Windows下编制软件接口程序,一方面具有较高的适用性,另一方面也提供了一个良好的人际交互界面。而由此产生的相关问题就是,根据步进电机的驱动控制原理确定在Windows界面下如何通过软件接口程序的编制实现对计算机硬件的控制接口。同时,尽可能的反馈回物体的具体坐标和运动轨迹,并对操作者的输入纠错及物体运动的实时校正。基于以上方面的考虑,我们得空至此痛得主程序流成图如下:
  直线插补软件的实现
  直线插补软件实现的思路是模拟硬件的逻辑关系完成。相应流程图如图9所示。
  流程图中JRX、JRY分别寄存X坐标和Y坐标的终点值,JvX和JvY分别寄存X坐标和Y坐标的累加余数,JM为累加次数。
  根据图9中的流程图,编写HRI_LnXY() 、HRI_LnYZ()和HRI_LnZX() 三种两维直线插补函数。
  图9 直线插补流程图
  圆弧插补运动
  利用直线插补的思想,在程序设计时可以通过这种方法实现近似圆周运动。在操作时,输入所作圆周运动的圆心坐标和半径即可自行进行圆周运动;不仅如此,在改变程序的循环次数时刻获得不同角度的圆弧运动。
  圆弧插补软件的实现
  对于圆弧插补计算流程图如图10所示。流程图中JRX、JRY和JVX、JVY分别为Y,X的余数寄存器和被积函数寄存器,JX、JY分别为X、Y方向的两个终点计数器。
  图10 圆弧插补流程图
  技术方案
  1、步进电机控制方案
  计算机对步进电机的控制有软件和硬件两种方法,基于软件方法的控制方案很可能涉及计算机的容量。因为受程序设计的约束,运用硬件控制可能是唯一实现的方案,而我们需要对多台电机进行同时控制,单用软件控制比较困难,所以采用软件和硬件结合的方法,这种方法既发挥了软件的灵活性,又具有硬件的可靠性和实时快速性,且有利于编程。基本方法是用一个计时器控制步进电机输入脉冲频率从而改变其速度及加速度,用一个计数器控制其位移,当执行完一次后,系统中断,可执行下一步命令。这样,把对电机的控制权主要交给硬件,为CPU节省了大量时间处理其他任务。运动控制器逻辑框图如图3所示
  图3 运动控制器逻辑框图
  系统的控制逻辑电路是系统的控制核心,如图4所示。它根据主控PC机发出的指令产生控制步进电机的脉冲,从而控制步进电机的速度和角位移,使步进电机按照特定的要求运行。每个控制逻辑电路为每个步进电机的从控模块驱动提供控制脉冲。每个控制逻辑主要由8253及其它一些外围电路组成。
  图4 系统的控制逻辑电路
  如图所示:计数器0工作在方式3 ,计数器1工作在方式1 ,计数器2与外部振荡(134000HZ)相连位系统的计数器提供时钟。具体的工作原理位:上位机通过数据总线与控制卡通讯 ,通过数据总线将计数初值送到计数器1 ,由于计数器0工作在方式3是一个方波发生器,产生的方波从OUT0送出步进电机触发脉冲,计数器1来对计数器0产生的方波减一计数,当计数器倒零后OUT1输出高电平使方波发生器截至,从而实现对步进电机的控制。
  2、控制实现
  (1)软件软件控制频率、相序和计数
  在用PC机对步进电机进行开环控制时,基本的控制功能有三方面:步进电机的速度、方向和步数,分别对应步进频率、相序和步进计数。
  步进频率:由于步距角一定,所以通过调节步进频率可实现对步进电机的运转速度的控制;
  相序:保证电机各相以对应旋转方向所要求的次序实现激磁,确定电机的转动方向,改变相序即可改变电机运转方向;
  步进计数:记录电机走过的步数,达到目标位置后禁止再发步进指令,同时可以通过剩余步数的反馈来确定目标物体的位置。
  三种控制功能既能够用软件实现,也可以用硬件电路实现,完整的步进电机控制器可以由不同的软件和硬件的组合构成。
  在这种系统里,微处理机从输出口送出的数码直接送到电机驱动电路作为相控信号,所有三种控制功能都用微处理机的软件程序实现。这种以软件为基础的控制系统主要优点是微机和电机的接口简单,它能够直接用微机的输出作为相控信号。程序设计的主要问题是正确的产生相激磁变化的定时。如果要产生精密的定时等,则必须仔细地书写决定步间延时的程序段。图5是以软件控制的开环系统。
  图5 软件控制的开环系统
  (2)软件计数,硬件定时和决定相序
  图6是软件计数、硬件定时和决定相序实现开环控制的原理框图。
  图6 软件计数、硬件定时和决定相序实现开环控制的原理框图
  步进频率由恒频时钟确定,恒频时钟由来自微处理机的移位信号控制。每个时钟脉冲都同时送到记录电机相对目标位置的微机和激磁时序硬件电路。激磁时序电路在微机送出的方向信号配合下,产生正确的相控信号。微处理机的软件累计时钟脉冲、产生方向信号与时钟的启停信号。当收到启动信号后,开始产生脉冲。因为它接在微处理机的中断线上,故能迫使程序转到电机控制程序的中断入口点处。与此同时,送到激磁时序电路的钟脉冲,使激励产生一次变化,这对应电机转动一步。因此累加器减1,修正电机相对目标位置的记录。如果减1后累加器不等于零,则走出控制子程序;若累加器结果等于零,表明已达到目标位置,钟必须停止工作。这通过清累加器和送出启停信号实现。这种方法较前一种方法占用系统资源少,但在加减速控制时也有很大困难。
  3 软件初始化,硬件定时、决定时序和记数
  图7是由软件初始化、硬件定时决定时序和计数的开环控制原理框图。三种基本控制功能都用硬件来实现。当PC机控制电机运行时,微处理器把目标位置送入减法计数器,对速度寄存器进行初始化,并向激磁时序电路输出方向信号。之后,步进电机在硬件电路的控制下运行。除此之外,在到达目标位置之前,对微处理器再也不必参与控制。此时,主机可以处理其它的任务。当电机到达目标位置后,通过状态位或者中断通知主机到达目标位置,主机开始下一步控制,重新对硬件初始化。
  正如图7所示。计算机仅把目标位置、速度信息和启动命令送到硬件控制器,电机驱动电路的相控信号由硬件控制器产生。到达目标位置时,回送给计算机的结束信号也由它产生。
  图7 PC机与电机间控制的实现
  在该方法中,PC机运用软件容易实现复杂的控制功能,如加减速控制、S曲线和多轴联动等功能。由于PC机只负责相关初始化工作,从而使PC机和硬件电路实现并行工作,随着现代计算机科学的高度发展,现代计算机的速度越来越快,从而使控制可以达到更高的精度。运行时,步进电机和计算机的工作速度必须协调。
  3、地址译码及多卡级联的实现
  ISA总线主要包括地址线、数据线、控制线、时钟线和电源线5类98条接线,实际使用中,数据线、地址线、电源线及AEN、 、 控制信号线等进行相应连接,其余不用的信号线悬空,使用中两片8253的地址分别位0X260,0X264。
  4、DLL函数及测试软件开发
  PC机对运动控制器的控制,实质上就是从外设上读取设备状态,把控制信息传送到外部设备。这其中包括很多复杂的对底层控制电路的操作及读写,对于普通用户来说,这些操作非常复杂和繁琐。在Windows中,动态链接库(Dynamic Link Libraries,DLL)中的程序段可常驻内存,被VC、VB、Delphi等多种Windows编程语言调用。为提高运动控制器的开放性,将完成独立控制功能的硬件操作编制成DLL库函数,供用户调用,实现了软件的开放性。
  动态链接库函数主要包括4类:(1)初始化函数,用于设置运动控制器基地址;(2)单轴运动函数,设置当前轴的目标位置、运动速度等;(3)直线插补与圆弧插补函数(4)状态监测函数,返回目标物体的位置、电机运动状态等。
  该软件可正常运行于WINDOWS98和WINDOWS2000/XP环境下。图8是一种测试软件的主控界面,可以设置运动参数以及对于特定环境产生的误差的补偿,还可实现手动单轴运动,直线、圆弧插补运动等功能,并能实时显示当前画笔位置等。
  图8 主控制界面
  总体组装调试
  整体的设计思路确定好以后,采购所需物品,并安装焊接运动控制卡(该运动控制卡要求安装于PENTIUM166MHz以上有ISA插槽内存不小于100M的PC机或工业控制计算机上)。给电源和步进电机驱动器接线,鉴于美观,将电源和驱动器镶嵌在一个长方体(27cm×22.5cm×8cm)塑料盒子里并用螺丝在内部固定。最后用万用电表测试了整个接线并无任何问题,整个控制器可以正常通电运转,至此整个硬件设备全部搭建完毕。
  现场实测分析
  在硬件设备组装完毕后,我们首先对程序进行了最后的校验,紧接着就开始了对整个悬挂运动控制系统进行了实测与校正。在实测过程中,手动控制可以圆满完成,顺利到达指定位置;在直线插补以及圆弧插补的测试中,运动轨迹均按预计轨迹进行,虽然存在一定的偏差(实测最大误差2cm),但不超出给定范围,可以接受。
  方案论证及比较
  本系统是一个步进电机悬挂运动控制系统,根据设计要求可分为三个基本功能模块手动单轴运动、直线插补运动和圆弧插补运动。
  手动单轴运动
  通过软件实现手动调整,以此来实现对于运动物体的位置坐标进行初始化。这样在这之后的过程中即可实现程序控制,无需手动干预。
  直线插补运动
  通过特定的插补算法,在程序中实现直线插补运动。在给定初始坐标和终点坐标后可以在一定的误差范围内实现直线的插补运动,该误差远远小于题中所给的最大偏差4cm,在实际中是可以接收的。
  直线插补软件的实现
  直线插补软件实现的思路是模拟硬件的逻辑关系完成。相应流程图如图9所示。
  流程图中JRX、JRY分别寄存X坐标和Y坐标的终点值,JRX和JRY分别寄存X坐标和Y坐标的累加余数,JM为累加次数。
  根据图9中的流程图,编写HRI_LnXY() 、HRI_LnYZ()和HRI_LnZX() 三种两维直线插补函数。
  总结
  比赛感想
  在这次比赛中,经过了四天三夜的努力拼搏,我们顺利地完成了任务,在整个过程中我们受益匪浅,对于比赛的经历将会终生难忘。我们深刻的体会到,我们完成的不仅仅是一件作品,更多的是提高了我们的创新精神、动手能力、勇于挑战与坚持到底的毅力;培养了团队协作与竞争意识……这些东西在我们今后的人生路上是一笔宝贵的财富,对我们的将来将会起到至关重要的作用。
  这次比赛对于我们的毅力和意志力是一个重要的考验。我们在调试硬件和软件的过程中遇到了不少的错误,这是我们就认真细心地检查电路连线,调试整体程序以及但布运行可能出现的问题程序段,直到找出错误并修改。在这个过程中,我们克服困难的信心与决心经历了严峻的考验,最后我们终于能够交出一份完满的答卷。
  俗话说“团结就是力量”,在这次比赛中,对于知识的要求很高,凭借一个人的力量很难完成的,我们充分发挥了团队合作精神。我们既有分工又有合作,既有团结协作又有各自竞争——一名同学负责硬件的搭建,另一名则是负责软件的编辑,还有一名同学则是软硬兼施,每个人在负责自己的一部分任务的同时还互相竞争,看谁能在最短的时间内完成额定的任务。在完成自己的任务后,同学们还互相帮助,共同编写报告,这样大大地提高了工作效率。当程序调试过程中出现问题时,我们又聚在一起桃林解决,及时发现错误所在,使得工作能够顺利进展。在不断的摸索与探讨中,我们更深刻的体会到团队精神的重要性。
  我们在比赛中争取做到精益求精,在完成几本任务的功能后,又向发挥部分发起了进攻,不断地使系统的功能得到升级,逐渐完善,并加进了自己的创新元素。虽然还不能实现发挥部分的全部功能,但对于部分功能已经有了自己的初步设想,也许有朝一日,在我们掌握更多的知识以后,我们会将这些构想付诸于实践,投入实际生产,创造更多的价值。
  改进意见及展望
  在整个控制系统安装测试完毕后,仍感觉有很多的不足与可扩展空间。首先,可以通过对于程序的修改来实现较高的精度与更复杂的运动控制;另外,可以在硬件设备方面可以添加一块转接板。转接板可以使整个系统运行更加安全可靠,在工业中应用时不会因为电网的波动而损坏电机和PC机(工业控制机);转换板还可以增加扩展槽,提供一定的扩展功能;由于转接板脱离了PC机和控制器,方便操作者对于硬件连线的修改。
  在发挥部分里面,我们只完成了(1),对于(2)我们提出了可以通过在运动物体上加装光敏传感器的思想来实现按照特定曲线(包含短距离断线)运动。而经过计算并结合题目所给的要求,传感器的有效距离(半径)设定为大于0.5cm即可实现要求。
  当由于技术与所学知识的限制,该控制系统并未添加这些功能,我们认为会在不久的将来得以实现。
  参考书目
  微型机算计原理与接口技术 冯博琴 主编 清华大学出版社
  C++语言程序设计(第二版) 郑莉、董渊 编著 清华大学出版社
  微型计算机控制技术 于海生等 编著 清华大学出版社
  自动控制原理 李友善 编著 国防工业出版社

    ——本信息真实性未经中国工控网证实,仅供您参考