APP下载

基于MSP430的直线导轨定位装置的设计与实现

2017-08-30张晓燕卢照新刘学君杨嗣源

计算机测量与控制 2017年7期
关键词:精确定位丝杆驱动器

张晓燕,卢照新,刘学君,张 凯,杨嗣源

(北京石油化工学院 信息工程学院,北京 102617)

基于MSP430的直线导轨定位装置的设计与实现

张晓燕,卢照新,刘学君,张 凯,杨嗣源

(北京石油化工学院 信息工程学院,北京 102617)

直线导轨是数控技术的重要组成部件,它的精确程度非常重要;以MSP430单片机为核心,设计了一个直线导轨精确定位装置;此装置采用两相四线的ST57型步进电机和60CM的螺纹丝杆组成一个直线导轨组,选用M7128驱动器驱动步进电机,使用PWM波精确定位算法程序精确控制电机转速;MSP430的IO端口控制步进电机的正反转,使得步进电机带动螺纹丝杆转动,让滚动丝杠上的物体往复移动,并在电脑上显示当前位移值;试验证明,其定位精度为0.01 cm,具有较高的可靠性和准确性,低成本,稳定性好。

直线导轨;螺纹丝杆;步进电机;MSP430

0 引言

数控技术水平影响一个国家的先进制造技术的发展,体现了国家综合国力和工业战略地位,推动了国家经济发展和社会进步。直线导轨作为数控技术、机电一体化和工业机器人重要部件,它的精确程度关系到这些领域内产品的优良程度,所以近年来现代科学对精确定位的要求也越来越高,从测量精度上,使用寿命上,还是从噪声上,都要求非常高。一个直线导轨若能精确定位,对于整个产品的运行操作的失误,将会大大减少[1]。

步进电机作为直线导轨装置的主要部件,它定位的精确度就关系到直线导轨的精确度,这在科学领域上同样具有很大的发展空间。因其涉及行业较多,具有一定的现实意义和较高的使用价值[2]。步进电机,一般有两种控制方式:第一,通过控制脉冲的数量来控制角位移量[3];第二,通过控制脉冲频率来控制电机转动的速度和加速度[4]。因为没有积累误差(精度为100%),所以步进电机被广泛应用于各种开环控制[5]。

1 总体设计

设计的装置系统采用上述第一种控制方式来达到准确定位。此系统由硬件和软件两部分组成,具有准确性、实用性及可靠性的特点。其中,硬件主要是步进电机,MSP430,M7128步进电机驱动器,CH340串口通讯模块、PC机实现的信号。输入及其显示部分。软件包括串口通信模块、PWM波步进电机定位脉冲算法等程序。编程采用在IAR for MSP430软件环境下编写的C语言。

2 硬件设计

2.1 硬件结构

硬件结构以单片机MSP430为核心作为控制单元,通过串口通信传送数据到MSP430,然后将收到的数据再通过串口通信返回,在电脑上显示发送的数据是否正确;通过发的数据给出对应的脉冲数量,控制步进电机转动的圈数(转速)和方向,来对直线导轨上的物体进行位移,结构如图1所示。

图1 系统结构图

对应原理总图如下图2所示。

图2 两相四线步进电机等效电路图

2.2 滚珠丝杆直线导轨滑台组

硬件结构采用的是二相四线混合式步进电机和1204型滚珠丝杆直线导轨组,它是由60CM的12044型螺纹丝杆,57式56步进电机,以及配套的滑台组成。

直线导轨所有方向皆有高刚性、互换性、自动调节、无限滚动循环等特点,同时,它还能实现高速进给。在保证会小于滚珠丝杠副转速临界值的前提下,大导程滚珠丝杠副可以实现100 m/min的速度值以上的进给速度[6-8]。

2.3 步进电机的选型

步进电动机能直接接收数字量的输入,所以特别适合于微机控制。一台两相四线式步进电机的等效电路图如图2所示,它有四条励磁信号线,通过这四条励磁信号线给步进电机发出一定顺序的驱动脉冲,步进电机就可以按相应的电流信号运动。每给一个驱动脉冲信号,步进电机就运行一个步进角,各相绕组的通电状态每循环改变一次,步进电机就运行一个齿距。根据要求,本设计选用的二相四线混合式步进电机型号是57H56。

在任意瞬间,步进电机的绕组只有一相通电,控制器每发出一个驱动脉冲信号,步进电机就运行一个步距角1.8°。

2.4 M7128步进电机驱动器

根据需要选择了M7128步进电机驱动器,其可实现电压和电流放大,驱动步进电机的各相绕组驱动器上对应的DIR管脚控制电机旋转方向,ENA端口控制电机启停(未用),PUL端口通过脉冲控制步进电机转速。驱动器面板上六位拨码开关中的第4位、第5位和第6位可组合出不同的状态[9],选择如图3所示共阴极接法。

图3 电机驱动器共阴接线法图

2.5 串口通讯模块CH340

