当前位置:南通康诚重工机械有限公司 >> 新闻中心 >> 基于VC++的步进电机控制方法探讨

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


摘要:步进电机是一种将电脉冲信号转换为线位移或角位移的电机,但步进电机的控制通常都采用汇编语言或C语言进行软件开发,本文结合SC3步超细破碎机进电机控制器及平移台的控制开发为例,介绍了一种如何在Windows平台下利用Visual C++6.0提供的串行通信控件MSComm来实现PC机与步进电机控制器之间的数据通讯,最终实现由PC机直接控制步进电机的方法,并详细介绍了编写串行通信程序的基本步骤和方法。调试结果表明:设计的控制程序简单、易懂,工作可靠,且具有友好的人机交互界面。
关键词:步进电机;Visua给料机l C++;串行通信;MSComm控件

A Discussi振动机on of the Measure on the Controlling of Stepper Motor in VC++
CHEN Jiafeng绞龙输送机,PENG Qisheng
(Department of Electronic and Information Engineering,Southce清理筛ntral University for Nationalities,Wuhan,430074,China)
Abstract:Stepper motor is a kind of motor of translating electrical pulse into displacement Ordinarily,the software of control system for stepper motor is programmedby assemble or C language The paper introduces a method of programming realizing serial 粉碎机communication between PC and stepper motor in VC++6.0 based MSComm control by SC3 stepper motor contoller The basal process and method ofprogramming serial communication are introduced. The result shows that designed program is simple and understandable and higher reliability and friendly manmachine conversation interface
Keywords:stepper m链板输送线otor;Visual C++;serial communication;MSComm control

步进电机是一种将电脉冲转化为角位移的机电式数模转换器,在控制系统中具有十分广泛的用途,但传统的步进电机的控制通常都采用汇编语言或C语言进行软件开发,本文利用VC++提供的串行通信控件MSComm实现PC机与步进电机控制器之间的串行通信[1]。与 DOS下串行通信程序不同的是,Windows不提倡应用程序直接控制硬件,而是通过Windows操作系统提供的设备驱动程序来双层振动筛进行数据传送。串行口在Win32中是作为文件来进行处理的,而不是直接对端口进行操作,对于串行通信,Win32提供了相应的文件I/O函数与通信函数,通过了解这些函数的使用,可以编制出符合不同需要的通信程序。

实现串行通信[2]一般有3种方法[3]:使用VC++提供的串行通信控件MSComm[4];在单线程中实现自定义的串口通信类;多线程下实现串行通信。结合实际情况,本系统采用VC++提供的串行通信控件MSComm来进行软件编程,可以很方筛分机便地管理与控制计算机串口。

1震筛机 系统组成

由喂料机PC机控制步进电动机的系统如图1所示。

本系统的电机控制采用通用的RS 232[5]串口的异步通信。由于RS 232早期是为促进公用电话网络进行数据通信而制定的标准,其逻辑电平对地是对称的,与TTL、螺旋输送器MOS逻辑电平完全不同。逻辑0电平规定为+5~+15 V之间,逻辑1电平规定为-5~-15 V之间,因此,RS 232驱动器与TTL电平连接必须经过电平转换。

2 控制软硬件TZSM系列煤粉筛的技术参数

本系统采用卓立汉光仪器有限公司生产的SC3步进电机控制器及平移台,实现平移台的三维控制(x,y,z)。利用RS 232串口异步通信完成对细碎鄂式破碎机步进电机的单步和连续移动控制,并且把电机的实际位置数据反馈给PC机处理。

电控平移台的机械指标如煤粉振动筛下:

(1)精密电控旋转台:型号RSA200用于x轴。转动范围>±40°;传动比180∶1;小步距0.000 312 5°;台面直径Φ200;分辨率0.00125°;重复定位精度<0.005°;最大速度25/s;中心最大负载60 kg。

