作为中国自动化领域的权威旗舰网络媒体,控制网创立于1999年7月,是中国举行的第十四届IFAC (International Federation of Automatic Control)大会的中国官方组织机构的唯一指定网站。控制网是中国自动化学会专家咨询工作 委员会(ECC)的秘书处常设之地。是北京自控在线文化传播有限公司开设的网站。
标题 | 基于VC++的步进电机控制方法探讨 |
技术领域 | 人机界面 |
行业 | |
简介 | 步进电机是一种将电脉冲信号转换为线位移或角位移的电机,但步进电机的控制通常都采用汇编语言或C语言进行软件开发,本文结合SC3步进电机控制器及平移台的控制开发为例,介绍了一种如何在Windows平台下利用Visual C++6.0提供的串行通信控件MSComm来实现PC机与步进电机控制器之间的数据通讯,最终实现由PC机直接控制步进电机的方法,并详细介绍了编写串行通信程序的基本步骤和方法。调试结果表明:设计的控制程序简单、易懂,工作可靠,且具有友好的人机交互界面。 |
内容 |
实现串行通信[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.001 25°;重复定位精度<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) 查询指令指令格式:“?V”& CHR$(13) 坐标查询指令指令格式:“?X”& CHR$(13) 或“?Y”& CHR$(13)或“?Z”& CHR$(13) 速度设置指令指令格式:“V”& number & CHR$(13) 归零指令指令格式:“HX”& CHR$(13) 或“HY”& CHR$(13) 或“HZ”& CHR$(13) 零状态查询指令指令格式:“?H”& CHR$(13) 其中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.1 利用VC++提供的串行通信控件MSComm实现串行通信 首先,在VC++[5]的对话框中创建通信控件,若Control工具栏中缺少该控件,可通过菜单Project→Add to |