转载连接: https://blog.youkuaiyun.com/qq_30567891/article/details/80262689
控制器内部为每个轴配置了脉冲计数装置。控制器默认的脉冲计数源是外部编码器。如果用户在接线时将外部编码器的信号与端子板 25pin 轴接口的编码器信号接在一起,就可以调用上述指令读取外部编码器的值。如果用户没有接外部编码器反馈信号,例如,使用步进电机时没有编码器反馈部件, 则用户调用 GT_GetEncPos 读取的编码器位置为 0。
控制器还可以配置脉冲计数源是脉冲计数器。调用 GT_GetEncPos 读取的将是运动控制器向驱动器发出的脉冲个数。因此,即使不接反馈部件,也可以读取变化的位置值。调用 GT_SetEncPos 修改编码器位置的值。例如,设置轴 1 的编码器位置为 0,则接下来的编码器计数从 0 开始。若设置为 1000,则从 1000 开始。
GT_GetEncPos | 读取编码器位置 |
GT_GetEncVel | 读取编码器速度 |
GT_SetEncPos | 修改编码器位置 |
例程:读取
8
个轴编码器和辅助编码器位置值
- sRtn = GT_Open();
- commandhandler("GT_Open", sRtn);
- while(1)
- {
- // 读取8个编码的位置
- GT_GetEncPos(1, &enc[0], 8);
- // 读取辅助编码器的位置
- GT_GetEncPos(9, &enc[8], 1);
- for(i=0;i<9;++i)
- {
- printf("%8.0lf", enc[i]);
- }
- printf("\r");
- }