固高运动控制卡学习8 --高速硬件捕获

本文详细介绍了固高运动控制卡的四种捕获方式:Home捕获、Index捕获、探针(Probe)捕获和HSIO(高速IO)捕获。通过实例展示了如何进行Home和Index捕获,同时提到了重复捕获的功能,允许连续锁存最多256个位置值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        捕获即当某一种信号触发时, 运动控制器能准确记录触发时刻轴的位置信息。 控制器提供四种捕获方式, Home 捕获, Index 捕获、 探针(Probe)捕获和 HSIO 捕获。

一、Home 捕获, Index 捕获

例程:home回原点/home+Index回原点

sRtn = GT_Open();
// 复位运动控制器
sRtn = GT_Reset();
// 配置运动控制器
// 注意:配置文件test.cfg取消了各轴的报警和限位
sRtn = GT_LoadConfig("test.cfg");
// 清除指定轴的报警和限位
sRtn =GT_ClrSts(AXIS);
// 驱动器使能
sRtn = GT_AxisOn(AXIS);

/**************************1、启动Home捕获**************************************/
sRtn = GT_SetCaptureMode(AXIS, CAPTURE_HOME);

/**************************2、使相应轴运动,寻找home点***************************/
// 切换到点位运动模式
sRtn = GT_PrfTrap(AXIS);
// 读取点位模式运动参数
sRtn = GT_GetTrapPrm(AXIS, &trapPrm);
trapPrm.acc = 0.25;
trapPrm.dec = 0.25;
// 设置点位模式运动参数
sRtn = GT_SetTrapPrm(AXIS, &trapPrm);
// 设置点位模式目标速度,即回原点速度
sRtn = GT_SetVel(AXIS, 10);
// 设置点位模式目标位置,即原点搜索距离
sRtn = GT_SetPos(AXIS, SEARCH_HOME);
// 启动运动
sRtn = GT_Update(1<<(AXIS-1));

/***********************3、等待捕获触发****************************************/
printf("\nWaiting for home signal...\n");
do
{
// 读取轴状态
sRtn = GT_GetSts(AXIS, &status);
// 读取捕获状态
sRtn =GT_GetCaptureStatus(AXIS, &capture, &pos);
// 读取规划位置
sRtn = GT_GetPrfPos(AXIS, &prfPos);
// 读取编码器位置
sRtn = GT_GetEncPos(AXIS, &encPos);
printf("capture=%d prfPos=%.2lf encPos=%.2lf\r", capture, prfPos, encPos);
// 如果运动停止,返回出错信息
if( 0 == ( status& 0x400 ) )
{
printf("\nno home found\n");
getch();
return 1;
}
// 等待捕获触发
}while( 0 == capture );
// 显示捕获位置
printf("\ncapture pos = %ld\n", pos);

