用vc++实现PC与电机的数据通信.docx

上传人:l*** 文档编号:10090749 上传时间:2022-04-08 格式:DOCX 页数:6 大小:18.70KB
返回 下载 相关 举报
用vc++实现PC与电机的数据通信.docx_第1页
第1页 / 共6页
用vc++实现PC与电机的数据通信.docx_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《用vc++实现PC与电机的数据通信.docx》由会员分享,可在线阅读,更多相关《用vc++实现PC与电机的数据通信.docx(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、用vc+实现PC与电机的数据通信 摘 要设计一种基于vc+的步进电机限制系统,用vc+6.0编制限制可视化程序界面,实现通过上位机对步进电机的基本限制:按指定步数和方向限制步进电机转动,并利用上位机实时显示步进电机的运行状态。该设计方案开发成本较低,有很强的好用性。 关键词电机;vc+;串行通信;智能 中图分类号TP文献标识码A文章编号1673-9673-(2022)111-0022-01 许多时候我们须要通过软件界面限制电机的启动,正转,反转,限制并监视电机的步进值,并在界面上反映出来,运用户能够直观的了解电机的一些参数,进行一些实时的处理。vc+是Windows环境下的可视化编

2、程工具,可以实现通信和数据处理的编程要求,而串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信便利易行,所以应用广泛。本文用vc+供应的ActiveX控件与通信函数,实现了PC与电机设备间的数据通信,从而实现电机的智能化。 1步进电机 步进电机是一种将电脉冲转化为角位移的执行机构。即当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。您可以通过限制脉冲个数来限制角位移量,从而达到精确定位的目的;同时您可以通过限制脉冲频率来限制电机转动的速度和加速度,从而达到调速的目的。 2VC+程序设计 2.1MSComm 控件的运用 MSComm 控件通过串行端口传

3、输和接收数据,为应用程序供应串行通信功能。要添加此控件,可选择Project-Add To Project-Components and Controls菜单吩咐,然后在弹出的Components and Controls Gallery 对话框中双击Registered ActiveX 文件夹,再选中“Microsoft Communications Controls,Version 6.0”选项,单击“Insert”按钮就可以完成添加MSComm 控件操作。 2.2MSComm控件几个常用的属性 1)CommPort 属性:设置并返回连接的串行端口号,Windows 将会利用该串口和外界通

4、信。 2)Settings 属性:设置并返回数据传输速率、奇偶校验、数据比特、停止比特参数。默认值是“9600,N,8,1”。 3)RThreshold 属性:MSComm 控件设置CommEvent 属性为comEvReceive 并产生OnComm 。 4)SThreshold 属性:MSComm 控件设置CommEvent 属性为comEvSend 并产生OnComm 事务,设置并返回传输缓冲区中允许的最小字符数。 5)InputMode 属性:设置或返回传输数据的类型。 6)Input 属性:表示从接收缓冲区移走一串字符,将缓冲区接收到的数据读入变量,属性为Variant 型变量。 7

5、)PortOpen属性:用于打开或关闭端口。 8)OutPut属性:用于向发送缓冲区写数据流,属性为Variant变量。 2.3MSComm控件的串口编程基本流程 1)在当前Project 中插入MSComm 控件。 2)初始化并打开串口。 3)串口读写:GetInput()和SetOutput(),这两个函数的原型是:VARIANT GetInput()及 void SetOutput(const VARIANT& NewValue)。 2.4电机界面如图1 PC机限制电机正向启动的部分代码如下: BYTE g_bSendComd5 = 0x55,0xb0,0xa0,0x00,0x00; v

6、oid CDianjiDlg:OnForwardStart() UpdateData(TRUE);tanslateint(); g_bSendComd0=0x55;g_bSendComd1=0xb0;g_bSendComd2=0xa0;g_bSendComd3=hicount; g_bSendComd4=locount;CByteArray OutBuf; COleVariant varOutput; OutBuf.SetSize(5); for(int i = 0; i 5; i+) OutBuf.SetAt(i, g_bSendComdi); / BYTE转CByteArray OutBu

7、fi = g_bSendComdi;/ BYTE转CByteArray varOutput = OutBuf; m_ctrlComm.SetOutput(varOutput);m_iCurrent = 0;m_iADValue = 0; UpdateData(FALSE); 图1电机限制器 正向步进值/反向步进值表示电机转动的方向和圈数,当我们输入步进值再点击电机正向启动按钮时,电机正向转动,点电机停止时会显示现在电机转了多少圈,并显示当前AD值,点击电机归零可以重新设置步进值,反向的原理相同。 电机上传指令给PC机时:电机每发送一次吩咐PC机当前计数值加一,并在当前AD值中显示,代码实现时用

8、到了一个MAKEWORD宏,这个宏创建一个被指定变量连接而成的WORD变量,返回一个WORD变量。这样就实现了PC限制电机启动和停止并监视运行状况的目的,达到了可视化智能限制的效果,便利我们刚好驾驭电机的运行状况。 3小结 VC+是一个特别优秀的用户平台,供应了多种方法对串口进行通信限制,运用户不必了解详细的硬件原理,简化了编程,本例已用电机做了测试,效果达到了预期的目标,可以很好的实现上下位机间的通信。 参考文献 1李现勇.Visual C+串口通信技术与工程实践M.人民邮电出版社 2002,5. 2龚建伟,熊光明.Visual C+/Turbo C串口通信编程实践(其次版)M.北京:电子工

9、业出版社,2022. 3黄维通.Visual C+面对对象与可视化程序设计M.北京:清华高校出版社,2003. 4陈天华.面对对象程序设计与Visual C+6.0 教程M.北京:清华高校出版社,2022. 5马建红.Visual C+程序设计与软件技术基础M.中国水利水电出版社,2003,4. 作者简介 高建云,成都理工高校在读硕士探讨生,主要从事于c+界面设计和信号处理探讨。 第6页 共6页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com