(2)重载型电控平移台:型号TSA300B,用于z轴。最小步距0.003 15 mm;重复定位精度<0.005 mm;加固定平移台有效行程为150 mm。

(3)超薄型电控平移台:型号TSA30C,用于y轴。最小步距为0.002 mm;重复定位精度<0.005 mm;有效行程30 mm。SC3步进电机控制器设有手动和联动方式,手动能设置的操作有:速度设定、归零操作、方向设定、位移量设定等,联机方式可以使电机的运动直接受应用软件控制。由于是进行二次开发,因此应用程序必须嵌入原控制器的控制指令及协议。

该指令系统主要有以下几条:

联络指令指令格式:“?R" & CHR$(13)
该指令发出200 ms以内SC3回送:“OK”& CHR$(10),表示联络成功。
查询指令指令格式:“?V”& CHR$(13)
SC3接到该指令后回送:“V number” & CHR$(10)。其中number为ASC码表示的SC3当前速度值。范围0~255。
坐标查询指令指令格式:“?X”& CHR$(13) 或“?Y”& CHR$(13)或“?Z”& CHR$(13)
SC3接到该指令后回送:“X+number” & CHR$(10),或“Xnumber” & CHR$(10),其他轴类似。其中number为以ASC码表示的SC3当前坐标值,正负号代表当前位置在开机位置(0位)的正负方向的位置。
速度设置指令指令格式:“V”& number & CHR$(13)
其中number为以ASC码表示的速度设置值。范围0~255。
归零指令指令格式:“HX”& CHR$(13) 或“HY”& CHR$(13) 或“HZ”& CHR$(13) 。
SC3接到此类指令后进行归零操作。完成归零操作后回送:“OK”& CHR$(10),表示SC3归零完毕。
零状态查询指令指令格式:“?H”& CHR$(13)
SC3接到此类指令后回送:“H000” & CHR$(10)

其中000的含义:

第一位数值:1表示z轴归零成功,0表示z轴未归零。
第二位数值:1表示y轴归零成功,0表示y轴未归零。
第三位数值:1表示x轴归零成功,0表示x轴未归零。
运行指令指令格式:“Xdirectionnumber”& CHR$(13)或“Y directionnumber”& CHR$(13)或“Z directionnumber”& CHR$(13)

3 软件实现

3.1 利用VC++提供的串行通信控件MSComm实现串行通信

首先,在VC++[5]的对话框中创建通信控件,若Control工具栏中缺少该控件,可通过菜单Project→Add toProject→Components and Control插入即可,再将该控件从工具箱拉到对话框中。此时,你只需要关心控件提供的对Windows通信驱动程序的API函数的接口,即只需要设置和监视MSComm控件的属性和事件。

在ClassWizard中为新建的通信控件定义成员对象(CMSComm m_Serial),通过该对象便可以对串口属性进行设置,MSComm控件共有27个属性,其中主要包括:

Commport:设置并返回通信端口号,缺省为COM1。
Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen:设置并返回通信端口的状态,也可以打开和关闭端口。
Input:从接收缓冲区返回和删除字符。
Output:向发送缓冲区写入字符串。
InputLen:每次设置Input读入的字符个数,缺省值为0,表明读取接收缓冲区中的全部内容。
InBufferCount:返回接收缓冲区中已接收到的字符数,将其置0可以清除接收缓冲区。
InputMode:定义Input属性获取数据的方式(为0:文本方式;为1:二进制方式)。
RThreshold和SThreshold属性,表示在OnComm事件发生之前,接收缓冲区或发送缓冲区中可接收的字符数。

以下是通过设置控件属性对串口进行初始化的实例:

打开所需串口后,需要考虑串口通信的时机。在接收或发送数据过程中,可能需要监视并响应一些事件和错误,所以事件驱动是处理串行端口交互作用的一种非常有效的方法。使用OnComm事件和CommEvent属性捕捉并检查通信事件和错误的值。发生通信事件或错误时,将触发OnComm事件,CommEvent属性的值将被改变,应用程序检查CommEvent属性值并作出相应的反应。在程序中用ClassWizard为CMSComm控件添加OnComm消息处理函数:

