微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 具有上位机通信功能的数控分度头

具有上位机通信功能的数控分度头

时间:08-07 来源:互联网 点击:

 1 引言

分度头是机械加工中的重要装备,是铣床主要附件之一,应用十分广泛。许多零件如齿轮、离合器、花键轴及刀具开齿等在铣削时都需要利用分度头进行分度。常用的机械分度头主要是通过计算然后通过人工手动分度完成,分度速度慢,劳动强度高;市面上的数控分度头准确可靠但是投资较大,而且购买的数控分度头体积大,无法和中小型铣床配合加工尺寸较小的零件。

在项目实施过程中,需要在诸多圆盘上非等角度钻孔 15 个。鉴于市售分度头价位较高(5000-6000 元),笔者萌发了制造一台简易、高精度数控分度头的想法。根据实际需求,我们设计了一种体积较小能够同实验室内现有铣床配合、具有上位机通信功能的低成本数控分度头。分度的计算工作由上位机来完成,分度速度快、精度高。机械加工、装配都是在实验室内完成,节约了大量成本。

2 系统结构与机械精度

系统结构如图1 所示,单片机作为主控制器向步进电机驱动器发送脉冲、使能、方向三个信号来驱动步进电机工作。脉冲的个数以及频率由上位机软件完成计算,通过串行口发送给单片机,由单片机的一个定时器进行输出比较匹配,完成脉冲的发送,分度速度快。步进电机通过机械减速器和同步带驱动卡盘实现精确分度。


图 1 数控分度头结构图

分度头的误差是由于在实际进行分度的时候有可能所分的度数不能整除,出现小数,单片机只能处理整数的脉冲数,小数部分就要舍去,由此导致分度头的精度误差。最大的误差值就相当于舍去了一个完整的脉冲δ=θ/i,式中δ表示单片机发送一个脉冲卡盘所转过的角度,θ表示步进电机的步进角,i 表示机械传动装置的减速比。系统采用的步进电机步进角是1.8°,经过1000 细分驱动器的驱动,实际的步进角是0.36°,机械减速比是75:1,所以分度头的最大误差值是0.36°/ 75 = 0.0048°= 17.28″,比一般的手动分度头45″的精度要高出一倍以上。减小步进电机的步进角和增大机械减速比还可以进一步提高系统的精度,但是这样做会降低分度速度。在实际的应用中所选取的电机细分数和机械减速比已经提供了足够高的机械精度,能够满足实际加工需要。

  3 与上位机通信

系统采用RS232 接口与上位机进行通信。一般的USART 收发程序,往往是一段采用轮循方式完成数据收发的简单代码。采用这种方式不仅大大降低了MCU 运行效率,而且也不适合于与其他的实际应用代码相融合,无法实现结构化、模块化的程序设计。根据AVR 单片机自身特点(片内含有高速大容量RAM),我们在片内RAM 中设置了一个接收缓冲区,采用一种底层驱动+中间层函数的结构,把USART 接口部分相对地独立出来,更加方便系统软件的编写。

针对接收缓冲区的设计,我们采用一个类似于环形队列的结构,读写缓冲区各用一个指针,再设一个计数器记录缓冲区中未读出的数据个数。主程序中每次读取一个数据,读指针指向下一个数据,计数器减1,每次发生接收中断,写指针指向下一个数据,计数器加1。当主程序调用中间层函数接收数据时,如果接收缓冲区为空,单片机不必等待,可以继续执行其他操作。而USART 硬件接收完一个数据以后,中断函数将接收到的数据存入接收缓冲区,当主程序中的其他操作结束后由中间层函数来读取。

控制命令由上位机发出,由五个字节组成一条完整的控制命令,格式如表 1 所示。


D0:控制字的起始字节,规定每个控制字的起始字节都是固定值0x42,即ASCII 码中的‘B’,用来代表开始;

D1:规定脉冲个数的高字节,在单片机中,我们用一个16 位的int 型变量存储每一条控制命令的脉冲数,所以,上位机发过来的脉冲数就要被拆分成两个字节;

D2:规定脉冲个数的低字节;

D3:这个字节的高四位中的第四位用来代表电机的转动方向(1 代表顺时针,0 代表逆时针);低四位用来代表电机的转动速度,分为15 个等级;

D4:控制字的结束字节,规定结束字节都是固定值0x45,即ASCII 中的‘E’,用来代表一条控制命令的结束。

系统的上位机界面如图2所示,在上位机界面中可以方便地设置旋转角度、电机转速、电机的转动方向,并按照使用意图进行运动。实物图如图3所示。

 
 

图2 数控分度头的上位机界面图

  

图3 数控分度头实物图

  4 结束语

本文从简便实用的角度出发,介绍了一种由具备上位机通信功能、由单片机控制的数控分度头。这种分度头避免了人工分度易产生的差错,降低了劳动强度,使分度加工工序更加灵活方便。经实际工作验证,亦满足一般工艺要求。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top