您现在的位置: 晨光科技 >> 文章 >> 技术理论 >> 机电 >> 正文  
  步进电机论文:步进电动机控制系统上位机程序设计         
步进电机论文:步进电动机控制系统上位机程序设计
[ 作者:佚名    转贴自:http://www.zgbjdj.com/news2.asp?id=4631    点击数:114    更新时间:2013/3/12    文章录入:admin ]
[注:本站登载的某些文章并不代表本站支持或反对其观点或肯定其真实性]
步进电机论文:步进电动机控制系统上位机程序设计
2010年7月20日
步进电动机控制系统上位机程序设计
    宋受俊,刘卫国
(西北工业大学,陕西西安710072)
    摘要:从整体上简要介绍了步进电机控制系统的结构及功能特点;详细介绍了上位机软件的功能及实现方法。所设计的控制程序具有友好的人机交互特性,可设定多种运行模式,可实时显示系统运行状态,且可应用于需要复杂控制算法及控制功能的使用场合。
    关键词:混合式步进电动机;微型计算机;MCs-51单片机;Visual Basic;MSComm控件
    中图分类号:TM383.6  文献标识码:A  文章编号:1004—7018(2008)04—0003—03
0引  言
    随着工业生产和计算机技术的日新月异,微型计算机在工业控制领域的应用越来越广泛。利用微型计算机可以存储更多的数据,进行复杂的运算,还可以通过多种形式对信息进行显示。另外,还可以设计高效、友好的用户界面,对系统进行控制。
    本系统以单片机作为下位机而微机作为上位机,两者通过RS-232串行接口进行通信。上位机设计了友好的用户界面,以便对系统进行控制,下位机在得到控制命令之后,具体实施控制,并将系统的工作状态信息传给上位机进行显示处理。
    单片机采用80C51,而上位机是在windows xP操作系统下,用Visual Basic 6 0开发的监控软件。在windows监控软件开发中,如何实现微机与单片机之间的串行通信是一个较大的障碍,而且是设计的关键之一。系统利用了VB提供的特别便于串行口操作的电话机控件一MSComm,通过编写较简单的程序,完成了微机与单片机之间的串行通信。本文主要介绍了该系统上位机软件的实现过程。
l系统特点简述
    系统的控制对象是混合式步进电动机,通过上位机软件和下位机软硬件的良好配合,系统具有以下特点:
(1)可以通过上位机控制界面进行控制,操作直观、方便;
    (2)可以驱动包括两相、三相和五相混合式步进电动机在内的多种步进电动机,增强了系统的适用性;
    (3)具有包括细分、升降频、正反转、预置频率以及预置步等多种控制功能,拓宽了被控步进电动机的适用场合。
    使用者可以通过上位机控制界面实时地观测运行中的驱动系统的运行状态,同时还可以通过上位机控制界面对系统进行控制,为了实现微机和单片机之间的数据交换,该系统使用了串行通讯方式。整个步进电动机控制系统如图1所示。
2上位机程序总体流程
    在上位机软件编程语言的选择上,着重考虑的是便于界面的编写及可进行方便的串行通讯。为此,系统上位机使用了Visual Basic高级语言编程环境,这种语言特别便于界面编写,更重要的是,它具有一个特别方便的通信控件-JMSComm。MSComm控件的目的是为了让用户设计一个系统可以和串行端口进行沟通及传送数据。   
    如上所述,上位机主要完成用户的交互控制以及电机运行状态的实时显示,所以,上位机软件首先要能够根据用户输入的运行模式设定相应的变量及标志量;其次,还需要将下位机反馈的实时运行状态以图形化的方式显示出来。图2为其程序总体框架。
下面,将以窗口的设计为顺序对上位机软件的总体流程进行较详细的阐述:用户设定输人窗口同时也是主界面窗口,其窗口设置如图3所示。它包
括了程序运行的所有控制功能,具体表现为:
    (1)在电机运行方式设定区,用户可以通过选择各个列表框中列出的选项设定被控电机的运行方式。其中,电机类型选择包括:两相、三相及五相混合式步进电动机;细分模式选择包括:整步、二细分及四细分;正反转选择包括:正转及反转;预置模式选择包括:预置频率及预置步。
    (2)在电机预置参数设定区,如果选择的是预置频率运行方式,用户便可以在第一个文本框中输入电机的运行频率,这样在启动运行时,系统便会控制电机从突跳频率逐渐加速到运行频率,在停止运行时,系统会控制电机逐渐减速直到停机为止;如果选择的是预置步运行方式,用户便可以在第二个文本框中输入电机运行的总步数,这样在启动运行后,每走一步系统便会在总步数上减去一步,直到减为零时停机。在该上位机软件中,为了便于用户及时了解系统的运行状态,电机的剩余步数以及实时运行频率均有图形化的显示,这些将在介绍相关窗口时一并介绍。
    (3)为能对程序随时发出各种命令,从而实现对电动机的实时控制,在操作区设置了包括启动运行、暂停运行等六个按钮,这六个按钮基本上能够满足对程序流程的控制,从而达到对电动机的控制操作。
    为了能够保证下位机得到正确的运行参数,下位机需要进行必要的检测,如果接收错误,下位机会通知上位机重新发送数据,相应的,上位机也会用对话框的形式通知用户重新发送数据,出错对话框如图4a所示。反之,如果接收正确,下位机便会通知上位机可以开始运行了,相应的,上位机也会用对话框的形式通知用户可以开始启动运行了,接收正常对话框如图4b所示。
    当用户启动运行之后,便进入了0ncomm子程序,此子程序的功能是得到电机的运行状态,并对其进行实时显示。据此,程序还包含了两个用于实时显示的窗口:剩余步数显示窗口,如图5所示;以及频率实时显示窗口如图6所示。其中,频率实时显示窗口可以显示电机的升降频过程。
3上位机各子程序功能实现过程
    在介绍各子程序实现方法之前,这里先要介绍一下对MSComm控件属性的初始化过程:
    (1)端口初始化。将端口初始化为COMl,即MsComml C0mmPort=1。
    (2)串行口参数初始化。设置初始化参数set—tings的格式为“BBBB,P,D,s”,为了与下位机进行匹配,程序中初始化Settings=“9 600,N,8,1”,其意为“所使用的通讯端口是以每秒9 600 bit的速度作传输,不作字符校验,每帧数据为8 bit,而停止位为1 bit”。
    (3)事件响应方式选择。MSComm提供了两种处理通信问题的方法,一是事件驱动方法,一是查询法,本程序采用了事件驱动法来响应串行口事件。
    (4)设置引发接收事件的字节数。本程序初始化其值为l,即一旦寄存器中有数据则立刻引发On-comm中的接收事件。
    (5)串行通讯格式选择。进行串行通信时有两种传输方式:字符形式和二进制形式本程序采用了二进制方式,即MsC0mml.IputM0de=1。
    最后,在初始化好上述各项属性之后,我们需要将串口打开,即MSC0mml.P0rtOperl=True。
3.1界面初始化子程序
    在本子程序的主要工作包括以下几部分:
    (1)对电机运行方式及预置参数设定窗口中的各控件进行初始化。
    初始化运行方式设定区的四个列表框,主要是利用方法AddItem为各列表框添加内容,另外,还要将预置参数设定区的两个文本框的内容清空。
    (2)初始化程序中用到的变量或标志量。
    比如,初始化画频率曲线时要用到的互轴起始点x为O等。
    (3)最后,要将串口打开,即MSComml.PortOpen=Tllle。
3.2运行模式初始化子程序
    本子程序主要是根据用户对运行方式的选择对数组state的相关位进行初始化,由于列表框中的每一个成员都唯一对应着一个数字,比如:图3列表框中,成员“两相混合式步进电动机”对应O,成员“三相混合式步进电动机”对应1,以此类推,所以我们根据各列表框反馈的数字便可以知道用户的选择,知道了用户的选择,接下来便是初始化state数组的
对应位,比如,State(1)的值代表着用户所选的电机类型,如果用户选择两相混合式步进电动机,则将该位置为O。这样,下位机在得到数组state后便可以通过元素state(1)来得到电机类型信息,从而进行更进一步的处理。
3.3预置处理子程序
    本子程序主要是在用户确定预置输入之后,根据预置参数设定区中两个文本框的内容得到用户的预置。并将其个位、十位及百位分别存人State(7)、State(6)及State(5)中,这样,下位机在得到State数组后对其上述三位进行简单的处理便可以得到用户通过上位机输入的预置数。
3.4MSComml—OneComm子程序
    当寄存器中有数据的时候便会进入此子程序,所以,此子程序的功能便是接收下位机通过串口传上来的数据,对其进行简单的处理后根据预置模式对其进行实时显示,预置步模式时便显示剩余步数;预置频率模式时便在初始化图形化显示界面的基础之上显示实时运行频率。其流程图如图7所示。
 对该子程序需要解释以下几个处理过程的具体含义:接收数据并进行处理:主要是得到下位机传上来的数据并进行相应的处理,实现语句如下:
   即Receive(1)一Receive(3)各代表实时数据的个位、十位和百位,经以上处理,y便是要显示的实时数据。
    实时显示剩余步数:这一部分的程序较简单,只有一句:FoHn3.Textl.Text=“当前剩余步数为: +str(y)。其中,Fom3指的便是图5所示的剩余步数显示窗口。  
    初始化图形化显示界面:这一部分主要包括以下内容:
    (1)坐标轴的生成;
    (2)网格的生成。
    这一部分的程序在有关使用VB画图的文献中有详细介绍,这里不作详细的介绍。
    实时显示运行频率:这一部分主要是在初始化好的图形化显示界面上以曲线的形式实时显示运行频率,如图6所示。
    这一部分的编程思想是:如果画的是第一个频率点则用命令PSel只匦一个点;如果画的不是第一个频率点,则从上一个频率点,画线到现在这个频率点。这样便可以画出完整的频率曲线。该部分的语句如下:
4结语
    本文所提出的程序设计方法具有较大的通用性,且用户界面友好。经过测试,所设计的上位机监控软件与下位机软硬件相配合,不但实现了文中提出的所有功能,满足了控制要求,而且使得控制操作简单易行。以本文提出的程序设计方法为基础,再结合步进电动机的具体应用环境,嵌入合适的控制算法,可完成各种需要复杂运动的步进电动机控制系统设计。
  • 上一篇文章: 微特电机论文:空心杯电机电磁阻力矩特性的实验研究

  • 下一篇文章: 高频焊机
  •    
    [注:标题搜索比内容搜索快]
    发表评论】【告诉好友】【打印此文】【关闭窗口
     最新5篇热点文章
  • temp[148]

  • 2017 年 12 月 21 日委员会决定…[128]

  • 修订第 2019/1616 号实施决定 …[178]

  • SAE001[112]

  • Proe/Creo曲面渐消+倒角教学[76]

  •  
     最新5篇推荐文章
  • 外媒:正在唤醒中国的习近平[356]

  • 中国反伪科学运动背后的CIA黑手…[543]

  • [转载]袁隆平真言:中国最大的…[713]

  • 台专家:当年我们造IDF时 大陆…[602]

  • 旅日华人:中国严重误判日本民…[606]

  •  
     相 关 文 章
  • 电机基本名词术语[33]

  • 【专题】AGV电机选型指南[103]

  • 电动机/电机基本知识介绍[52]

  • 高速无刷直流电机控制[174]

  • 圆柱手机电机(空心杯马达)结构…[904]


  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | 
    版权所有 Copyright© 2003 晨光科技        站长:璀璨星辰        页面执行时间:375.00毫秒
    Powered by:MyPower Ver3.5