当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]  步进电机是一种将电脉冲信号转换为线位移或角位移的电机,但步进电机的控制通常都采用汇编语言或C语言进行软件开发,本文结合SC3步进电机控制器及平移台的控制开发为例

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

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

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

  1、系统组成

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

图1 PC机控制步进电机系统框图

 本系统的电机控制采用通用的RS 232串口的异步通信。由于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步进电机控制器设有手动和联动方式,手动能设置的操作有:速度设定、归零操作、方向设定、位移量设定等,联机方式可以使电机的运动直接受应用软件控制。由于是进行二次开发,因此应用程序必须嵌入原控制器的控制指令及协议。

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

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

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

  1、系统组成

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

图1 PC机控制步进电机系统框图

 本系统的电机控制采用通用的RS 232串口的异步通信。由于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)

  该指令发出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++的对话框中创建通信控件,若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所示。

图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机对步进电机直接控制的应用软件具有友好的人机交互界面,且编程简便、工作可靠,是一种切实有效的方法。同时,这种串行控制方法和技术还可运用于相应的工业控制场合。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