机器视觉+运动控制技术:应用开发教程之VC6.0 点击:133 | 回复:0



正运动技术

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:267帖 | 328回
  • 年度积分:50
  • 历史总积分:918
  • 注册:2020年9月10日
发表于:2021-02-02 14:14:44
楼主

今天,我们来讲解一下正运动技术运动控制卡应用开发教程之VC6.0。

  在正式学习之前,我们先了解一下正运动技术的运动控制卡ECI2418和ECI2618。这两款产品分别是4轴,6轴运动控制卡。

  

  1.png

  

  ECI2418支持4轴脉冲输入与编码器反馈,板载24点输入,16点输出,2AD,2DA,支持手轮接口,其中特定输出支持高速PWM控制。

  

  2.png

  

  ECI2618支持6轴脉冲输入与编码器反馈,板载24点输入,16点输出,2AD,2DA,支持手轮接口,其中特定输出支持高速PWM控制。

  

  3.png

  

  ECI2418,ECI2618均使用同一套API函数,均支持C、C++、C#、LabView、Python、Delphi等开发语言,支持VC6.0、VB6.0、Qt、.Net等平台,支持Windows、Linux、WinCE、iMac等操作系统。

  

   一、运动控制卡VC6.0开发流程

  

  1、打开 VC++6.0,新建一个工程。

  

  4.png

  

  2、选择“ MFC APPWizard(exe)”,选择 工程保存路径,设置 工程名,选择 确定。

  

  5.png

  

  3、在应用程序类型 选择基本对话框,完成项目新建。

  

  6.png

  

  4、将产品配套光盘“ ..\函数库\dll”文件夹中的 动态链接库“ zmotion.dll、zauxdll.dll”、 头文件“zauxdll2.h”和 lib文件“ zauxdll.lib”复制到工程文件夹中。

  

  7.png

  

  5、选择“Project”菜单下的“Settings…”菜单项。

  6、切换到“Link”标签页,在“Object\library modules”栏中输入lib文件名:zauxdll.lib。

  

  8.png

  

  7、在应用程序文件中加入函数库头文件的声明,如:#include “zauxdll2.h”,

  

  9.png

  

  8、至此,用户就可以在VC6.0中调用函数库中的任何函数,开始编写应用程序, 具体函数的用法的功能可以参考光盘资料里面的:ZMotion PC函数库编程手册。

  

  10.png

  

  9、参考ZMotion PC函数库编程手册的链接控制器的函数说明,在 ECIDlg:OnInitDialog()函数中添加链接控制器代码 ZAux_OpenEth(“192.168.0.11”,&g_handle);即可链接控制器。

  

  11.png

  

  

  10、通过MOVE按钮,控制控制器进行插补运动。

  (1)右键MOVE按钮,选择属性,设置按钮ID。

  

  12.png

  

  (2)右键MOVE按钮选择事件。

  

  13.png

  

  (3)新建相关事件。

  

  14.png

  

  4)在事件处理函数中添加插补运动函数。

  

  15.png

  

  11、编译运行就可以通过PC控制控制器了。

  

  如果编译报错:无法打开预编译的头文件:没有这样的文件或目录。

  请选择“Project”菜单下的“Settings…”菜单项,然后选择c/c++进行如下设置。

  

  16.png

  

   二、VC6.0例程讲解

  

  1、在我们的光盘资料里有很多VC6.0的例程,通过这些历程可以更容易的上手我们的控制器。

  

  17.png

  

  2、单轴运动例程

  a、通过以太网链接到指定IP的控制器;

  b、设置运动轴参数;

  c、选择运动轴对象;

  d、选择运动方式,实现持续运动和寸动;

  

  18.png

  

  3、实现步骤

  

   (1)搜索IP,链接控制器。

  A、先将相关控件拖拽到UI界面,并设置对应的事件处理函数。

  

  19.png

  

  B、下拉框事件处理函数,实现自动搜索IP。

  先根据ZMotion PC 编程手册,在下拉框事件处理函数添加控制器IP搜索函数“ZAux_SearchEthlist()”,然后将获取到的IP字符串进行解析,具体解析方法请参考例程。

  

  

  //自动搜索IP  void CECIDlg::OnDropdownIPList()  {  /*自动搜索IP地址*/  char buffer[10240];  int32 iresult;  /*搜索当前网段下的 IP 地址 详情请参考:zmotion pc 编程手册*/  iresult = ZAux_SearchEthlist(buffer, 10230, 100);  if(ERR_OK != iresult)  {  return;  }  CComboBox *m_pEthList;  m_pEthList = (CComboBox *)GetDlgItem(IDC_IPList);  if(NULL == m_pEthList)  {  return;  }  /*从字符串转换成IP*/  int ipos =0;  const char * pstring;  pstring = buffer; 
  for(int j= 0; j< 20;j++)  {  char buffer2[256];  buffer2[0] = '\0'; 
  /*跳过空格*/  while(' ' == pstring[0])  {  pstring++;  } 
  ipos = sscanf(pstring , "%s", &buffer2);  if(EOF == ipos)  {  break;  }  /*跳过字符*/  while((' ' != pstring[0]) && ('\t' != pstring[0]) && ('\0' != pstring[0]))  {  pstring++;  }  if(CB_ERR != m_pEthList->FindString(0, buffer2))  {  continue;  }  if('\0' == buffer2)  {  return;  }  /*加入*/  m_pEthList->AddString(buffer2);  }  return;  }



楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师