1 前言
步进电机是机电设备中广泛使用的一种电机,以控制、驱动装置构成的步进电机伺服系统在经济型数控机床、机器人、工业过程控制及仪器仪表等领域得到了广泛的应用。过去由纯电路设计的步进电机控制和驱动电路,往往电路结构复杂,使用元器件多而成本高且通用性差。如果采用微型计算技术,以及软件编程的方法,将会避免复杂电路的设计,降低元器件的成本,使步进电机控制更具有通用性和灵活性。
我们本次设计的控制器是以PC/104作为步进电机控制的一套系统,从而实现对三轴转台的转向、转速及转角的有效控制。因此根据实际应用的情况CONTROL ENGINEERING China版权所有,我们将主要精力放在控制软件的设计上。
2 系统硬件实现
嵌入式计算机PC/104是近年来发展起来的一种新型计算机,由于使用方便,在各种控制系统中得到越来越多的应用。它将一台计算机集成为一块体积很小的线路 板模块,包括CPU、内存、两个RS-232串口控制工程网版权所有,1个并口104总线;支持CRT/LCD显示,以实时显示系统运行状态;具有硬盘及软驱接口;带一定容量的Flash电子盘,存储控制软件及相关数据;可方便地进行高级语言编程由于高度集成化,大大简化了控制系统的硬件设计,提高
在接口电路中,我们采用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以及步进电机及其驱动器组成。
图1 系统总体结构图
微机通过PC/104标准接口和接口电路连接,接口板由HSM-3221/3222和必要的外围电路组成。它接受CPU发送的动作指令,并将这些指令转换成对应的脉冲、方向信号,通过步进电机驱动器指挥步进电机动作,从而完成带动三轴转台转动所要求的角度的任务。在此,计算机的操作系统我们选用DOS6.22,软件开发环境使用TurboC2.0,它们占用的存储空间都比较小。
在系统的控制上,采用主要由软件来控制。在这种控制方式中,微机只需要向接口电路发送脉冲数、脉冲方向指令,并由接口电路转发至步进电机的驱动器,来控制多台步进电机的运动控制。从而实现对三轴转台三个轴运动的控制。
3 系统软件实现
由于本控制器采用的是主要由软件来控制的方式,因此这部分是此次设计的重点。进行软件控制的方式好处是易于修改,出现问题后易于发现与解决。从而具有较高的应用前景。系统的软件流程如图2 所示。
整个程序主要由三个部分,即控制步进电机的单向转动,往返转动以及归零来控制转台的工作。在初始化中,由键盘输入转台需要转动的角度和速度,然后仍由键盘控制转台的转动方式。值得注意的是在往返运动中,“取原脉冲数*2”是因为往返运动指的是在初始化中所输入的角度的正负值之间进行往返运动。
图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)
{