⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 本设计提供了通过VC和上位机软件来控制步进电机的方案
💻
📖 第 1 页 / 共 2 页
字号:
                <TD width=1 bgColor=#cccccc></TD>
                <TD vAlign=top align=middle width=609>
                  <TABLE cellSpacing=0 cellPadding=0 width="95%" border=0>
                    <TBODY>
                    <TR>
                      <TD class=z1 align=left>当前位置:<A 
                        href="http://articles.e-works.net.cn/Articles/wz_gongye.htm">工业自动化控制</A> 
                        -&gt; <A 
                        href="http://articles.e-works.net.cn/Articles/wz_gongye_ydcf.htm">运动伺服</A></TD></TR>
                    <TR>
                      <TD align=left>&nbsp;</TD></TR></TBODY></TABLE>
                  <TABLE cellSpacing=0 cellPadding=0 width=572 align=center 
                  border=0>
                    <TBODY>
                    <TR>
                      <TD height=8></TD></TR>
                    <TR>
                      <TD class=z2 align=middle><STRONG class=z4><FONT 
                        color=#2b547d>基于VC++的步进电机控制方法探讨</FONT></STRONG></TD></TR>
                    <TR>
                      <TD class=z1 align=middle><FONT 
                        color=#666666>发表时间:2006-2-19&nbsp;陈家凤,彭其圣<A 
                        href="http://articles.e-works.net.cn/450/Article35704.htm#" 
                        a 来源:现代电子技术<></FONT></A></TD></TR>
                    <TR>
                      <TD align=middle height=40>
                        <TABLE cellSpacing=0 cellPadding=0 width="80%" 
                          border=0><TBODY>
                          <TR align=middle>
                            <TD><A 
                              href="http://www.e-works.net.cn/sm/Untitled-1.htm" 
                              target=_blank><IMG height=24 
                              src="基于VC++的步进电机控制方法探讨1.files/an01.gif" width=72 
                              border=0></A></TD>
                            <TD><A 
                              href="http://www.e-works.net.cn/comm/ewk_business/myeworks/my-favorites2.aspx?htmlurl=/Articles/450/Article35704.htm&amp;type=viewarticle"><IMG 
                              height=24 src="基于VC++的步进电机控制方法探讨1.files/an02.gif" 
                              width=72 border=0></A></TD>
                            <TD><A 
                              href="http://www.e-works.net.cn/comment.aspx?htmlurl=/Articles/450/Article35704.htm&amp;article_id=35704&amp;action=0"><IMG 
                              height=24 src="基于VC++的步进电机控制方法探讨1.files/an03.gif" 
                              width=72 border=0></A></TD>
                            <TD><A 
                              href="mailto:好友信箱?subject=好文章:http://articles.e-works.net.cn/Articles/450/Article35704.htm"><IMG 
                              height=24 src="基于VC++的步进电机控制方法探讨1.files/an04.gif" 
                              width=72 border=0></A></TD>
                            <TD><A href="javascript:print()"><IMG height=24 
                              src="基于VC++的步进电机控制方法探讨1.files/an05.gif" width=72 
                              border=0></A></TD></TR></TBODY></TABLE></TD></TR>
                    <TR>
                      <TD align=middle>
                        <TABLE cellSpacing=1 cellPadding=4 width="99%" 
                        bgColor=#cccccc border=0>
                          <TBODY>
                          <TR>
                            <TD class=z1 align=left bgColor=#f8f8f8><FONT 
                              color=#666666></FONT><FONT 
                              color=#005199>步进电机是一种将电脉冲信号转换为线位移或角位移的电机,但步进电机的控制通常都采用汇编语言或C语言进行软件开发,本文结合SC3步进电机控制器及平移台的控制开发为例,介绍了一种如何在Windows平台下利用Visual 
                              C++6.0提供的串行通信控件MSComm来实现PC机与步进电机控制器之间的数据通讯,最终实现由PC机直接控制步进电机的方法,并详细介绍了编写串行通信程序的基本步骤和方法。调试结果表明:设计的控制程序简单、易懂,工作可靠,且具有友好的人机交互界面。</FONT></TD></TR></TBODY></TABLE></TD></TR>
                    <TR>
                      <TD height=10></TD></TR>
                    <TR>
                      <TD align=left><SPAN class=z1>
                        <P>&nbsp;&nbsp;&nbsp; 
                        步进电机是一种将电脉冲转化为角位移的机电式数模转换器,在控制系统中具有十分广泛的用途,但传统的步进电机的控制通常都采用汇编语言或C语言进行软件开发,本文利用VC++提供的串行通信控件MSComm实现PC机与步进电机控制器之间的串行通信[1]。与 
                        DOS下串行通信程序不同的是,Windows不提倡应用程序直接控制硬件,而是通过Windows操作系统提供的设备驱动程序来进行数据传送。串行口在Win32中是作为文件来进行处理的,而不是直接对端口进行操作,对于串行通信,Win32提供了相应的文件I/O函数与通信函数,通过了解这些函数的使用,可以编制出符合不同需要的通信程序。</P>
                        <P>&nbsp;&nbsp;&nbsp; 
                        实现串行通信[2]一般有3种方法[3]:使用VC++提供的串行通信控件MSComm[4];在单线程中实现自定义的串口通信类;多线程下实现串行通信。结合实际情况,本系统采用VC++提供的串行通信控件MSComm来进行软件编程,可以很方便地管理与控制计算机串口。</P>
                        <P>&nbsp;&nbsp;&nbsp; <STRONG>1、系统组成</STRONG></P>
                        <P>&nbsp;&nbsp;&nbsp; 由PC机控制步进电动机的系统如图1所示。</P>
                        <P align=center><IMG height=48 
                        src="基于VC++的步进电机控制方法探讨1.files/127846203265937500.gif" 
                        width=186 align=center><BR>图1 PC机控制步进电机系统框图</P>
                        <P>&nbsp;&nbsp;&nbsp; 本系统的电机控制采用通用的RS 232[5]串口的异步通信。由于RS 
                        232早期是为促进公用电话网络进行数据通信而制定的标准,其逻辑电平对地是对称的,与TTL、MOS逻辑电平完全不同。逻辑0电平规定为+5~+15 
                        V之间,逻辑1电平规定为-5~-15 V之间,因此,RS 232驱动器与TTL电平连接必须经过电平转换。</P>
                        <P>&nbsp;&nbsp;&nbsp; <STRONG>2、控制软硬件的技术参数</STRONG></P>
                        <P>&nbsp;&nbsp;&nbsp; 
                        本系统采用卓立汉光仪器有限公司生产的SC3步进电机控制器及平移台,实现平移台的三维控制(x,y,z)。利用RS 
                        232串口异步通信完成对步进电机的单步和连续移动控制,并且把电机的实际位置数据反馈给PC机处理。</P>
                        <P>&nbsp;&nbsp;&nbsp; 电控平移台的机械指标如下:</P>
                        <P>&nbsp;&nbsp;&nbsp; (1) 
                        精密电控旋转台:型号RSA200用于x轴。转动范围&gt;±40°;传动比180∶1;小步距0.000 312 
                        5°;台面直径Φ200;分辨率0.001 
                        25°;重复定位精度&lt;0.005°;最大速度25/s;中心最大负载60 kg。</P>
                        <P>&nbsp;&nbsp;&nbsp; (2) 
                        重载型电控平移台:型号TSA300B,用于z轴。最小步距0.003 15 mm;重复定位精度&lt;0.005 
                        mm;加固定平移台有效行程为150 mm。</P>
                        <P>&nbsp;&nbsp;&nbsp; (3) 
                        超薄型电控平移台:型号TSA30C,用于y轴。最小步距为0.002 mm;重复定位精度&lt;0.005 
                        mm;有效行程30 
                        mm。SC3步进电机控制器设有手动和联动方式,手动能设置的操作有:速度设定、归零操作、方向设定、位移量设定等,联机方式可以使电机的运动直接受应用软件控制。由于是进行二次开发,因此应用程序必须嵌入原控制器的控制指令及协议。</P>
                        <P>&nbsp;&nbsp;&nbsp; 该指令系统主要有以下几条:</P>
                        <UL>
                          <LI>联络指令指令格式:“?R" &amp; CHR$(13)</LI></UL>
                        <P>&nbsp;&nbsp;&nbsp; 该指令发出200 ms以内SC3回送:“OK”&amp; 
                        CHR$(10),表示联络成功。</P>
                        <UL>
                          <LI>查询指令指令格式:“?V”&amp; CHR$(13)</LI></UL>
                        <P>&nbsp;&nbsp;&nbsp; SC3接到该指令后回送:“V number” &amp; 
                        CHR$(10)。其中number为ASC码表示的SC3当前速度值。范围0~255。</P>
                        <UL>
                          <LI>坐标查询指令指令格式:“?X”&amp; CHR$(13) 或“?Y”&amp; 
                          CHR$(13)或“?Z”&amp; CHR$(13)</LI></UL>
                        <P>&nbsp;&nbsp;&nbsp; SC3接到该指令后回送:“X+number” &amp; 
                        CHR$(10),或“Xnumber” &amp; 
                        CHR$(10),其他轴类似。其中number为以ASC码表示的SC3当前坐标值,正负号代表当前位置在开机位置(0位)的正负方向的位置。</P>
                        <UL>
                          <LI>速度设置指令指令格式:“V”&amp; number &amp; CHR$(13)</LI></UL>
                        <P>&nbsp;&nbsp;&nbsp; 
