微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于VC++的步进电机控制方法探讨

基于VC++的步进电机控制方法探讨

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



图2初始化程序框图


运行程序时,视图执行初始化操作函数OnInitialUpdate(),该函数内要先打开串口1,通过设置对象m_ContrCom各成员函数,设置好各通信参数:
然后经过一个位置选择对话框,通常选“保持原来的位置”,然后就发出询问各轴的坐标值的指令。流程如图2所示。除x轴是直接发送坐标询问指令获得坐标数据外,其他2个轴都是通过连续的2个定时器来询问坐标的,定时器响应后执行图3的程序。此后就进入待操作画面。
3.3运行操作的编程
在电机运动操作区的各文本框内输入某一轴向的位移值、速度值,按下“运行”按钮,则程序会把位移值转化为字符型的实际要运行的步数,通过串口送到SC3步进电机控制器,控制对应的轴的电机运行相应的步数。运行结束后,SC3会返回一个“OK”字符至串口,PC机接受到这个字符后,就知道电机运行结束,然后向串口发送坐标询问指令,SC3会回送有关坐标数据,PC机接到这些数据后进行处理运算并在文本框中显示出来。这样就结束了一个完整的运行操作。
所有主要的PC机和SC3控制器的有关数据通信程序都在MSComm控件内。包括所有的接受、识别返回字符,各轴向坐标的运算和显示。
当步进运动完毕后,返回到PC机的数据为步进电机已经运行的步数,根据这个步数要计算相应的坐标,必须知道各轴的脉冲当量。步进电机每走一步,电移台的位移等于脉冲当量,即分辨率。
坐标值=初始坐标+运行步数*脉冲当量
平移台脉冲当量=丝杠导程mm*步距角/(360*细分数)
旋转台(x轴)的脉冲当量(度)=步进电机步距角/(传动比*细分数)
其中细分数是由控制器后面板拨码开关设置的。
步进电机的步距角都为1.8°,纵轴的丝杠导程为1mm,横轴为4mm,旋转轴传动比为180∶1,细分数为2,则根据以上公式可得出:
纵轴(z)脉冲当量=1/100
横轴(y)脉冲当量=1/400
旋转轴(x)脉冲当量=1/200
4、结语
在PC机和单片机之间实现串行通信控制是近几年很受欢迎、较为流行的方法。本文介绍的运用MSComm控件来编制的由PC机对步进电机直接控制的应用软件具有友好的人机交互界面,且编程简便、工作可靠,是一种切实有效的方法。同时,这种串行控制方法和技术还可运用于相应的工业控制场合。

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

网站地图

Top