为了实现单片机串行接口与计算机USB接口之间的通讯功能,采用了USB转串口模块CH340。P1.1为串口数据发送端口(TXD),高电平;P1.2为串口数据接收端口(RXD),低电平[10]。

2.6 硬件系统连接

系统总联接图如图4所示和protel原理图如图5所示,核心控制芯片采用MSP430G2553,步进电机驱动器为M7128,串口通信的硬件采用CH340模块。

图4 系统总接线图

图5 系统protel原理图

3 系统控制软件的原理与设计

3.1 定位控制算法设计

要保证系统的定位精度,步进电机转动一个步距角所改变的距离不能太大。系统采用的57式的二相步进电机步距角是1.8°,即走一圈是360°,对应360°/18°=200步。对于直径12 mm的螺纹丝杆,给定的导程是4 mm(丝杆转一圈,给进量是4 mm),假如先定电机正转,设定电机当前位移量(即当前位置)为X,则共需走的步数为X/4 mm为螺纹丝杆转动圈数,转一圈需要200步,且电机走1步需要1个脉冲,则总共需要200X/4个脉冲。

如更改位移量(即移动到的位置)为Y,那么需要跟位移量X进行比较:

当Y>X,电机保持正转(正向运动),则需要继续走:200(Y/X)/4步。

当Y

因电机驱动器M7128最多细分能达到1/128(为了最小误差选择),则电机的步距角细分到1.8/128°=0.014°,所以得出最后脉冲数量都需再乘以128。

其中ΔX为输入位移量,单位为mm,M为所需脉冲数。

对应实现算法,部分程序节选如下:

{step=0;

step+=((long)state_parameter[3]*16777216);

step+=((long)state_parameter[4]*65536);

step+=((long)state_parameter[5]*256);

step+=((long)state_parameter[6]);

pulse_out(step,state_parameter[2]);

RX_sign=0; }

因上面已提到采用通过控制脉冲的数量来控制电机的位移量,所以电机只需识别脉冲个数,则单片机MSP430由串口P1.2读取到的十六进制位移量,通过上述语句转换出脉冲个数。

3.2 串口调试设计

本系统所设计的串口通信是将8个字节的十六进制数据传送到MSP430芯片,在输入位移量前,需要手动把十进制的位移量转换成十六进制的位移量,利用串口调试助手软件sscom42输入十六位数据量进行串口连接。在PC上打开sscom42软件,接上CH340后,再打开串口,如图6所示,输入的通信协议数据为:BB 4C 02 00 01 90 00 AA(BB和AA是协议的包头和包尾,4C只是占了一个数据位,01和02分别代表着步进电机的正反转,01代表正转,02代表反转,中间的四组00 01 90 00是输入的十六进制位移量。先选择电机正反转,输入十六进制位移量,点击发送,就可以发送数据,让步进电机转动。发送数据后,把在PC上显示所发送的数据与CH340返还发回来的数据进行对比,通过对比数据的一致性,来保证MSP430接收数据的正确性。

图6 串口发送、接收数据图

3.3 软件设计

电机控制驱动模块,端口P2.3为PWM波的输出端口,连接电机驱动模块的PUL端口控制电机的转速;端口P2.4为连接驱动模块的DIR端口,控制电机的旋转方向。

编程时,为使步进电机在转换方向时能平滑过渡,不产生错步,在每一步中都设置标志位。这样,每当步进电机换向时,就以上一步作为起点来反向运动,避免了在电机转换方向时产生错步[11]。

1)主程序流程如图7所示,控制芯片MSP430通过其I/O口P1.2串口取得由PC机传给串口通信模块CH340需要步进电机动作所执行的位移量,先判断需要正转还是反转,然后再调用子函数给驱动模块指令,控制电机运行,再由MSP430通过P1.1串口返回数据给串口通信模块CH340,并在PC机屏幕上显式。

图7 主程序流程图