其中number为以ASC码表示的速度设置值。范围0~255。</P>
                        <UL>
                          <LI>归零指令指令格式:“HX”&amp; CHR$(13) 或“HY”&amp; CHR$(13) 
                          或“HZ”&amp; CHR$(13) </LI></UL>
                        <P>&nbsp;&nbsp;&nbsp; 
                        SC3接到此类指令后进行归零操作。完成归零操作后回送:“OK”&amp; 
                        CHR$(10),表示SC3归零完毕。</P>
                        <UL>
                          <LI>零状态查询指令指令格式:“?H”&amp; CHR$(13)</LI></UL>
                        <P>&nbsp;&nbsp;&nbsp; SC3接到此类指令后回送:“H000” &amp; 
                        CHR$(10)</P>
                        <P>&nbsp;&nbsp;&nbsp; 其中000的含义:</P>
                        <P>&nbsp;&nbsp;&nbsp; 
                        第一位数值:1表示z轴归零成功,0表示z轴未归零。<BR>&nbsp;&nbsp;&nbsp; 
                        第二位数值:1表示y轴归零成功,0表示y轴未归零。<BR>&nbsp;&nbsp;&nbsp; 
                        第三位数值:1表示x轴归零成功,0表示x轴未归零。</P>
                        <UL>
                          <LI>运行指令指令格式:“Xdirectionnumber”&amp; CHR$(13)或“Y 
                          directionnumber”&amp; CHR$(13)或“Z 
                          directionnumber”&amp; CHR$(13)</LI></UL>
                        <P></SPAN></P></TD></TR>
                    <TR>
                      <TD align=left>
                        <TABLE cellSpacing=0 cellPadding=0 width="100%" 
