DIY编程器网

标题: 基于运动控制卡的机械手控制系统设计 [打印本页]

作者: admin    时间: 2015-5-1 19:05
标题: 基于运动控制卡的机械手控制系统设计
如今中国多数的机器人控制可靠、简单,但缺点也很明显,只能完成固定的作业任务和对象,导致其难以满足现代制造业生产任务的迅速变化。因此我们需要使用结构较为开放式的控制器。本文介绍了一种基于运动控制卡的机械手控制系统的设计。
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 滤波器。在调节各个参数后,它能精确而稳定地控制大部分系统。KdKiKpKaffKvff 是系统中的主要参数。它很大程度上影响了系统的性能,合理的值需要进行多次调试才能确定。相关函数:GT_SetKd();
GT_SetKi();
GT_SetKp();
GT_SetKaff();
GT_SetKvff()
这部分参数设置保存在初始化文件中,能够在系统参数设置面板里面完成。
4 多轴联动
运动控制卡可以实现直线插补和圆弧插补两种多轴联动。
其运动轨迹一般采用坐标系,用以下代码映射:
double cnt15= {1000000 0};
double cnt25= {01000000};
double cnt35= {00100000};
double cnt45= {00010000};
GT_MapAxis(1cnt1);
GT_MapAxis(2cnt2);
GT_MapAxis(3cnt3);
GT_MapAxis(4cnt4);
为避免出现某轴突然转动的情况,以上映射应当满足独立不相关的条件。映射后即可调用相关函数完成插补动作。
参考文献:
[1] 固高科技(深圳) 有限公司.GTS 系列运动控制器编程手册[Z.2011
[2] 周光学.基于运动控制器的开放式数控系统研究及软件设计[D.秦皇岛: 燕山大学,2005
[3] 龚运新,杨劲松.工业PC机实用技术[M]. 北京师范大学出版社,

作者: 李小路    时间: 2020-10-1 22:12
谢谢分享!




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2