您的浏览器Javascript被禁用,需开启后体验完整功能, 请单击此处查询如何开启
网页 资讯 视频 图片 知道 贴吧 采购 地图 文库 |

步进电动机控制系统上位机程序设计_专业资料

1378人阅读|82次下载

步进电动机控制系统上位机程序设计_专业资料。步进电动机控制系统上位机程序设计


步进电动机控制系统上位机程序设计 摘要:从整体上简要介绍了步进电动机控制系统的结构及功能特点;详细介绍了上 位机软的功能及实现方法。 所设计的控制程序具有友好的人机交互特性, 可设定多种运行模 式,可实时显示系统运行状态,且可应用于需要复杂控制算法及控制功能的使用场合。 关键词:混合式步进电动机;微型计算机;MCS一51单片机;Visual Basic;MSComm 控件 Abstract:The structure and functional characteristics of the stepper control system were introduced integrally,and the functions and implementation methods of the microcomputer programme were also introduced.This method had a friendly user interface.The several operation modes were set,the operation states of the system were displayed in real time. Key words:hybrid Visual Basic;MSComm widget stepper motor;microcomputer;MCS一5 1 single chip; 0前言 随着工业生产和计算机技术的日新月异,微型计算机在工业控制领域的应 用越来越广泛。利用微型计算机可以存储更多的数据,进行复杂的运算,还可以通过多种形 式对信息进行显示。另外,还可以设计高效、友好的用户界面,对系统进行控制。 本系统以单片机作为下位机而微机作为上位机,两者通过RS一232串行接口进行通信。 上位机设计了友好的用户界面,以便对系统进行控制,下位机在得到控制命令之后,具体实 施控制,并将系统的工作状态信息传给上位机进行显示处单片机采用8051,而上位机是在 Windows XP操作系统下,用Visual Basic 6.0开发的监控软件。在Windows监控软件开发中, 如何实现微机与单片机之间的串行通信是一个较大的障碍, 而且是设计的关键之一。 系统利 用了VB提供的特别便于串行口操作的电话机控件-MSComm,通过编写较简单的程序,完成了 微机与单片机之间的串行通信。本文主要介绍了该系统上微位及软件的实现过程。 1系统特点简述 系统的控制对象是混合式步进电动机, 通过上位机软件和下位机软硬件的良好配合, 系 统具有以下特点 (1) 可以通过上位机控制界面进行控制,操作直观、方便; (2) 可以驱动包括两相、三相和五相混合式步进电动机在内的多种步进电动机,增强了 系统的适用性; (3) 具有包括细分、升降频、正反转、预置频率以及预置步等多种控制功能,拓宽了被 控步进电动机的适用场合。 使用者可以通过上位机控制界面实时地观测运行中的驱动系统的运行状态, 同时还可以通过 上机控制界面对系统进行控制, 为了实现微机和单片机之间的数据交换, 该系统使用了串行 通讯方式。整个步进电动机控制系统如图1所示。 2上位机程序总体流程 在上位机软件编程语言的选择上,着重考虑的是便于界面的编写及可进行方便的串行通讯。 为此,系统上位机使用了Visual Basic高级语言编程环境,这种语言特别便于界面编写,更 重要的是, 它具有一个特别方便的通信控件—MSComm。 MSComm控件的目的是为了让用户设计 一个系统可以和串行端口进行沟通及传送数据。 如上所述,上位机主要完成用户的交互控制以及电机运行状态的实时显示,所以,上位机软 件首先要能够根据用户输入的运行模式设定相应的变量及标志量; 其次, 还需要将下位机反 馈的实时运行状态以图形化的方式显示出来。图2为其程序总体框架。 下面, 将以窗口的设计为顺序对上位机软件的总体流程进行较详细的阐述: 用户设定输入窗 口同时也是主界面窗口,其窗口设置如图 3 所示。它包括了程序运行的所有控制功能,具体 表现为: (1)在电机运行方式设定区,用户可以通过选择各个列表框中列出的选项设定被控电机的运 行方式。其中,电机类型选择包括:两相、三相及五相混合式步进电动机;细分模式选择包 括:整步、二细分及四细分;正反转选择包括:正转及反转;预置模式选择包括:预置频率 及预置步。 (2)在电机预置参数设定区,如果选择的是预置频率运行方式,用户便可以在第一个文本框 中输入电机的运行频率, 这样在启动运行时, 系统便会控制电机从突跳频率逐渐加速到运行 频率。在停止运行时,系统会控制电机逐渐减速直到停机为止;如果 选择的是预置步运行方式, 用户便可以在第二个文本框中输入电机运行的总步数, 这样在启 动运行后, 每走一步系统便会在总步数上减去一步, 直到减为零时停机。 在该上位机软件中, 为了便于用户及时了解系统的运行状态, 电机的剩余步数以及实时运行频率均有图形化的显 示,这些将在介绍相关窗口时一并介绍。 (3)为能对程序随时发出各种命令,从而实现对电动机的实时控制,在操作区设置了包括启 动运行、暂停运行等六个按钮,这六个按钮基本上能够满足对程序流程的控制,从而达到对 电动机的控制操作。 为了能够保证下位机得到正确的运行参数,下位机需要进行必要的检测,如果接收错误,下 位机会通知上位机重新发送数据, 相应的, 上位机也会用对话框的形式通知用户重新发送数 据,出错对话框如图 4a 所示。反之,如果接收正确,下位机便会通知上位机可以开始运行 了,相应的,上位机也会用对话框的形式通知用户可以开始启动运行了,接收正常对话框如 图 4b 所 示 。 当用户启动运行之后,便进入了OnComm子程序,此子程序的功能是得到电机的运行状态,并 对其.进行实时显示。据此,程序还包含了两个用于实时显示的窗口:剩余步数显示窗口, 如图5所示;以及频率实时显示窗口如图6所示。其中,频率实时显示窗口可以显示电机的升 降频过程。 3上位机各子程序功能实现过程 在介绍各子程序实现方法之前,这里先要介绍一下对MSComm控件属性的初始化过程: (1)端口初始化。将端口初始化为COMI,即MsComml.CommPort=1 o (2)串行口参数初始化。设置初始化参数Settings的格式为“BBBB,P,D,S”,为了与 下位机进行匹配,程序中初始化Settings=“9 600,N,8,1”,其意为“所使用的通讯端 口是以每秒9 600 bit的速度作传输,不作字符校验,每帧数据为8 bit,而停止位为1 bit”。 (3)事件响应方式选择。MSComm提供了两种处理通信问题的方法,一是事件驱动方法, 一是查询法,本程序采用了事件驱动法来响应串行口事件。 (4)设置引发接收事件的字节数。 本程序初始化其值为1, 即一旦寄存器中有数据则立刻 引发On—Comm中的接收事件。 (5)串行通讯格式选择。进行串行通信时有两种传输方式:字符形式和二进制形式本程 序采用了二进制方式,即MsComml.IputMode=1。最后,在初始化好上述各项属性之后,我 们需要将串口打开,即MSComml.PortOpen=True。 3.1界面初始化子程序 在本子程序的主要工作包括以下几部分: (1)对电机运行方式及预置参数设定窗口中的各控件进行初始化。初始化运行方式设定区的 四个列表框,主要是利用方法Addltem为各列表框添加内容,另外,还要将预置参数设定区 的两个文本框的内容清空。 (2)初始化程序中用到的变量或标志量 比如,初始化画频率曲线时要用到的x轴起始点X为0等。 (3)最后,要将串口打开,即MSComml.PortOpen=True。 3.2运行模式初始化子程序 本子程序主要是根据用户对运行方式的选择对数组State的相关位进行初始化, 由于列表 框中的每一个成员都唯一对应着一个数字,比如:图3列表框中,成员“两相混合式步进电 动机”对应0,成员“三相混合式步进电动机”对应1,以此类推,所以我们根据各列表框反 馈的数字便可以知道用户的选择,知道了用户的选择,接下来便是初始化State数组的对应 位, 比如, State(1)的值代表着用户所选的电机类型, 如果用户选择两相混合式步进电动机, 则将该位置为0。 这样, 下位机在得到数组State后便可以通过元素State(1)来得到电机类型 信息,从而进行更进一步的处理。3.3预置处理子程序本子程序主要是在用户确定预置输入 之后,根据预置参数设定区中两个文本框的内容得到用户的预置。并将其个位、十位及百位 分别存入State(7)、State(6)及State(5)中,这样,下位机在得到State数 组后对其上述三位进行简单的处理便可以得到用户通过上位机输入的预置数。3.4 MSComml —OnComm子程序当寄存器中有数据的时候便会进入此子程序, 所以, 此子程序的功能便是接 收下位机通过串口传上来的数据,对其进行简单的处理后根据预置模式对其进行实时显示, 预置步模式时便显示剩余步数; 预置频率模式时便在初始化图形化显示界面的基础之上显示 实时运行频率。其流程图如图7所示。 图7 MSComml—OnComm子程序流程图 对该子程序需要解释以下几个处理过程的具体含义: 接收数据并进行处理:主要是得到下位机传上来的数据并进行相应的处理,实现语句如下: Receive=MSComml.Input Y= 2(Receive(3)100+Receive(2)10+Re— ceive(1)) 即Receive(1)一Receive(3)各代表实时数据的个位、十位和百位,经以上处理,y便是要显 示的实时数据。 实时显示剩余步数:这一部分的程序较简单,只有一句:Form3.Textl.Text=“当前剩余 步数为:”+Str(Y)。其中,Form3指的便是图5所示的剩余步数显示窗口。 初始化图形化显示界面:这一部分主要包括以下内容: (1)坐标轴的生成; (2)网格的生成。 这一部分的程序在有关使用VB画图的文献中有详细介绍,这里不作详细的介绍。 实时显示运行频率: 这一部分主要是在初始化好的图形化显示界面上以曲线的形式实时显示 运行频率,如图6所示。 这一部分的编程思想是: 如果画的是第一个频率点则用命令PSet只画一个点; 如果画的不是 第一个频率点,则从上一个频率点,画线到现在这个频率点。这样便可以画出完整的频率曲 线。该部分的语句如下: If X=0 Then Form2.PSet(X,y) Else Form2.Line一(X,y) End Tf 4结语 本文所提出的程序设计方法具有较大的通用性,且用户界面友好。经过测试,所设计的上位 机监控软件与下位机软硬件相配合,不但实现了文中提出的所有功能,满足了控制要求,而 且使得控制操作简单易行。 以本文提出的程序设计方法为基础, 再结合步进电动机的具体应 用环境,嵌入合适的控制算法,可完成各种需要复杂运动的步进电动机控制系统设计。 3总结与展望 将dSPACE实时仿真系统应用于运动控制系统的研究与开发当中, 充分利用该系统提供的强大 的数据运算能力及各种成熟的硬件接口电路, 结合外围检测、 驱动电路共同构成硬件在回路 的运动控制系统半物理仿真实验平台。利用dSPACE系统与MATLAB/Simulink的无缝链接技 术, 实现了从传统的数字离线仿真过程到硬件在回路半物理仿真的快速过渡, 从而克服了传 统纯数字离线仿真不能真实代表实际系统及传统数字运动控制系统手工编程、调试的低效、 周期长的缺点,大大提高了运动控制系统研究工作的效率。这也为机器人、电动汽车、数控 机床等复杂运动控制系统的研究提供了一个强大的平台和一种新的研究方法。

文档贡献者

zhangrui5586

贡献于2011-05-07

喜欢此文档的还喜欢