border=0>
                          <TBODY>
                          <TR>
                            <TD align=right colSpan=2><FONT 
                            color=red></FONT></TD></TR>
                          <TR>
                            <TD width="80%" height=43>&nbsp;
                              <TABLE cellSpacing=0 cellPadding=0 width="100%" 
                              border=0>
                                <TBODY>
                                <TR class=z1>
                                <TD class=z12 style="WIDTH: 375px">
                                <DIV align=left><A 
                                href="http://articles.e-works.net.cn/Articles/450/Article35704.htm">&lt;&lt;首页</A>&nbsp;<A 
                                href="http://articles.e-works.net.cn/Articles/450/Article35704.htm">&lt;上一页</A>&nbsp;&nbsp;<STRONG><FONT 
                                color=#dd0000>1</FONT></STRONG>&nbsp;&nbsp;<STRONG><A 
                                href="http://articles.e-works.net.cn/Articles/450/Article35704_1.htm">2</A></STRONG>&nbsp;&nbsp;<A 
                                href="http://articles.e-works.net.cn/Articles/450/Article35704_1.htm">下一页&gt;</A>&nbsp;&nbsp;<A 
                                href="http://articles.e-works.net.cn/Articles/450/Article35704_1.htm">末页&gt;&gt;</A>&nbsp;&nbsp;</DIV></TD>
                                <TD class=z12 style="WIDTH: 115px" 
                                align=left>共<FONT color=red>2</FONT>页,当前第<FONT 
                                color=red>1</FONT>页</TD></TR></TBODY></TABLE></TD>
                            <TD align=right width="20%"><SPAN 
                              class=z2>责任编辑:江琦</SPAN></TD></TR></TBODY></TABLE></TD></TR>
                    <TR>
                      <TD align=left height=10></TD></TR>
                    <TR>
                      <TD align=middle height=30>
                        <TABLE cellSpacing=0 cellPadding=0 width="80%" 
                          border=0><TBODY>
                          <TR align=middle>
                            <TD><A 
                              href="http://www.e-works.net.cn/sm/Untitled-1.htm" 
                              target=_blank><IMG height=24 
                              src="基于VC++的步进电机控制方法探讨1.files/an01.gif" width=72 
                              border=0></A></TD>
                            <TD><A 
                              href="http://www.e-works.net.cn/comm/ewk_business/myeworks/my-favorites2.aspx?htmlurl=/Articles/450/Article35704.htm&amp;type=viewarticle"><IMG 
                              height=24 src="基于VC++的步进电机控制方法探讨1.files/an02.gif" 
                              width=72 border=0></A></TD>
                            <TD><A 
                              href="http://www.e-works.net.cn/comment.aspx?htmlurl=/Articles/450/Article35704.htm&amp;article_id=35704&amp;action=0"><IMG 
                              height=24 src="基于VC++的步进电机控制方法探讨1.files/an03.gif" 
                              width=72 border=0></A></TD>
                            <TD><A 
                              href="mailto:好友信箱?subject=好文章:http://articles.e-works.net.cn/Articles/450/Article35704.htm"><IMG 
                              height=24 src="基于VC++的步进电机控制方法探讨1.files/an04.gif" 
                              width=72 border=0></A></TD>
                            <TD><A href="javascript:print()"><IMG height=24 
                              src="基于VC++的步进电机控制方法探讨1.files/an05.gif" width=72 
                              border=0></A></TD></TR></TBODY></TABLE></TD></TR>
                    <TR>
                      <TD height=40><IFRAME 
                        src="基于VC++的步进电机控制方法探讨1.files/fen.htm" frameBorder=0 
                        width="100%" 
                  height=40></IFRAME></TD></TR></TD></TR></TBODY></TABLE></TD>
              <TR>
                <TD align=left height=10></TD></TR>
              <TR>
                <TD 
    align=left>&nbsp;</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR>
  <TR>
    <TD align=middle>
      <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR>
          <TD bgColor=#6699cc height=1></TD></TR>
        <TR>
          <TD bgColor=#6699cc height=1></TD></TR>
        <TR>
          <TD bgColor=#eeeeee height=60><IFRAME 
            src="基于VC++的步进电机控制方法探讨1.files/foot.htm" frameBorder=0 width="100%" 
            scrolling=no 
height=80></IFRAME></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TABLE></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -