基于VC的步进电机控制方法探讨油盘
基于VC++的步进电机控制方法探讨
步进电机是一种将电脉冲信号转换为线位移或角位移的电机,但步进电机的控制通常都采用汇编语言或C语言进行软件开发,本文结合SC3步进电机控制器及平移台的控制开发为例,介绍了一种如何在Windows平台下利用VisualC++6.0提供的串行通信控件MSComm来实现PC机与步进电机控制器之间的数据通讯,最终实现由PC机直接控制步进电机的方法,并详细介绍了编写串行通信程序的基本步骤和方法。调试结果表明:设计的控制程序简单、易懂,工作可靠,且具有友好的人机交互界面。
步进电机是一种将电脉冲转化为角位移的机电式数模转换器,在控制系统中具有十分广泛的用途,但传统的步进电机的控制通常都采用汇编语言或C语言进行软件开发,本文利用VC++提供的串行通信控件MSComm实现PC机与步进电机控制器之间的串行通信。与DOS下串行通信程序不同的是,Windows不提倡应用程序直接控制硬件,而是通过Windows操作系统提供的设备驱动程序来进行数据传送。串行口在Win32中是作为文件来进行处理的,而不是直接对端口进行操作,对于串行通信,Win32提供了相应的文件I/O函数与通信函数,通过了解这些函数的使用,可以编制出符合不同需要的通信程序。
实现串行通信一般有3种方法:使用VC++提供的串行通信控件MSComm;在单线程中实现自定义的串口通信类;多线程下实现串行通信。结合实际情况,本系统采用VC++提供的串行通信控件MSComm来进行软件编程,可以很方便地管理与控制计算机串口。
1、系统组成
由PC机控制步进电动机的系统如图1所示。
图1PC机控制步进电机系统框图
本系统的电机控制采用通用的RS232串口的异步通信。由于RS232早期是为促进公用电话网络进行数据通信而制定的标准,其逻辑电平对地是对称的,与TTL、MOS逻辑电平完全不同。逻辑0电平规定为+5~+15V之间,逻辑1电平规定为-5~-15V之间,因此,RS232驱动器与TTL电平连接必须经过电平转换。
2、控制软硬件的技术参数
本系统采用卓立汉光仪器有限公司生产的SC3步进电机控制器及平移台,实现平移台的三维控制(x,y,z)。利用RS232串口异步通信完成对步进电机的单步和连续移动控制,并且把电机的实际位置数据反馈给PC机处理。
电控平移台的机械指标如下:(1)精密电控旋转台:型号RSA200用于x轴。转动范围±40°;传动比180∶1;小步距0.0003125°;台面直径Φ200;分辨率0.00125°;重复定位精度0.005°;最大速度25/s;中心最大负载60kg。(2)重载型电控平移台:型号TSA300B,用于z轴。最小步距0.00315mm;重复定位精度0.005mm;加固定平移台有效行程为150mm。(3)超薄型电控平移台:型号TSA30C,用于y轴。最小步距为0.002mm;重复定位精度0.005mm;有效行程30mm。SC3步进电机控制器设有手动和联动方式,手动能设置的操作有:速度设定、归零操作、方向设定、位移量设定等,联机方式可以使电机的运动直接受应用软件控制。由于是进行二次开发,因此应用程序必须嵌入原控制器的控制指令及协议。该指令系统主要有以下几条:联络指令指令格式:“?R"&CHR$(13)该指令发出200ms以内SC3回送:“OK”&CHR$(10),表示联络成功。查询指令指令格式:“?V”&CHR$(13)SC3接到该指令后回送:“Vnumber”&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)或“Ydirectionnumber”&CHR$(13)或“Zdirectionnumber”&CHR$(13)
3、软件实现
3.1利用VC++提供的串行通信控件MSComm实现串行通信首先,在VC++[5]的对话框中创建通信控件,若Control工具栏中缺少该控件,可通过菜单Project→Addto?Project→ComponentsandControl插入即可,再将该控件从工具箱拉到对话框中。此时,你只需要关心控件提供的对Windows通信驱动程序的API函数的接口,即只需要设置和监视MSComm控件的属性和事件。在ClassWizard中为新建的通信控件定义成员对象(CMSCommm_Serial),通过该对象便可以对串口属性进行设置,MSComm控件共有27个属性,其中主要包括:
上一页12下一页
- 最好塑料储罐的安装说明及注意事项电梯电缆机械刀片牛头刨床铜箔周口Trp
- 最好湖南省省长视察晟通集团长沙产业园低压变频器焊接弯头滤芯塑料粉碎机长春Trp
- 最好供应车库塑料定型板厂家价格优惠刀架过滤减压器螺旋输送机丝管冷凝器枣阳Trp
- 最好2017煤钢去产能超额完成僵尸企业处置将大连硅胶电线泸州水处理系统玉米脱粒机Trp
- 最好山东济宁矿用混凝土泵大品牌高配置除污机刮泥机立式注塑机手动喷雾器音频连接器Trp
- 最好逼12岁女儿学大学英语屡次家暴一单亲妈妈打孔膜光学元件龙门刨双头螺柱榆林Trp
- 最好2017年10月10日今日氧化铥行情查询常州格尔木昆明射频连接器阳江Trp
- 最好12日湖北市场钢绞线价格行情D型卸扣多层电路板江阴栖霞涡轮叶片Trp
- 最好2016年10月10日今天金属镨价格行情板材生产线防伪拉线金属垫片桥架洗车机Trp
- 最好越南对进口板材发起保障措施调查端子压接机剪刀屏幕刷渭南组合轴承Trp
- 最好10日武汉市场造船板价格行情布辊干燥设备开瓶器如皋旋涡泵Trp
- 最好27日日照市场冶金焦价格行情泵壳风力发电机精密铸造球座橡胶油封Trp
- 最好Ormet发布财务业绩报告电动闸阀烘箱密封材料钛合金振动压路机Trp
- 最好西班牙圣何塞锂锡矿成为重要矿床苯胺印刷机风冷发动机精密注塑球形阀橡胶模具Trp