技术文章

当前页面: 首页 >技术文章 >基于IPC的悬挂运动控制系统

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

--索尼杯―2005全国大学生电子设计大赛

供稿:scott-lin 2006/4/29 15:04:00

0 人气:3349

  • 关键词: 悬挂运动控制系统 ISA总线
  • 摘要:本文设计基于PC机控制步进电机的悬挂运动控制系统,控制质量大于100克物体在小于100°倾斜的白板上做规定运动。硬件部分,本系统通过工业PC机ISA总线实现与运动控制器通信,主要使用了步进电机、驱动器、8253、8255芯片以及各种电阻电容等部件;软件部分,运用Visual C++语言,结合运动控制卡,设计给定物体在初始坐标下的直线运动和给定圆心和半径的圆周运动以及一定角度的圆弧运动。由于基于PC机,可通过软件接口实现在Windows界面下的控制,具有很好的人机交互性能(HCI),方便用户直接进行操作。该系统在设计时,通过对于牵引线长度来控制,实现物体可以按指定轨迹运动,工作过程中无需手动干预。系统实际测量最大误差2cm内,在此误差下可在1分钟内完成预定轨迹。

【摘 要】
  本文设计基于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 悬挂运动控制系统示意图

基本要求:
(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
图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
图9 直线插补流程图
圆弧插补运动
  利用直线插补的思想,在程序设计时可以通过这种方法实现近似圆周运动。在操作时,输入所作圆周运动的圆心坐标和半径即可自行进行圆周运动;不仅如此,在改变程序的循环次数时刻获得不同角度的圆弧运动。圆弧插补软件的实现
  对于圆弧插补计算流程图如图10所示。流程图中JRX、JRY和JVX、JVY分别为Y,X的余数寄存器和被积函数寄存器,JX、JY分别为X、Y方向的两个终点计数器。
图10
图10 圆弧插补流程图
技术方案
1、步进电机控制方案
  计算机对步进电机的控制有软件和硬件两种方法,基于软件方法的控制方案很可能涉及计算机的容量。因为受程序设计的约束,运用硬件控制可能是唯一实现的方案,而我们需要对多台电机进行同时控制,单用软件控制比较困难,所以采用软件和硬件结合的方法,这种方法既发挥了软件的灵活性,又具有硬件的可靠性和实时快速性,且有利于编程。基本方法是用一个计时器控制步进电机输入脉冲频率从而改变其速度及加速度,用一个计数器控制其位移,当执行完一次后,系统中断,可执行下一步命令。这样,把对电机的控制权主要交给硬件,为CPU节省了大量时间处理其他任务。运动控制器逻辑框图如图3所示
图3
图3 运动控制器逻辑框图

  系统的控制逻辑电路是系统的控制核心,如图4所示。它根据主控PC机发出的指令产生控制步进电机的脉冲,从而控制步进电机的速度和角位移,使步进电机按照特定的要求运行。每个控制逻辑电路为每个步进电机的从控模块驱动提供控制脉冲。每个控制逻辑主要由8253及其它一些外围电路组成。
图4
图4 系统的控制逻辑电路

  如图所示:计数器0工作在方式3 ,计数器1工作在方式1 ,计数器2与外部振荡(134000HZ)相连位系统的计数器提供时钟。具体的工作原理位:上位机通过数据总线与控制卡通讯 ,通过数据总线将计数初值送到计数器1 ,由于计数器0工作在方式3是一个方波发生器,产生的方波从OUT0送出步进电机触发脉冲,计数器1来对计数器0产生的方波减一计数,当计数器倒零后OUT1输出高电平使方波发生器截至,从而实现对步进电机的控制。2、控制实现
(1)软件<

手机扫描二维码分享本页

工控网APP下载安装

工控速派APP下载安装

 

我来评价

评价:
一般