《用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 页