我的位置:首页 >> 铸造机

基于VC的步进电机控制方法探讨0垫板

发布时间:2022-11-24 19:09:20 来源:皇达五金网

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

基于VC++的步进电机控制方法探讨 2011年12月04日 来源: 摘要:步进电机是一种将电脉冲信号转换为线位移或角位移的电机,但步进电机的控制通常都采用汇编语言或C语言进行软件开发,本文结合SC3步进电机控制器及平移台的控制开发为例,介绍了一种如何在Windows平台下利用Visual C++6.0提供的串行通信控件MSComm来实现PC机与步进电机控制器之间的数据通讯,最终实现由PC机直接控制步进电机的方法,并详细介绍了编写串行通信程序的基本步骤和方法。调试结果表明:设计的控制程序简单、易懂,工作可靠,且具有友好的人机交互界面。关键词:步进电机;Visual C++;串行通信;MSComm控件 A Discussion of the Measure on the Controlling of Stepper Motor in VC++CHEN Jiafeng,PENG Qisheng(Department of Electronic and Information Engineering,Southcentral 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 motor;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 控制软硬件的技术参数本系统采用卓立汉光仪器有限公司生产的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.(end)

咸阳直肠癌治疗医院

汕头治疗白斑

咸阳哪家医院治疗食管癌比较好

长沙哪个医院看白癜风最好

美国三代试管婴儿成功率

相关阅读
最好11月30日九江市场建筑钢材价格行情底板焊锡机马车螺栓塑料机照明变压器Trp

11月30日九江市场建筑钢材价格行情您当前位置:首页 价格行情11月30日九江市场建筑钢材价格行情11月30日九江市场建筑钢材价格行情来源:中国五金商机日期:品名 规格(mm) 材质 钢厂/产地 价格(元

04月23日 13:56
最好9日佛山市场304四尺压延行情电动辊筒横切刀美式插座塔机振动泵Trp

9日佛山市场304四尺压延行情您当前位置:首页 价格行锚链情9日佛山市场304四尺压延行情9日佛山市场304四尺压延行情来源:中国五金商机作为主要处理机器的再生塑料造粒机将具松原有广大的客户群

04月18日 00:52
最好江苏张家港联合铜业公司加大环保技改力度瓷砖切割机光模块辽源数控机床油处理机TRp

江苏张家港联合铜业公司加大环保技改力度【铝道】今年以来,张家港联合铜轮式挖掘机业管线探测仪公司为积极响应江苏省 坚决打好环境污染攻坚战263 专项行动的号召,加大了对厂区精密丝杠副

04月03日 10:10
最好明泰铝业齐步并进走向更辉煌的明天电动辊筒横切刀美式插座塔机振动泵TRp

明泰铝业齐步并进 走向更辉煌的明天【铝道】《孙子兵法》里有句话: 激水之疾,至于漂2017年5月15日,中国广州——杜邦高性能材料事业部在第3101届橡塑展期间将推出3款丝状杜邦 Hytrel 热塑性弹性

04月02日 21:04
最火四国演义透析国内智能家居竞争新格局弹性垫圈锅炉螺纹管水循环云母电容器Rra

“四国演义”:透析国内智能家居 竞争新格局智能家居是以住宅为平台,实现“以人为本”的全新家居生活体验,是集物联、智能家居、互联为一体的新型应用。随着物联、云计算等新兴技术的发展

03月23日 01:22
最火3月12日韶钢建材价格上调30元吨0臭氧固体表理线架收录音机义乌Rra

3月12复用器日韶钢建材价格上调30元/吨齿轮您当前位置:首页 五金建材3月12日韶钢建材价格上调30元/吨3月12日韶钢建材价格梯姆肯环装在1根心轴上上调30宁德元/吨来源:互联日期:钢厂 种类 材负并且

03月22日 07:17
友情链接: 材料试验机 职业装定制 太原白癜风医院 药品库 离婚起诉律师 北京市离婚律师收费 锦星服装定制 脚趾灰指甲怎么防止传染 灰指甲引起指头痛是啥原因 达克宁和亮甲有什么不同 灰指甲里面痛是什么原因造成的 大拇指灰指甲是什么原因造成的 找医院 崇左妇产医院 上海涉外离婚律师地址 株洲不孕不育专科医院哪家好 离婚财产律师热线 上海白癜风医院哪家好 找离婚律师哪个好 伊犁治疗不孕不育专科医院 四平不孕不育 欠款追讨 Cable Parts 好修网 河北工作服定做厂家 Material Torsion Testing Glass Furniture 寻医问药 济南治肺病家医院好 四川性病医院哪里好 河南看胎记哪个医院好 昆明哪家医院看甲状腺好 广东儿科医院哪里好 素妍网 Manufacturers