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

跟随运动

本节主要介绍内容如下:


       注意
        
  • 跟随取消使用单轴停止命令
  • 跟随功能主轴禁止使用“位置设置功能”,“回原功能”等位置突变的功能
  • 可随意搭配各种跟随方式,嵌套
  • 加减速跟随,支持主轴先启动
  • 跟随运动为相对位置,以跟随启动时位置为起点。


相关函数

        

YKM_FollowAxis1 轴跟随其他单轴(1轴)
YKM_FollowAxis2 轴跟随其他多轴(2轴)
YKM_FollowUG 轴UG跟随(EtherCAT从站PDO地址)
YKM_FollowEncoderPCI 轴编码器跟随(控制卡编码器)


运动说明

        

跟随运动模式下,从轴会跟随主轴同步启停,并按照设定参数,移动与主轴同步的移动量。
停止时主从轴减速度使用的是主轴的减速度,减速度根据不同停止模式而不同。

  • 轴碰硬限位停止,用的急停减速度。
  • 碰软限位停止,用的软限位减速度。
  • 如果配置了停止信号,将使用停止信号减速度。
  • 停止命令,根据停止函数选择的急停或缓停,将以YKM_StopAxis设定减速度减速停止。
  • 如果是跟随误差过大(即规划位置和实际位置差值超过了设置值)导致轴停止,用的指令函数里设置的减速度。

  • 公式说明:

  • numerator:分子
  • denominator:分母
    • 比例跟随公式:
    • 跟随单轴模式:从轴位置 = 主轴位置*numerator/denominator
      跟随多轴模式:
    • 主轴1位置Delta = 主轴1位置*numerator1/denominator1
    • 主轴2位置Delta = 主轴2位置*numerator2/denominator2
      混合模式:
      加减法(YKM_COMBINE_ADD/YKM_COMBINE_SUB):
    • 从轴位置=(主轴1位置Delta+/-主轴2位置Delta)*numerator3/denominator3
      合成距离(YKM_COMBINE_DIST):
    • 从轴位置=Sqrt(主轴1位置Delta*主轴1位置Delta+主轴2位置Delta*主轴2位置Delta)*numerator3/denominator3
      合成圆(YKM_COMBINE_CIRCLE):
    • 从轴位置=当前弧度值*numerator3/denominator3


    流程图

            

    程序编写

              

    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);
    }
    //轴跟随其他单轴
    UINT32 axisIndex = 1;
    YKM_FollowAxis1Config followAxis1Config;
    followAxis1Config.Acceleration = 100.0;
    followAxis1Config.Jerk = 1000.0;
    followAxis1Config.axisMaster = 0;
    followAxis1Config.mode = YKM_FollowMode::YKM_FOLLOW_ACC;
    followAxis1Config.source = YKM_AxisFollowType::YKM_FOLLOW_ACT_POS;
    followAxis1Config.numerator = 1.0;
    followAxis1Config.denominator = 1.0;
    YKM_FollowAxis1(axisIndex, followAxis1Config);
    //主轴运动
    YKM_MoveAbsoluteConfig absConfig;
    absConfig.position = 200.123;
    absConfig.velocity = 100;
    absConfig.acceleration = 100;
    absConfig.deceleration = 100;
    absConfig.jerk = 1000;
    result = YKM_MoveAbsolute(0, absConfig);
    //等待运动完成
    YKM_AxisStatus status;
    while (!exit_cmd)
    {
      result = YKM_ReadAxisInfo(axisIndex, &status);
      if (0 != status.Done)
        break;
      Sleep(1);
    }


    硬跟随

            

  • 使用

  • 序号 注释
    1 启用:有无勾选决定硬跟随是否启用
    2 主轴编号:硬跟随的主轴号

  • 硬跟随原理

  • 运动特性和单轴跟随的1:1比例基本一致。
  • 没有api函数,不用进行上位机编程。
  • 主轴可使用“位置设置功能”,“回原功能”。
  • 从轴软限位无效。
  • 从轴停止指令无效。
  • 主、从轴规划位置保持一致。
  • 新增

  • 轴基本参数中增加"硬跟随从轴最大偏差参数",默认为0.5,只需设置从轴。
  • 示波器采集中增加"和主轴的规划、实际位置偏差",轴号选择为从轴。
  • 注意

  • 使用硬跟随时,主从轴的机械特性需保持一致即驱动器、电机、模组等硬件一致。


  • 常见问题及说明

              

     

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