用户中心

资讯 > 电动机与运动控制

基于PC/104和步进电机的三轴转台控制器设计

作者:刘奕辰,候书铭,许化龙2008.07.10阅读 5281

1 前言

  步进电机是机电设备中广泛使用的一种电机,以控制、驱动装置构成的步进电机伺服系统在经济型数控机床、机器人、工业过程控制及仪器仪表等领域得到了广泛的应用。过去由纯电路设计的步进电机控制和驱动电路,往往电路结构复杂,使用元器件多而成本高且通用性差。如果采用微型计算技术,以及软件编程的方法,将会避免复杂电路的设计,降低元器件的成本,使步进电机控制更具有通用性和灵活性。

  我们本次设计的控制器是以PC/104作为步进电机控制的一套系统,从而实现对三轴转台的转向、转速及转角的有效控制。因此根据实际应用的情况CONTROL ENGINEERING China版权所有,我们将主要精力放在控制软件的设计上。

2 系统硬件实现

  嵌入式计算机PC/104是近年来发展起来的一种新型计算机,由于使用方便,在各种控制系统中得到越来越多的应用。它将一台计算机集成为一块体积很小的线路 板模块,包括CPU、内存、两个RS-232串口控制工程网版权所有,1个并口104总线;支持CRT/LCD显示,以实时显示系统运行状态;具有硬盘及软驱接口;带一定容量的Flash电子盘,存储控制软件及相关数据;可方便地进行高级语言编程由于高度集成化,大大简化了控制系统的硬件设计,提高

了可靠性;装备了操作系统,方便了软件开发;处理速度快,控制系统的实时性明显优于传统的微处理器;另外可根据系统需要控制工程网版权所有,方便地扩展不同的接口板如A/D、D/A、I/O、Timer等www.cechina.cn,具有良好的扩展性。系统采用PC/104,电路简单可靠,结构紧凑。对于不同型号的步进电机的控制,不需改变硬件电路,通过修改软件,即能实现多种控制,灵活方便,通用性强,成本低,具有广阔的应用领域。

  在接口电路中,我们采用48路强驱动数字输出板 (HSM-3221/3222)作为I/O电路。HSM-3221/3222板是基于PC/104总线的48路强驱动数字输出板。其输出的最大电流达250mA。该48路数字I/O可分成两组24路数字I/O,每组又分成三个8位接口。该板的核心芯片是82C55A。HSM-3222与HSM-3221不同之处在于其输出端接有上拉电阻www.cechina.cn,电阻可根据实际需要选择(如5.6K、10K等)。其软件开发方式灵活方便,系统修改方便快捷,从而可以降低设计风险。

  本控制器是通过开环实现的,因此系统的硬件比较简单,其总体结构如图1所示。整个系统由PC/104、显示器、键盘、HSM-3221/3222以及步进电机及其驱动器组成。

基于PC/104和步进电机的三轴转台控制器设计如图

图1 系统总体结构图

  微机通过PC/104标准接口和接口电路连接,接口板由HSM-3221/3222和必要的外围电路组成。它接受CPU发送的动作指令,并将这些指令转换成对应的脉冲、方向信号,通过步进电机驱动器指挥步进电机动作,从而完成带动三轴转台转动所要求的角度的任务。在此,计算机的操作系统我们选用DOS6.22,软件开发环境使用TurboC2.0,它们占用的存储空间都比较小。

  在系统的控制上,采用主要由软件来控制。在这种控制方式中,微机只需要向接口电路发送脉冲数、脉冲方向指令,并由接口电路转发至步进电机的驱动器,来控制多台步进电机的运动控制。从而实现对三轴转台三个轴运动的控制。

3 系统软件实现

  由于本控制器采用的是主要由软件来控制的方式,因此这部分是此次设计的重点。进行软件控制的方式好处是易于修改,出现问题后易于发现与解决。从而具有较高的应用前景。系统的软件流程如图2 所示。

  整个程序主要由三个部分,即控制步进电机的单向转动,往返转动以及归零来控制转台的工作。在初始化中,由键盘输入转台需要转动的角度和速度,然后仍由键盘控制转台的转动方式。值得注意的是在往返运动中,“取原脉冲数*2”是因为往返运动指的是在初始化中所输入的角度的正负值之间进行往返运动。

基于PC/104和步进电机的三轴转台控制器设计如图

图2 系统软件流程图

  以下是在DOS环境下用TurboC2.0所编的源程序的主要部分:

  以其中一轴为例,程序如下:

  /*————————计算步进脉冲数:——————-*/

  phy_num=(phy_yz-phy_dq)*113;

  if(phy_num<0)

  {

  phy_right=0;

  phy_num= - phy_num;

  }

  else phy_right=1;

  /*————————-送脉冲数:————————-*/

  for(;;)

  {

  if(phy_num>0)

  {

  if(phy_right==1) phy|=0x02;

  else phy&=0xfd;

  phy|=0x01;

  outportb(base+0,phy);

  }

  delay(phy_sl);

  if(phy_num>0)

  {

  

版权声明:版权归控制工程网所有,转载请注明出处!

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688