ProCon说明   快速入门   运动控制   EtherCAT   实时程序   API函数   控件库   硬件说明   问题排查   示例代码  
  

机械补偿

本节主要介绍内容如下:


       注意
        
  • 补偿启用或禁用时,轴都会根据补偿值自动调整,所以请在YKM_AxisStatus.Active为0时执行操作;自动调整用的S型曲线,减速度=加速度,变加速度=加速度*100。
  • 热复位后数据需要重新写入。
  • 螺距补偿数据缓冲区大小为512,二维补数据偿缓冲区大小为65536(256*256),不支持动态添加。

相关函数

          

YKM_SetPitchError1DConfig 设置螺距补偿配置
YKM_GetPitchError1DConfig 获取螺距补偿配置
YKM_SetPitchError1DData 写入螺距补偿数据
YKM_GetPitchError1DData 获取螺距补偿数据
YKM_EnablePitchError1D 启用螺距补偿
YKM_DisablePitchError1D 禁用螺距补偿
YKM_SetPitchError2DConfig 设置二维补偿配置
YKM_GetPitchError2DConfig 获取二维补偿配置
YKM_SetPitchError2DData 设置二维补偿数据
YKM_GetPitchError2DData 获取二维补偿数据
YKM_EnablePitchError2D 启用二维补偿
YKM_DisablePitchError2D 禁用二维补偿

运动说明

        
  • 由于机械精度问题,螺杆不同位置区间,存在随机的位置偏差,切偏差分布为非线性,基于螺距补偿功能,可分段设置补偿值,提高定位精度。
  • 补偿值根据第三方仪器(如激光干涉仪)测量得出。
  • 机械补偿的过程可以用下图说明,机械补偿过程位于运动控制算法之后,发送数据之前。发送方式有两种,分别是总线发送和脉冲发送。机械补偿生效于发送总线数据之前,其他运动相关均与补偿无关,关系如下图所示。

  •        注意
            
    • 一般在回零完成之后使用该功能,起点补偿值为0。
    • 补偿值为相对于理论位置的误差值。
    • 二维补偿XY是补偿值产生的基准轴,被补偿的轴可以是X也可以是Y,也可以是其他轴

    流程图

            

    以螺旋补偿举例,二维补偿和螺旋补偿的流程是一样的



    程序编写

              

    RetCode result;
    int exit_cmd = 0;
    //库加载

    result = YKM_LoadLib();
    YKM_BusInfo busInfo;
    //等待系统初始化完成
    while (!exit_cmd)
    {
      result =YKM_GetBusInfo(&busInfo);
      if (busInfo.running)
        break;
      Sleep(100);
    }
    //螺距补偿配置

    YKM_PitchError1DConfig config;
    memset(&config, 0, sizeof(YKM_PitchError1DConfig));
    config.originIndex = 0;
    config.count = 10;
    config.originPosition = 0;
    config.pitchInterval = 1;
    config.catchUpVel = 1;
    config.catchUpAcc = 1;
    YKM_SetPitchError1DConfig(axisIndex, config);
    //补偿数据,根据视觉或者根据某些测试精度仪器得出的数据

    double data[10] = { 0.1, 0.11, 0.12, 0.11, 0.12, 0.13, 0.11, 0.13, 0.21, 0.12 };
    YKM_SetPitchError1DData(axisIndex, 10, data);
    //启用螺距补偿

    YKM_EnablePitchError1D(axisIndex);


    常见问题及说明

              

      
    Copyright © 2015 深圳市优易控软件有限公司 www.proutech.com