基于Labview与微控制器步进电机控制系统设计

2020-02-22 08:05王庐山
科技创新导报 2020年27期
关键词:上位机步进电机远程控制

王庐山

摘  要:Labview是一款非常优秀的图形编程开放平台,很容易设计出非常好的上位机软件,可以在多个平台上运行。微控制器可以很方便地进行底层驱动的设计。本文将两者融合,开发Labview与微控制器步进电机控制系统,可以实现Labview上位机对步进电机的转速、方向进行全方位的控制,从而实现远程控制。经实际运行,系统能够较好地控制步进电机,可用于上位机对步进电机控制场合。

关键词:Labview  步进电机  微控制器  远程控制  上位机

中图分类号:TP273.5                          文献标识码:A                   文章编号:1674-098X(2020)09(c)-0069-03

Abstract: Labview is a very excellent graphic programming open platform. It is easy to design a very good upper computer software, which can run on multiple platforms. The microcontroller can easily design the bottom driver. In this paper, the integration of the two, the development of Labview and microcontroller stepper motor control system, which can achieve the upper computer Labview stepper motor speed, direction of all-round control, so as to achieve remote control. After practical operation, the system can control the stepping motor better, and can be used in the upper computer to control the stepping motor.

Key Words: Labview; Stepper motor; Microcontroller; Telecontrol; Upper monitor

1  硬件系统设计

1.1 微控制系统设计

微控制部分选用常用的STC89C52RC单片机为步进电机的控制核心,可以更好地满足步进电机的控制,如果在之后的发展中对系统进行延伸可以为其提供良好的接口。单片机产发生控制步进电机运行的数字脉中的信号,将信号送到步进电机驱动电路,从而控制步进电机启动、停止、加减速等功能,另外还可以用显示器来显示步进电机当前的工作状态数据。

1.2 步进电机驱动电路设计

步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

本文中用到的步进电机为四相步进电机,在4相电机中有4组线圈,若电流按顺序通过线圈则使电机产生转动。对于四相步进电机而言,把各线圈中一端接在一起,就是步进电机的公共端。各线圈的另一端引出来,就是四根相线,称这四根相线为A、B、C、D的励磁相。采用单双相八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。

步进电机的驱动电路采用ULN2003,ULN2003是大电流驱动阵列,可直接驱动继电器等负载。输入5V TTL电平,输出可达500mA/50V。ULN2003是高耐压、大电流达林顿系列,由七个硅NPN达林顿管组成。

采用微控制器来控制步进电机,实现了软件与硬件相结合的控制方法。用软件代替环形分配器,达到了对步进电机的最佳控制。系统中采用51单片机接口线直接去控制步进电机各相驱动线路。微控制器发出励磁依赖,实现对步进电机的控制,可以控制电机的正转、反转、停止、指定速度运行等功能。

上位机Labview通过串行口与微控制器连接,上位机发送控制命令给单片机,微控制器接收并解析命令,从而实现对步进机的控制。

2  软件系统设计

2.1 微控制器軟件系统设计

在主程序中,当接收到Labview上位机发出的步进电机控制指令后,当微控制器收到stop命令时,步进电机停止;当微控制器收到forward命令时,步进电机正转;当微控制器收到back命令时,步进电机反转;当微控制器收到speed num命令时,步进电机调速;当微控制器收到angle num命令时,步进电机转动指定的角度后停止。

2.2 步进电机驱动软件设计

步进电机驱动程序主要有两个函数,一个是步进电机控制函数,一个是步进电机设定转动角度的函数,代码如下:

/***************************************************************

函数功能:步进电机控制

输入参数:无

输出参数:无

外部变量:Step_N2ms  BeatCode[]  Step_Drection  beats

相关函数:无

注    意:本函数要用到定时器T0

****************************************************************/

void BJDJ_Control()

{

unsigned char tmp;  //定义一个临时变量

static unsigned char index = 0;  //定义节拍输出索引

if((Step_N2ms==1)&&(beats!=0))//2ms执行一拍

{

Step_N2ms=0;

tmp = Motor_Port;   //用tmp把P1口当前值暂存

tmp = tmp & 0xF0;     //用&操作清零低4位

tmp = tmp | BeatCode[index]; //用|操作把节拍代码写到低4位

Motor_Port  = tmp; //把低4位的节拍代码和高4位的原值送回P1

if(Step_Drection==1)

{index++; beats--; }

else if(Step_Drection==2)

{index--; beats--; }   //节拍输出索引递增

index = index & 0x07;   //用&操作实现到8归零

}

}

2.3 Labview上位机软件设计

在Labview上位机应用程序中,主要设置步进电机的转速,启动与停止,正转与反转控制,当按下相关的按钮后,上位机通过串口线向微控制器发出相应的指令,速度指令为speed8表示每分钟转3圈,dir1表示正转,dir2表示反转,start表示启动步进电机,stop表示停止步进电机。上位机界面如图1所示。

3  结语

从系统运行结果分析,本系统采用基于Labview与微控制器步进电机控制系统设计,完成了该系统的硬件和软件设计部分,硬件部分设计了微控制器系统和步进电机控制系统。软件部分包括微控制器部分步进电机底层控制程序,上位机前面板设计、控制程序的编写,实现了可以通过Labview上位机,对步进电机进行转动方向和指定转动速度,与传统的PLC或单片机步进电机控制系统相比,其成本和可维护性、操作性更强更简单,该系统已经在实际测量系统中得到了应用。

参考文献

[1] 王敏生.Labview宝典[M].2版.北京:电子工业出版社,2017.

[2] 董海棠.单片机原理与应用系统设计[M].成都:西南交通大学出版社,2017.

[3] 邢林峰.PCI Express 体系结构导读[M].北京:機械工业出版社,2020.

[4] 李晓芳,马野,蔡畅.基于单片机的交通信号灯控制系统设计与仿真[J].科技创新导报,2019,16(2):89-90.

[5] 杨丽.基于变结构PID控制的两相混合式步进电机闭环控制系统设计[D].天津:天津理工大学,2019.

[6] 吴一平.基于51单片机的直流电机PWM调速系统[J].科技创新导报,2018,15(13):108,110.

[7] 焦玉朋.基于51单片机的PWM直流电机调速系统[D].呼和浩特:内蒙古大学,2013.

猜你喜欢
上位机步进电机远程控制
基于GSM的远程控制系统