3.2 系统初始化

在执行应用程序时首先必须进行初始化,其初始化程序框图如图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°,纵轴的丝杠导程为1 mm,横轴为4 mm,旋转轴传动比为180∶1,细分数为2,则根据以上公式可得出:

纵轴(z)脉冲当量=1/100
横轴(y)脉冲当量=1/400
旋转轴(x)脉冲当量=1/200

4 结语

在PC机和单片机之间实现串行通信控制是近几年很受欢迎、较为流行的方法。本文介绍的运用MSComm控件来编制的由PC机对步进电机直接控制的应用软件具有友好的人机交互界面,且编程简便、工作可靠,是一种切实有效的方法。同时,这种串行控制方法和技术还可运用于相应的工业控制场合。

参考文献
[1]李朝青.PC机及单片机数据通信技术M].北京:北京航空航天大学出版社,1999.
[2][美]Joe Campbell.串行通信C程序员指南[M].徐国定译.北京:清华大学出版社,1995.
[3]Herbert Schildt,Schildt′sExpert C++[M].MCGrawHill,1998.
[4][美]Young Michael J.Visual C++6从入门到精通[M]邱仲潘,等译.北京:电子工业出版社,1999.
[5]向世明.Visual C++数字图像与图形处理[M].北京:电子工业出版社,2002. (

 

相关产品

提升输送机
TD、D型斗式提升输送机适用于垂直输送粉状、粒状及小块状的磨琢性较小的散状物料,如粮食、煤、水泥、碎矿石等。
管式电磁振动输送机(GZXG)
结构简单,安装方便,不需润滑,使用寿命长,耗电少等优点。本机采用可控硅半波整流控制线路,可以无级调节输送量,实现生产流程的集中控制和自动控制。
螺旋式输送机
螺旋式输送机广泛应用于各行业,如建材、化工、电力、冶金、煤矿炭、粮食等行业。
粮食输送机,粮食输送设备
粮食输送机是一种移动转向式皮带输送机,是一种常见粮食输送设备,主要用于平房仓的散装进仓作业。粮食输送机主要由输送部分,转向部分和行走部分组成。主要适用于大、中型粮食仓库的进仓作业。
链斗式输送机
链斗式输送机是以沿轨道运行的料斗来水平或倾斜输送物料的设备。它广泛应用于电站、矿山、冶金、煤炭、化工、建材等行业的各种松散物料的输送。
电机振动输送机(DZS型)
DZS型电机振动输送机、输送槽为U形槽和管形两种。
链板式输送机
链板式输送机是以大节距特种弯板链条为传送介质,由于链板式输送机的线体结构及输送介质较为坚固,带动金属面板作循环往复运行的一种输送装配设备。
微量给料机
由储料筒、翻料装置、给料螺旋组成。根据物料性状,可配弹簧螺旋、桨叶螺旋、带式螺旋或满面螺旋,即使是流动性很差的物料,也能均匀给料;采用特殊减压措施,可以基本消除因堆积密度大而产生的流量变化影响;轴封效果好,使用寿命长。可以配变频调速器,也可配调速电机。
矿用输送机
矿用输送机适用于矿山、冶金、煤炭、化工、水电、码头、砂石场等行业中运输散状或成品物料之用。
摆式给料机
摆式给料机适用于选矿,煤炭,化工及其他部门,将颗粒状物料从储料槽经漏斗送给各种类型的受料装置。
矿业输送设备
埋刮板输送机是输送粉尘状、小颗粒及小块状等物料的连续运输设备,可以水平、倾斜输送,输送物料时,刮板链条全埋在物料之中。本机具有结构简单,使用可靠,造价低廉,输送距离长,并能输送灼热物料等优点,是常用的矿业输送设备。
叶轮给料机
叶轮给料机的出力是按一定的容积比重确定的。因此对于建材、冶金、化工、民用等部门的制粉系统,也可根据技术性能广为选用,欢迎订货。
惯性振动输送机
惯性振动输送机用于各种粒状、中等块度以正反非粘性物料(含水量小于5%)。适宜输送高磨耗、高温度(300℃以下)物料。
管式输送机
LS型螺旋管式输送机适用于各行业,如建材、化工、电力、冶金、煤炭、粮食等行业,适用于水平或倾斜输送粉状、粒状和小块状物料,如煤、灰、渣、水泥、粮食等。
立式圆盘给料机
立式圆盘给料机主要组成部件有:驱动装置(含电机、立式减速器、联轴器)料套装置、给料圆盘主机、料罩等四部份组成。
大倾角胶带输送机
大倾角胶带输送机可广泛用于煤炭、粮食、建材、化工、水电和冶金等部门,在环境温度为-19℃~+40℃范围内,输送堆积比重为0.5-2.5t/m3的各种散状物料。
波纹挡边输送机
大倾角波纹挡边输送机是散状物料连续输送设备,采用的是具有波纹挡边和横隔板的输送带。广泛用于煤炭、粮食、建材、化工、水电和冶金等部门。
粮食输送机械
移动粮食输送机是一种常见粮食输送机械,主要用于平房仓的散装进仓作业。粮食输送机主要由输送部分,转向部分和行走部分组成。主要适用于大、中型粮食仓库的进仓作业。
惯性振动热料输送机(SZF型)
SZF型惯性振动热料输送机是一种兼有锁风功能长距离输送设备。该机适用于输送各种中等块度以正反散粒状物料及水平输送(≤500℃)高温高磨耗物料,如烘干热矿渣、水泥熟料等。适用于水泥立窑窑下,做料封出料机。
移动皮带输送机
DY型移动皮带输送机是一种工效高,使用可靠,机动性好的连续输送装卸设备。主要用于装卸地点经常变更动的场所,如:港口、码头、车站、煤场、仓库、建筑工地、沙石料场、农场等。
板链式输送机
板链式输送机广泛应用于冶金、煤炭、化工、电力、机械制造、汽车等行业。
矿山输送机械
埋刮板输送机是输送粉尘状、小颗粒及小块状等物料的连续运输设备,可以水平、倾斜输送,输送物料时,刮板链条全埋在物料之中。本机具有结构简单,使用可靠,造价低廉,输送距离长,并能输送灼热物料等优点,是常用的矿山输送机械。
电机振动给料机
电机振动给料机广泛应用于矿山、冶金、煤炭、建材、化工、电力、粮食等行业,用于把块状、颗粒状及粉状物料从贮料仓或其它贮料设备中均匀、连续或定量地给到受料设备中,适应于自动配料、定量包装和自动控制。
装车输送机
装车输送机普遍应用于港口、码头、车站、机场、仓库、矿山、邮电、电器、轻工、食品等行业。
大倾角波纹挡边输送机
大倾角波纹挡边输送机是散状物料连续输送设备,采用的是具有波纹挡边和横隔板的输送带广泛用于煤炭、粮食、建材、化工、水电和冶金等部门。
大倾角皮带输送机
大倾角皮带输送机可用于煤炭、化工、建材、冶金、电力、轻工、粮食、港口、船舶等行业。
管状带式输送机,管状输送机
管状带式输送机可广泛应用于电力、建材、化工、矿山、冶金、码头、港口、煤炭、粮食等行业物料输送系统。
电磁电机振动给料机.
电磁电机振动给料机具有体积小、噪音低、重量轻、工作频率高、耗电少、可用于自动控制的流程中实现生产流程自动化。 无级调节给料量,可在额定电压、振幅条件下频繁启动和连续运转,安装维修方便。
圆盘式给料机
圆盘式给料机为容积式计量的给料设备,它能均匀、连续地将物料喂送到下一道工序,并且能够承受较大的仓压。
移动式皮带输送机
DY型移动式输送机是一种工程上使用较多的设备,主要用于装卸地点经常变动的场合,如:港口、码头、车站、煤场、仓库、建筑工地、砂石料场、农场等,用来短途运输及装卸散料或单件重100公斤以下的成件物品。
电机振动给料机(电机给料机)
GZG系列电机振动给料机广泛应用于冶金、煤炭、化工、建材、轻工、玻璃、食品、粮食、磨料磨具和机械等工矿企业中。
链式输送机
fu链式输送机广泛用于建材、建筑、化工、矿山、机械、冶炼、粮饲加工等行业,是一种理想的新型输送设备。
带式给料机
给料机是一种比较短的输送设备,用在贮仓、筒仓或料斗的底部排出物料,并将物料转运至输送机,或者用来调节进入加工设备的物料量。
固定带式输送机
固定带式输送机是一种输送量大、运行费用低、使用范围广的输送设备。
微型电振给料机
微型电振给料机广泛应用于轻工、化工、粮食加工、商业等行业,用于粉状、颗料状物料的给料、配料及定量自动包装等生产流程中,并可实现集中控制和自动控制。
移动输送机
DY型移动输送机主要用于装卸地点经常变动的场合,如:港口、码头、车站、煤场、仓库、建筑工地、砂石料场、农场等,用来短途运输及装卸散料或单件重100公斤以下的成件物品。
移动式输送机
DY型移动式输送机主要用于装卸地点经常变动的场合,如:港口、码头、车站、煤场、仓库、建筑工地、砂石料场、农场等,用来短途运输及装卸散料或单件重100公斤以下的成件物品。
同步惯性给料机
同步惯性给料机广泛用于矿山、冶金、煤炭、建材、轻工、化工、电力、粮食等行业中,用以把块状、颗粒状及粉状物料从贮料仓或漏斗中均匀连续或定量地给到受料装置中去。
伸缩输送机
伸缩输送机由主体加架和伸缩机架组成,输送长度根据需要伸缩调节,能适应各种场所颗粒物料的输送作业,移动转场安全方便,存放时占用空间小。
链条输送机
链条输送机是以链条作为牵引和承载体输送物料,链条可以采用普通的套筒滚子输送链,也可采用其它各种特种链条(如积放链,倍速链)。

最新产品

CZ系列仓壁振动器
仓壁振动器用于防止和排除各种料仓由于物料的内摩擦、潮解、带电、成分偏析等原因引起的“堵塞”、“塔拱”现象;亦可用于清除各种仓壁、管道粘结物料
防闭塞装置(ZFB)
ZFB防闭塞装置(仓壁振动器)广泛应用于冶金、化工、建材、火电、煤炭、食品、水泥、制药、化肥、粮食、铸造、陶瓷、磨料等行业中贮料仓的防闭塞之用。
惯性振动器(ZG)
ZG惯性振动器广泛用来作为各种振动机械(如振动给料机、振动输送机、振动筛分机、振动落砂机、振动破碎机、振动提升机、振动试验台等)的激振源
振动电机
振动电机矿山、铸造、冶金、煤炭、电力、粮食、港口、化工、建材、机械、陶瓷等工业部门的理想配套设备

最新资讯

随机链接

活化给煤机

矿山碎石机

矿用破碎机

细碎制砂机

小型皮带输送机

南通康诚重工机械有限公司   地址: 江苏省海安县开发区南海大道(东)8号 网址: http://www.ntscjx.com

电话:0513-80686000  88773999 传真:0513-80686060

 联系人: 吴先生 13506276000(24小时服务热线) E-mail:info@ntscjx.com 技术支持:天正企划

分享到: