Program Examples:Backlash Compensation Table/zh-hans

From SoftMC-Wiki
< Program Examples:Backlash Compensation Table
Revision as of 05:33, 17 July 2017 by Chi (talk | contribs) (Created page with "{{Languages}} ==简介== 本文演示了如何使用补偿表来消除位置反冲。 [[File:BACKLASHCOMPENSATION.PNG|Backlash compensation value in different movement direc...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
语言: English  • 中文(简体)‎

简介

本文演示了如何使用补偿表来消除位置反冲。

Backlash compensation value in different movement directions

程序

首先,为两个相反的方向定义两个补偿表:

common shared compAxAPlus  as comp
common shared compAxAMinus as comp

关联轴,轴移动到初始位置(-100):

  Attach AxA    
  Move A1 -100

定义每个表中的点数(10):

  CreateComp compAxAPlus  10
  CreateComp compAxAMinus 10

两者都在-100和+100之间有效:

  CreateComp compAxAPlus  10
  CreateComp compAxAMinus 10


设置两个表作用于同一轴(AxA):

   CompSet compAxAPlus  AxA On AxA
   CompSet compAxAMinus AxA On AxA


从终端检查实际补偿值应返回0,因为没有运动完成:

   compAxAPlus.MinPosition[1] = -100
   compAxAPlus.MaxPosition[1] = +100

   compAxAMinus.MinPosition[1] = -100
   compAxAMinus.MaxPosition[1] = +100

将补偿值线性设置为-100和0.1之间,对于 方向为+100,对于 方向为-0.1至-1.0。

   for i = 1 to 10
      compAxAPlus.TargetData[1][i] = 0.1*i
      compAxAMinus.TargetData[1][i] = -0.1*i
    next 

设置补偿活动的方向,一个表仅在正运动(vcmd> 0)方向有效,另一个为负运动方向(vcmd <0):

    compAxAPlus.direction = 1
    compAxAMinus.direction = -1  


将两个表设置为活动状态,这意味着两个表都将在不同的方向上处于活动状态:

    compAxAPlus.CompActive = 1
    compAxAMinus.CompActive = 1


开始运动:

    AxA.PositionBacklashAlpha = 0.9

    Sleep 100
    Move AxA 99.9 Abs = 1  Vcruise = 10000
    Delay AxA 100    
    Move AxA -99.9  Abs = 1 Vcruise = 10000
    Delay AxA 100    


分离轴:

  Detach AxA    
  End Program


参见