gts螺距误差补偿说明
一、螺距误差补偿的功能函数如下:
GT_API GT_SetLeadScrewComp(short axis,short n,long startPos,long lenPos,long *pCompPos,long
*pCompNeg);
GT_API GT_EnableLeadScrewComp(short axis,short mode); // mode: 1表示使能,0表示禁止。
二、函数使用如下:
GT_API GT_SetLeadScrewComp(short axis,short n,long startPos,long lenPos,long *pCompPos,long
*pCompNeg);
axis为轴号;
n为点数; (GTS每个轴最大的点数设置<=256)
startPos 为补偿起始点的规划位置(单位:pulse);
lenPos为测量段的总长(单位:pulse);
pCompPos为对应为正方向运动时,各点位置需要补偿的脉冲数;
pCompNeg为对应为负方向运动时,各点位置需要补偿的脉冲数;
如图:
一共有9个点,8个段,(注意:每段的长度必须保持等长进行测量):
|_______|_______|_______|_______|_______|_______|_______|_______|
1
3
2
3
4
10
14
8
-12
-9
-6
-4
5
7
0
6
7
8
9
-1
-6
-4
-1 正方向运动补偿量
2
5
3
1 负方向运动补偿量
以轴1为例子,假设需测量段的总长度lenPos为40000,则每隔5000pulse长度测量一次,若2~9点经测量,
如上图所示:
往正方向运动时,各点需要补偿的脉冲数为(3,10,14,8,7,-1,-6,-4,-1);
往负方向运动时,各点需要补偿的脉冲数为(-12,-9,-6,-4,0,2,5,3,1);
则可以设置:
long comPos[9]={3,10,14,8,7,-1,-6,-4,-1}; // 一共9个点
long comNeg[9]={ -12,-9,-6,-4,0,2,5,3,1}; // 一共9个点
GT_SetLeadScrewComp(1,9,10000,40000,comPos,comNeg);
GT_EableLeadScrewComp(1);
这样,轴1往正方向运动时,将按照comPos补偿表进行补偿;往负方向运动时,将按照comNeg补偿表进
行补偿。
需注意:补偿起始点必须为正,如上数据,起始补偿点是10000,补偿长度为40000,所以补偿的位置范
围在[10000,50000]pulse内,超出该规划位置范围,补偿无效。
三、使用注意
一般在回零之后进行测量补偿量。注意每次回零时,均从同一方向往原点运动。如最后均从负限位
往原点运动,而不是此次从从负限位往原点运动,下次又从正限位往原点运动去找原点信号。