/***********************4、运动到"捕获位置+偏移量"***********
<think>我们正在讨论GTS系列运动控制卡的回原点配置方法。根据引用内容,GTS卡提供了Smart Home功能,它是对传统回原点方式的优化和扩展,简化了用户程序,并集成了多种常见的回原点方式。下面我将详细介绍配置步骤和回零方式设置。 1. **硬件连接准备**: - 确保伺服驱动器与电机编码器的Index信号(Z相信号)已正确连接到控制卡的相应输入点。 - 原点开关(Home开关)需要连接到控制卡指定的通用输入点(通常为Home输入)。 2. **回原点方式设置**: Smart Home功能支持多种回零方式,常见的有: - **方式1:往正方向运动,遇到原点开关后,再找Index信号**。 - 轴以设定的速度向正方向移动,当检测到原点开关信号(Home)有效时,减速停止。 - 然后轴以较低的速度向负方向移动,直到离开原点开关,再寻找第一个Index信号(编码器Z脉冲)作为零点。 - **方式2:往负方向运动,遇到原点开关后,再找Index信号**(与方式1方向相反)。 - **方式3:往正方向运动,遇到原点开关上升沿后,再找Index信号**(对开关信号边沿敏感)。 - **方式4:往负方向运动,遇到原点开关上升沿后,再找Index信号**。 - **方式5:在当前位置直接捕获Index信号作为原点**(无需原点开关,适用于已知大致位置的情况)。 - **方式6:在原点开关有效区域内寻找Index信号**(轴在原点开关有效区域内低速移动直至捕获Index信号)。 具体方式编号可能因软件版本或控制器型号略有差异,请以实际手册为准。 3. **配置步骤(以运动控制平台为例)**: - 打开运动控制程序(如Motion Studio或自主开发的应用程序)。 - 调用函数`GT_SetHomeMode`设置轴的回零模式(参数为轴号和模式编号)。 - 调用函数`GT_SetHomeVel`设置回零速度(通常包括高速搜索原点开关的速度和低速搜索Index信号的速度)。 - 调用函数`GT_SetHomeAcc`设置回零加速度。 - 调用函数`GT_Home`启动回零操作。 示例代码(C语言): ```c short axis = 1; // 轴号 long home_mode = 1; // 回零模式,1表示方式1 double high_vel = 10.0; // 高速搜索速度(单位:用户单位,如mm/s) double low_vel = 1.0; // 低速搜索速度 double acc = 100.0; // 加速度 GT_SetHomeMode(axis, home_mode); GT_SetHomeVel(axis, high_vel, low_vel); GT_SetHomeAcc(axis, acc); GT_Home(axis); // 启动回零 ``` 4. **调试注意事项**: - 确保原点开关信号稳定,避免抖动干扰(可通过调整开关位置或软件滤波解决)。 - 检查Index信号是否正常(可通过示波器或运动控制卡的IO状态监控功能)。 - 回零方向设置错误可能导致机械碰撞,需谨慎选择运动方向。 5. **级功能**: - 部分卡支持“自动回原点”功能,即上电后自动执行回零(需预先配置参数)。 - 可通过`GT_GetHomeStatus`函数获取回零状态,实现状态监控。 若遇到问题,建议查阅官方手册《GTS系列运动控制器编程手册》中“回原点功能”章节[^1][^2]。 §§相关问题§§ 1. 如何解决运动控制卡回零过程中出现的原点开关信号抖动问题? 2. GTS卡支持哪些方式捕获Index信号?如何配置Index信号滤波? 3. 运动控制卡在回零过程中遇到限位开关如何处理?</think>### GTS系列运动控制卡轴回原点配置方法 GTS系列运动控制卡通过**Smart Home功能**优化了回原点流程,将复杂操作化到控制器中,用户只需调用简单指令即可实现多种回零方式。以下是具体配置步骤: #### 一、硬件连接准备 1. **原点开关(Home信号)**:连接到控制卡指定输入点(如DI0) 2. **Index信号(Z相脉冲)**:编码器Z相信号接入控制卡专用输入通道 3. **限位信号**:正/负限位开关接入保护输入点(推荐但不强制)[^1] #### 二、回零方式设置(通过GT_SetHomeMode函数) | 模式编号 | 回零方式 | 动作描述 | |----------|------------------------------|--------------------------------------------------------------------------| | 1 | 正限位触发回零 | 向正方向移动→触发正限位→反向低速找Index | | 2 | 负限位触发回零 | 向负方向移动→触发负限位→正向低速找Index | | 3 | 原点开关+Index搜索(正向) | 向正方向移动→触发原点开关→反向低速找Index | | 4 | 原点开关+Index搜索(负向) | 向负方向移动→触发原点开关→正向低速找Index | | 5 | 直接Index捕获 | 在当前位置直接捕获Index信号(需确保在零点附近) | | 6 | 原点开关区间内Index搜索 | 在原点开关有效区域内低速移动直至捕获Index | #### 三、参数配置(C语言示例) ```c // 设置回零模式(轴1使用模式3) GT_SetHomeMode(1, 3); // 设置回零速度:高速10 units/s,低速1 unit/s GT_SetHomeVel(1, 10.0, 1.0); // 设置回零加速度100 units/s² GT_SetHomeAcc(1, 100.0); // 启动回零 GT_Home(1); ``` #### 四、关键参数说明 1. **搜索速度**:高速用于快速接近原点,低速用于精确定位Index 2. **回零方向**:需根据机械结构选择(避免碰撞风险) 3. **信号滤波**:通过`GT_SetCaptureFilter`设置Index信号滤波时间(建议0.5-2μs) 4. **超时保护**:通过`GT_SetHomeTimeout`设置最大回零时间(默认10秒) #### 五、调试技巧 1. 使用`GT_GetHomeStatus`实时监控回零状态 2. 原点开关推荐使用NPN常闭型传感器,抗干扰能力更强[^2] 3. 对于精密设备,建议组合使用:`模式3+模式5`(先粗定位再精校准) 4. 遇到回零抖动时,检查Index信号质量并调整滤波器参数 > 注意:不同卡型号(GTS-400/800)的API兼容,但最大回零速度受硬件限制,需参考具体手册[^1][^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值