2)脉冲输出流程图如图8所示,首先由控制芯片MSP430的I/O口P2.4输出为0(0即低电平,要求电机正转向,或者为1 (1为高电平要求电机正转),其与M7128电机驱动器的DIR+端口相连,控制电机旋转方向,同时由MSP430的I/O口P2.3向PUL+端口发送PWM (Pulse Width Modulation脉冲宽度调制)波脉冲信号,控制电机旋转位移量。

实现程序部分节选如下:

for(i=0;i

{

LASER_IO_OUT &= ~LASER_IO;

delay_us(50);

LASER_IO_OUT |= LASER_IO;

delay_us(50); }

图8 脉冲输出流程图

3)串口发送与接收数据流程图如图9所示,实现MSP430与PC的串口通信模块CH340实现协议通信。

图9 串口发送接收数据流程图

串口发送数据子程序:

voidUART_sent(void)

{ unsigned char j;

for (j=0;j<8;j++) //发送当前IP的数据,即一次发射8个字节,

{ UART_sent_char(state_parameter[j]); }

}

#pragma vector=USCIAB0RX_VECTOR

__interrupt void USCI0RX_ISR(void)

{

unsigned char i;

串口接收数据中断子程序:

global_RX_buf[RX_count] = UCA0RXBUF;

RX_count++;

if((RX_count>=8)&&(UCA0RXBUF==0XAA) )

{for(i=0;i<8;i++)

{ state_parameter[i]=global_RX_buf[i]; }

RX_count=0;

RX_sign =1;

}

3.4 系统验证

设物体移动4 mm,即转1圈,需要25600个脉冲,转换成十六进制6400H。

又设物体移动16 mm,需要4×25600=102400个脉冲 ,再转换成十六进制19000H。

通过实验可知,使用开环控制算法,控制精度在 0.1 mm左右,即0.01 cm,系统运行稳定,基本满足直线导轨精确定位的要求,数据如表1所示。

表1 精确定位控制算法实验结果

4 结论

以MSP430G2553为核心控制芯片,实现了整个直线运动导轨精确定位的设计。试验结果表明,测量误差在允许范围内,本系统能做到直线运动导轨上的步进电机带动螺纹丝杆转动,且其能够同时承受上下左右方向的负荷,并让滚动丝杠上的物体来回移动,同时在电脑上显示位移值,精确到0.01 cm。设计的直线导轨定位装置具有较高的可靠性和准确性,低成本,稳定性好,在数控技术应用方面具有实际意义。

[1] 姜洪奎,赵佳佳,宋现春,等. 滚动直线导轨副运动精度测控系统设计[J].制造业自动化,2015(5):15-17.

[2] 金 亮. 高刚度滚动直线导轨设计及精度分析[J].山东工业技术,2015,10:207.

[3] Hwajeong Seo, Kyung-Ah Shim, Howon Kim. Performance enhancement of Tiny ECC based on multiplication optimizations[J]. Security Comm. Networks,2012,62:.

[4] Chang Kangming, Liu Shinhong, Wu Xuanhan. A wireless sEMG recording system and its application to muscle fatigue detection.[J]. Sensors,2012,121:.

[5] 郭林峰. 最轻的直线导轨易格斯碳纤维轨道[J]. 农业机械,2015,19:113.

[6] 杨 帆. 液体静压直线导轨专用磨合机研制方法[J]. 机械设计与制造,2014(1):97-99.

[7] 孙守林,白晨光,董惠敏.滚动直线导轨结构特征与静态特性分析[J]. 组合机床与自动化加工技术,2014(2):64-68.

[8] 孙 伟,鲁 明,汪 博,等. 直线滚动导轨动力学特性分析方法研究[J]. 制造技术与机床,2011(3):48-53.

[9] 李玲娟. 多细分二相混合式步进电机驱动器的研制[D].西安:西北工业大学,2007.

[10] 黄 同,邵思飞.基于CH340T的STC89C52RC编程器设计[J].电子测试,2013,12:16-17.

[11] 衡 豪,王禹林,冯虎田. 滚动直线导轨副静刚度试验装置设计及试验方案研究[J].组合机床2自动化加工技术,2014(2):106-109.

Design and Realization of Linear Guide Rail Positioning Device Based on MSP430

Zhang Xiaoyan, Lu Zhaoxin, Liu Xuejun, Zhang Kai, Yang Siyuan

(College of Information Engineering,Beijing Institute of Petrochemical Technology (BIPT),Beijing 102617, China)

Linear guide rail is an important component of the numerical control technology which is very important to the degree of accuracy. With the core of MSP430 single chip microcomputer, a precise positioning device for linear guide rail is designed. The device adopts two phase four wire ST57 type step motor and 60CM screw thread rod to form a linear guide rail group which use M7128 driver to drive the stepper motor, using the program of PWM positioning algorithm to precisely control motor speed.MSP430 IO port control stepper motor positive inversion,making the stepper motor driven screw thread rod rotation, so that the object on the rolling screw to move back and forth, and the computer shows the value of the current displacement. Experiments show that the positioning accuracy is 0.01 cm, which has high reliability and accuracy, low cost and good stability.

linear guide; thread screw rod; stepper motor; MSP430

2016-12-20;

2017-02-27。

2015年北京市大学生科研训练计划深化项(16032082003/005);2015年北京高校高水平人才交叉培养毕业(16032021003/029);2017年北京市大学生URT项目(2017J00017)。

张晓燕(1972-),女,山东莱芜人,硕士,讲师,主要从事电子系统设计、EDA技术应用、单片机开发等方向的研究。

刘学君(1977-),男,河北唐山人,工学博士,副教授,主要从事光通信、单片机开发等方向的研究。

1671-4598(2017)07-0186-04

10.16526/j.cnki.11-4762/tp.2017.07.046

TP211

A

猜你喜欢

精确定位丝杆驱动器
机车电缆用特种橡胶混炼设备
数控铣削精确定位加工方法在起落架修理中的应用
精确定位
一种利用铁做还原剂的有色金属冶炼压料装置
气动网络多腔室弯曲软体驱动器结构优化
冷压榨汁机中滚珠丝杆替代螺纹丝杆的设计方案
藏起驱动器号确保数据安全
空间大载荷石蜡驱动器研制
精确定位
精确定位