查看完整版本: 基于运动控制卡的机械手控制系统设计

admin 发表于 2015-5-1 19:05:57

基于运动控制卡的机械手控制系统设计

如今中国多数的机器人控制可靠、简单,但缺点也很明显,只能完成固定的作业任务和对象,导致其难以满足现代制造业生产任务的迅速变化。因此我们需要使用结构较为开放式的控制器。本文介绍了一种基于运动控制卡的机械手控制系统的设计。
1 系统描述
控制系统中上层软件平台将由PC 机来构建,下层软件编写和开发则由控制器来完成。在硬件上主要由以下几部分组成:运动控制卡,工控机(或通用PC),机械手和传感器,伺服驱动器和电机。组成一个全闭环系统,工作原理如图1所示。

图1 机械手原理示意图

运动控制卡内嵌到PC 机的PCI 插槽中,形成上位机和下位机的关系。通过PC 机来完成运动学计算、轨迹插补、人机交互界面的管理和控制系统的实时监控,如显示系统状态、发送控制指令、输入控制参数、监控外部信号等。运动控制卡则完成运动控制的细节部分,如输出方向信号和脉冲信号、检测原点和限位开关信号等,位置控制和速度控制就此完成。运动控制卡将指令脉冲发送到伺服驱动器,从而控制电机的运转,编码器则发送反馈信号来调整电机运转。
2 运动控制卡的程序编写
开放式结构的运动控制卡功能多样,使用简单,可靠性也很高。其软件上提供的运动控制函数库非常全面,满足了各种要求。运动控制函数库由系统初始化函数、时间控制函数、运动控制函数和数字量输入输出函数四部分组成。系统初始化函数由系统配置函数和硬件初始化函数组成;运动控制函数由回程函数、运动输入/输出函数、空间运动函数及运动状态函数等组成。另外还有中断处理、间隙补偿、运动中变速、编码器反馈等辅助函数。
3 初始化
在初始化软件系统后,也要分别初始化运动控制卡的每个轴和卡,代码:
rtn = GT_Open();。
rror(rtn);
rtn = GT_Reset();。
rror(rtn);
for(i =1;i < 5;i + + )
{
rtn = GT_Axis(i);
rtn = GT_ClrSts();
rtn = GT_CtrlMode(0);
rtn = GT_OpenLp();
rtn = GT_AxisOn();
GT_Update();
}
控制闭环时,可用数字伺服滤波器输出信号控制,它包含PID 滤波器。在调节各个参数后,它能精确而稳定地控制大部分系统。Kd、Ki、Kp、Kaff、Kvff 是系统中的主要参数。它很大程度上影响了系统的性能,合理的值需要进行多次调试才能确定。相关函数:GT_SetKd();
GT_SetKi();
GT_SetKp();
GT_SetKaff();
GT_SetKvff().
这部分参数设置保存在初始化文件中,能够在系统参数设置面板里面完成。
4 多轴联动
运动控制卡可以实现直线插补和圆弧插补两种多轴联动。
其运动轨迹一般采用坐标系,用以下代码映射:
double cnt1[5]= {1000,0,0,0, 0};
double cnt2[5]= {0,1000,0,0,0};
double cnt3[5]= {0,0,1000,0,0};
double cnt4[5]= {0,0,0,1000,0};
GT_MapAxis(1,cnt1);
GT_MapAxis(2,cnt2);
GT_MapAxis(3,cnt3);
GT_MapAxis(4,cnt4);
为避免出现某轴突然转动的情况,以上映射应当满足独立不相关的条件。映射后即可调用相关函数完成插补动作。
参考文献:
固高科技(深圳) 有限公司.GTS 系列运动控制器编程手册[Z].2011
周光学.基于运动控制器的开放式数控系统研究及软件设计[D].秦皇岛: 燕山大学,2005
龚运新,杨劲松.工业PC机实用技术. 北京师范大学出版社,

李小路 发表于 2020-10-1 22:12:08

谢谢分享!:D
页: [1]
查看完整版本: 基于运动控制卡的机械手控制系统设计