1、引言
在机器人技术的研究中,控制系统是一个研究的重点。随着机器人智能控制体系的发展以及在工业上的广泛应用,开放式运动控制系统应运而生,并很快成为了一种重要的工业标准 。目前的机器人控制系统一般都采用工控机IPC 与可编程多轴控制器PMAC(Programmable Multi-Axis Controller)相结合的方式。主控制器IPC和下层运动控制器PMAC作为六自由度喷涂机器人控制系统的核心部件,它们的各项性能指标直接决定了整个喷涂机器人控制系统性能的优劣。本文研制的六自由度喷涂机器人控制器调试系统包括速度及加速度参数设置,关节空间运动调试,直角坐标空间运动调试,I/O端口调试四个方面。通过实验验证,该调试系统能够使我们对喷涂机器人控制器工作的实时性,可靠性, 安全性等性能有一个总体的*估,很好的达到了调试的目的。
2、控制器调试系统硬件平台
本文中,六自由度喷涂机器人控制系统采用PC-Based 的开放式系统架构。工控机IPC有很强的信息处理能力,且应用比较灵活,PMAC 运算速度快,实时性很强。在设计时,将IPC 和PMAC 结合起来,充分发挥二者的优点,提高系统的整体性能。如图1 所示为六自由度喷涂机器人控制系统总体结构图。带双端口RAM 的 PMAC2-PC 多轴运动控制卡通过PCI总线与主机IPC 相连。双端口RAM 作为Windows 和PMAC 之间的高速缓冲区。IPC 通过下载运动控制程序到PMAC 卡中运行或者使用PMAC 提供的在线运动指令,来指定各个伺服电机的运动。PMAC 负责完成伺服运动控制的细节。为了实现六自由度喷涂机器人的运动控制功能,还需在PMAC 上扩展相应的I/O 板,伺服驱动单元,伺服电机,编码器等,最终形成一个完整的运动控制系统。
图1 六自由度喷涂机器人控制系统总体结构图
3 、控制器调试系统软件设计
3.1 调试系统软件开发平台
控制器调试系统建立在Windows 操作系统之上,具备了多任务协调处理的能力。利用了面向对象语言Visual C#.NET,它同时具有Visual Basic 的易用性,高性能及C++的低级内存访问性,提供了丰富的进程和资源管理,并且支持标准的32 位DLL 调用。由于Delta Tau公司提供的Windows 环境下的PComm32 动态链接库函数能够完成与运动控制有关的复杂细节,因而,大大缩短了调试系统的开发周期。
3.2 调试系统软件层次结构
调试系统软件采用层次结构,上层是用户界面及IPC 主程序,下层为PMAC 底层运动控制程序。用户界面用于提供下达调试任务的接口并实时显示当前系统状态。主程序完成系统管理和上层运动规划,包括文件与数据管理、伺服参数调整、轨迹规划、运动学正反解、运动控制程序的生成、状态监测、故障处理等,并通过PComm32 动态链接库向PMAC 发送在线指令,获取以PMAC 为基础的伺服系统的状态和发送运动数据等。PMAC 接收IPC发出的各种运动控制命令,根据位置给定信号及光电编码器的位置反馈信号,分时完成每个电机转角的误差计算、控制算法计算及D/A 转换,最终完成对各伺服电机的控制。这种分层次的软件结构,保证了调试系统的可移值性与通用性。
4 控制器调试系统软件实现
4.1 用户界面及主程序类对象的关系与实现
通过对系统结构与功能进行分析,我们建立了如下类:通用运动控制类,进程类,传感器类,界面类,定时器类与辅助类,进程类又分为规划器类和控制器类。其中,最主要的类对象有:通用运动控制类CBaseControl,控制器类CController 和规划器类CPlanner。通用运动控制类CBaseControl 是各种运动控制平台的抽象,包含了通用运动控制平台的公用数据和公共操作。从通用控制类又可派生出电机轴类CShaft。电机轴类主要封装了电机轴的属性及行为。控制器类CController 封装了控制器的控制轴数据和控制器的公共功能,负责控制器的初始化并将各种指令转化为基本的运动控制指令。规划器类CPlanner 主要用于直角坐标空间运动的规划,它抽象并实现了路径规划算法,比如直线插补与圆弧插补。为了使电机轴类能使用规划器类和控制器类,通用运动控制类CBaseControl里面含有一个指向控制器类CController 的指针*p_CController 和一个指向规划器类*p_CPlanner。为了记录和保存示教点,还需定义用于描述指令的辅助类。一个指令可以将目标位置,运动方式,运动速度,指令类型等封闭在一起,这样,一个示教任务就表示为一个指令链表m_TeachePointList,一个示教点就表示为指令链表的一个元素。通过对指令链表的操作就可实现示教任务的各项功能,如示教点的插入,记录,删除和示教任务的回放。
4.2 IPC 同PMAC 之间的通信
IPC 上的Windows 与PMAC 之间通过Delta Tau 公司提供的PComm32 动态链接库进行通信。PComm32 包括了所有与PMAC 的通信方法,在主程序中只需调用PComm32 动态链接库就能完成Windows 同PMAC 之间的数据交换。尽管PComm32 动态链接库中包含了很多函数,但常用的并不多,只要掌握了以下几个函数,就可以实现大多数的通信功能。
OpenPmacDevice() //为应用程序使用PMAC 打开一个通道;
ClosePmacDevice() //当程序运行完毕后关闭所打开的通道;
PmacGetResponseA() //发送一个命令字符串给PMAC,并从缓冲区得到PMAC 的反馈;
PmacConfigure() //调出配置对话框并修改PMAC 的参数;
PmacDownLoadA() //将程序从IPC 下载到PMAC;
PmacSendCommandA() //发送一个命令字符串给PMAC。
4.3 调试系统模块化实现
本文中的调试系统采用模块化结构,使系统具有扩展性与通用性。四个模块分别是:系统参数设置模块,关节空间运动调试模块,直角坐标空间运动调试模块,I/O端口调试模块。各模块运行界面如下:
(1) 参数设置模块:如图2(a)所示,在通用控制菜单项中,有6个子菜单,分别是系统自检,系统初始化,打开控制器,关闭控制器,伺服上电和伺服断电。可以设置各伺服电机轴的速度和加速度参数,单击执行,各电机轴将会按照给定参数运动,窗体右边实时显示当前各电机轴角度及经过运动学正解得到的直角坐标值。单击复位,各电机轴回到初始位置。
(2) 关节空间运动调试模块:如图2(b)所示,六个伺服电机轴分别被定义为X,,Y,Z,A,B,C轴,选择步长和轴号以后可以让各个轴以一定的步长运动,通过列表操作得到指令序列,再通过对指令序列的操作进行示教重演。窗体下面实时显示当前各电机轴角度,直角坐标,以及伺服报警,运动出错,正限位动作,负限位动作,轴开启等系统状态。
图 2 (a)参数设置模块 (b)关节空间运动调试模块
(3) 直角坐标空间运动调试模块:如图3(a)所示,须通过运动学反解将直角坐标空间的示教操作转换到关节空间,其他功能与关节空间运动调试模块类似。
(4) I/O端口调试模块:如图3(b)所示,布置了16个输入端口和16个输出端口。每个I/O端口的状态值均用bool值表示,调用此模块时,16个输入端口的状态值将会以0或1的形式显示在界面上。将各输出端口设置数值0或1,单击设置,输出端口的值将会传递到实际的外部设备,以控制连接到I/O端口的实际外部设备的开关。
图3 (a)直角坐标空间运动调试模块 (b) I/O 端口调试模块
5 结论
本文以工控机IPC 作为六自由度喷涂机器人控制系统的主控制器,结合可编程多轴控制器PMAC,设计了一种基于PMAC 的开放式六自由度喷涂机器人控制系统硬件平台。在此基础上,通过Visual C#.NET 和PComm32 动态链接库,采用分层次的软件结构研制了六自由度喷涂机器人控制器调试系统。通过该调试系统,可以对六自由度喷涂机器人控制器工作的实时性,可靠性和安全性等性能有一个总体的*估,及时发现存在的故障并加以排除,为喷涂机器人最终研制成功提供了重要的保证。
全部0条评论
快来发表一下你的评论吧 !