限位

9.2 限位

运动控制器能够通过安装限位开关或者设置软限位来限制各轴的运动范围,如图 9-1 所示。
 

                               
                                                                     
      工作台碰到限位开关或者规划位置超越软限位时,运动控制器紧急停止工作台的运动。限位触发以后,运动控制器禁止触发限位方向上运动,同时该轴的限位触发状态置 1。离开限位回到安全运动范围以后,需要调用指令 GT_ClrSts 清除限位触发状态,才能使控制轴回到正常运动状态。控制器复位后,默认软限位是无效的,没有触发的。

         

9.2.2 重点说明

       应当在回原点以后再设置软限位。正向软限位必须大于负向软限位。软限位和限位开关可以同时使用,当软限位触发时也会置起限位触发标志。限位触发以后使用急停加速度紧急停止。默认急停加速度为 1000pulse/ms2,如何设置急停加速度请参见“4.3.6 配置 profile”。

9.2.3 例程

该例程设置了第一轴的软限位,正向在 20000 处,负向在-20000 处。启动第一轴的点位运动后,通过下图 9-2 可以看到,当运动超过正向软限位时,限位信号触发,运动停止。

                             

#include "stdafx.h"
#include "conio.h"
#include "gts.h"
#define AXIS 1
int main(int argc, char* argv[])
{

    // 指令返回值
    short sRtn;
    // 轴状态变量
    long sts;
    // 点位运动结构体变量
    TTrapPrm trap;
    // 规划位置
    double prfPos;
    // 打开运动控制器
    sRtn = GT_Open();
    // 复位
    sRtn = GT_Reset();
    // 控制器配置
    sRtn = GT_LoadConfig("test.cfg");
    // 清除轴状态
    sRtn =GT_ClrSts(1, 8);
    // 设置软限位
    sRtn = GT_SetSoftLimit(AXIS, 20000, -20000);
    // 将第一轴设置为点位运动模式
    sRtn = GT_PrfTrap(AXIS);
    // 设置点位运动参数
    sRtn = GT_GetTrapPrm(AXIS, &trap);
    trap.acc = 0.125;
    trap.dec = 0.125;
    sRtn = GT_SetTrapPrm(AXIS, &trap);
    // 设置点位运动目标速度
    sRtn = GT_SetVel(AXIS, 50);
    // 设置点位运动目标位置
    sRtn = GT_SetPos(AXIS, 1000000L);
    // 启动点位运动
    sRtn = GT_Update(1<<(AXIS-1));
    while(!kbhit())
    {
        // 读取第一轴轴状态
        sRtn = GT_GetSts(AXIS, &sts);
        // 读取第一轴规划位置
        sRtn = GT_GetPrfPos(AXIS, &prfPos);
        printf("sts=0x%-8lx prfPos=%-10.2lf\r", sts, prfPos);
    }
    return 0;
}


 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值