基于LabVIEW的步进电机控制

时间:2022-09-07 07:20:49

基于LabVIEW的步进电机控制

摘要:为了实现PC机对步进电机的自动调节,设计了基于虚拟仪器技术的步进电机控制方案。系统采用L298N芯片进行驱动,以LabVIEW作为开发平台,并通过串口实现数据通信。结果显示,该系统能够很方便地实现步进电机的转速转向控制,而且利用虚拟仪器开发平台LabVIEW编写上位机程序,具有编程简单,控制界面友好,程序可移植性强的特点。

关键词:步进电机; 串口; LabVIEW; VISA

中图分类号:TN91134文献标识码:A文章编号:1004373X(2012)04020203

LabVIEWbased control of stepping motors

ZHUANG Ruirong, WU Xianqiu

(Institute of Physics and Telecommunication Engineering, South China Normal University, Guangzhou 510006, China)

Abstract: In order to control the stepping motor automatically, a LabVIEWbased control system for stepping motors was designed. L298N chip is adopted in the system to drive the stepping motors. The data communication between LabVIEW and the microcontroller is executed via serial port. The software and hardware of the system are presented. The experimental results show that this system has a convenient operational interface, and is easy to realize the control of rotate speed and direction.

Keywords: stepping motor; serial port; LabVIEW; VISA

收稿日期:20110911

基金项目:国家自然科学基金资助项目(10575039)步进电机是一种将电脉冲信号转换成角位移或线位移的机电元件。它在在工业自动化控制、数控机床、机器人等领域有着广泛的应用。在远程实验系统中,经常有需要利用步进电机对一些旋钮、位置等进行自动调节。本文设计了基于虚拟仪器技术的步进电机控制方案。该方案采用虚拟仪器控制步进电机,编程简单,界面友好,易于更改程序功能,控制灵活性得到了提高。

1步进电机工作原理

步进电机按其力矩产生原理可以分为反应式、永磁式和混合式几种。本文采用的是反应式二相四线步进电机,定子有两个线圈绕组,设其中一个线圈绕组为A相,另一个线圈绕组为B相。当给A相绕组通电时,该绕组即产生磁场,转子齿与A相绕组各齿对齐;当给B相绕组通电时,转子齿将与B相绕组各齿对齐,这样,转子就旋转了一个角度。依次给A相、B相绕组通电,就可以实现步进电机的旋转,改变通电的顺序(即先给B相绕组通电,再给A相绕组通电)就可以改变电机旋转的方向。另外,由于步进电机是由脉冲信号进行控制的,给电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的时间间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。

2步进电机控制硬件电路

2.1串行接口电路

串行接口电路由RS 232串行接口、MAX232芯片和AT89S51单片机三部分构成。其中,RS 232串行接口用于连接PC的RS 232串行接口,MAX232芯片用于衔接RS 232串行接口与AT89S51单片机,实现单片机输入/输出的串口信息到PC的串行接口信息的转换,即AT89S51单片机信号的TTL电平到RS 232电平的转换,从而实现二者之间电气特性上的兼容。具体串行接口硬件电路如图1所示。

2.2驱动电路

步进电机的驱动电路有多种方案,本文采用芯片L298N进行驱动。该芯片是专用驱动集成电路,输出电流大,输出功率强。其输出电流为2 A,最高电流4 A,最高工作电压50 V,可以驱动感性负载,如大功率直流电机、步进电机、电磁等,特别是其输入端可以与单片机直接相连,从而很方便地受单片机控制。

采用L298N芯片可以直接控制步进电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。同时,为了避免电机对单片机的干扰,在驱动电路中加入光耦TPL521,进行光电隔离,从而使系统能稳定可靠的工作。具体驱动电路如图2所示。

图1串行接口硬件电路图2步进电机驱动电路3步进电机控制程序设计

3.1下位机程序设计

单片机接口程序采用C51语言编写。程序中,定义了数组table1和table2,用来存储脉冲信号对应的数据;并定义了一个控制转向的指针control mode,为该指针赋予不同的值,电机便实现正反转功能。另外,程序中还定义一个速度控制变量mode,通过PC机发送命令字改变速度控制变量的值便可以实现转速的控制。在main函数部分,先调用“串口初始化程序”,再调用“控制命令字判断程序”以实现电机的速度和转向控制。main函数的最后部分将单片机收到的命令字返回给PC机,方便观察者查看通信的情况。下面给出main函数及控制变量的程序段。

3.2上位机程序设计

单片机和PC的通信是通过单片机的串口和PC串口之间的硬件连接实现的。由于LabVIEW软件简洁直观,功能强大灵活,该设计采用LabVIEW编写上位机的控制程序。程序编写涉及VISA,它的实质是一个标准的I/O函数库。这些库函数用于编写仪器的驱动程序,完成计算机与仪器间的命令和数据传输,以实现对仪器的程控。

在LabVIEW里使用VISA,必须安装NIVISA程序包,安装后,与串口通信相关的VISA函数位于FunctionsALL FunctionsInstrument I/OSerial子模板上, 其中,VISA配置串口函数用于设定一些参数,并将指定的串口按特定设置初始化;VISA写入函数将“写入缓冲区”的数据写入指定的串口;VISA读取函数从指定的串口中读取指定字节的数据,并将数据返回至“读取缓冲区”;VISA关闭函数关闭指定串口的会话句柄或事件对象。

本文设计的步进电机控制程序采用上述的通信函数结合事件结构进行编写,并通过程序调试,实现了步进电机的转向和转速控制。程序前面板与程序框图分别如图3和图4所示。

4结语

本文利用图形化编程语言LabVIEW编写程序实现了PC与单片机的串口通信,并结合单片机电路对步进电机进行了转速和转向的控制。实验证明采用LabVIEW编写的程序对步进电机进行控制具有人机交互界面友好、编程简单、效率高等特点,并且采用LabVIEW编写的控制程序移植性较强,可以很方便地被其他程序调用以构成功能更齐全的程序。

图3前面板图4程序框图参考文献

[1]李江全,刘恩博,胡蓉,等.LabVIEW虚拟仪器数据采集与串口通信测控应用实战[M].北京:人民邮电出版社,2010.

[2]胡仁喜,王恒海,齐东明.LabVIEW 8.2.1虚拟仪器实例指导教程[M].北京:机械工业出版社,2008.

[3]陈锡辉,张银鸿.LabVIEW 8.20程序设计从入门到精通[M].北京:清华大学出版社,2007.

[4]杨将新,李华军,刘东骏.单片机程序设计及应用[M].北京:电子工业出版社,2006.

[5]陈诚,李言武,葛立峰.基于LabVIEW的单片机串口通信设计[J].现代计算机,2009(1):198200.

[6]姜平,冯雪,方亮.基于LabVIEW的温度控制系统设计[J].电子科学,2010(11):3234.

[7]李晴.基于LabVIEW的串口通信应用[J].常州信息职业技术学院学报,2009(3):811.

[8]吕向峰,高洪林.基于LabVIEW串口通信的研究[J].理论与方法,2009,28(12):2730.

[9]坂本正文.步进电机应用技术[M].王自强,译.北京:科学出版社,2010.

[10]侯殿有.单片机C语言程序设计[M].北京:人民邮电出版社,2010.

上一篇:基于多串口扩展技术的定点剖面观测系统设计 下一篇:高速AD7654转换器及其在存储测试系统中的应用