运动控制中的安全机制——限位

一、限位

运动控制器能够通过安装限位开关或者设置软限位来限制各轴的运动范围,一旦限位开关失效,将可能造成控制设备的损坏或发生生产事故,因此限位开关的稳定性和可靠性对于各种运动和位置控制设备来讲是十分重要的。

限位限制一般有三重 :软限位、限位开关、机械限位 。

 

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

二、实例

#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); 
  // 正向限位  
       if (sts& 0x20) 
    {   
        bFlagPosLimit = TRUE;  
        printf("正限位触发\n"); 
    }
    else  
    {   
       bFlagPosLimit = FALSE;

       printf("正限位未触发\n"); 
     }    
  
		// 读取第一轴规划位置 
		sRtn = GT_GetPrfPos(AXIS, &prfPos);
		printf("sts=0x%-8lx prfPos=%-10.2lf\r", sts, prfPos);  }  
	return 0; 
} 

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值