简论并联基于VC++与开放式运动制约器并联机器人制约软件开发

更新时间:2024-02-15 作者:用户投稿原创标记本站原创
摘要:结合IPC+PMAC+SERVOMOTER的层次结构,开发出一种六自由度并联机器人的控制软件。采用VC++编程开发工具,利用开放式运动控制器PMAC的强大功能,所设计的软件满足并联机器人高实时性,高精度的运动控制要求,体现出开放性的特点。实验进一步验证了整个控制软件的可靠性与稳定性。
关键词:PMAC 并联机器人 开放式结构 控制软件设计 Visual C++
1007-9416(2013)01-0160-02
1 引言
通用性和开放性作为一项重要指标业已渗透到工业生产与科学研究的各个领域中, 而传统的运动控制系统主要存在体系独立和结构封闭的缺陷。设计者一般采用专用计算机、专用编程语言与操作系统、专用微处理器的封闭式体系结构。这种结构存在制造和使用成本高,开发周期长,升级换代困难,无法添加系统的新功能等一系列缺点[4]。因此,如何构建开放式运动控制系统的软硬件系统成为工业界和学术界所研究的一大热点。
近年来,机器人系统在各类工业生产中得到了广泛运用,对提高生产效率与自动化程度发挥出重要作用。而并联机器人作为一类全新的机器人与传统的串联机器人在概念和用途上形成了互补,并且该机构能够实现运动轨迹、运动速度、定位以及重复定位的高精度精确控制的要求,故在精密加工和制造业中具有举足轻重的作用,因此已成为控制科学领域与精密加工应用领域中一个很有意义的研究方向。本 文所研究的控制系统以六自由度并联机构本体为对象,采用PC/104总线工控机为上位机,PMAC2A-PC104运动控制器作为下位机,以VC++开发工具实现机器人各控制模块的软件设计,从而完成控制目标任务的要求。因此本文将基于本系统的硬件体系结构,按开放性和系统稳定性要求开发出控制软件来实现高精度精密加工的目标。
2 并联机器人系统硬件结构
本机器人系统采用两级计算机系统的结构,系统结构如图1所示。其硬件配置为:
上位机采用研华嵌入式PC/104工控机(IPC),下位机采用Delta Tau的开放式可编程多轴运动控制器PMAC。PMAC是一种非常灵活的高性能运动控制器,具有实时性强、稳定性好、效率高等优点,用来与上下层系统进行数据通信和控制信号的交互。它是整个控制系统的核心。而工控机具有运行速度快、存储量大、应用灵活的优点[4]。正是由于采用了两级计算机控制系统,故就能充分利用各自的特点,发挥出各自的优越性来协调系统的整体稳定性。
并联机器人控制系统的体系结构中,上位机的主要作用是:基于人机交互,完成目标任务相关的数据输入、参数设定、路径规划、任务指定以及任务决策等工作。PMAC运动控制器主要用于对伺服更新的在线计算以及目标轨迹的生成,反映出并联机器人各轴电机的实时状态,响应上位机的执行命令。
3 并联机器人控制软件设计
3.1 软件设计总体方案
由于本系统软件是建立在Windows操作系统之上,故具备了多线程协调处理的能力,能及时应对并联机器人在运行中出现的各种状况,并对出现的状况作出相应的处理。作为上层软件的可执行32位Windows应用程序,通过调用PMAC自带的通讯模块PComm32与PMAC的内核程序进行通讯,再由上位机软件灵活调用运动控制的各种函数,以此来监控机器人的各种工况。PComm32是一个非常有效的开发工具,几乎囊括了所有与PMAC通讯的方法,并且与VC++开发软件有很好的兼容性。它由PMAC.DLL、PMAC.SYS和PMAC.VXD 3个文件组成,共包含了250多个函数[3]。上位机与运动控制器的内核驱动程序的关系如图2所示。
开放式控制软件系统一般采用模块化的思想来设计,在此以典型的运动轨迹和基本的机械加工功能要求来编制软件。软件开发中主要用到VC++的动态链接库以及多线程的编程方法来实现。软件的整体设计框架为图3所示。
3.2 控制软件的具体设计[3]
3.2.1 编程准备
(1)首先将运动控制器插入工控机的PCI插槽中并安装好驱动程序。
(2)安装运动控制器的测试程序并且调试坐标系中各轴伺服电机。摘自:本科毕业论文致谢www.808so.com
具体调试界面如图4所示。
3.2.2 PMAC内核程序设计
在成功安装了运动器后,就需编写与控制目标和任务相应的PMAC内核运动程序。PMAC能够支持多达256个运动程序[3],这体现了PMAC强大的伺服功能。首先按PMAC的指令设置坐标系,PMAC中的坐标系是指一个或者一组为了同步的目的而组织起来的电机,然后通过轴定义语句为电机分配轴来建立坐标系。坐标系在任何时候都可以按要求执行程序中的任意一个。其次根据所需运动要求来选择适当的运动指令,然后按照PMAC语法编写运动程序,下载到PMAC内存后运行。并联机器人的PMAC运动程序如下:
控制系统功能设置(Setting up and Definition)[6]
COLSE //确保所有缓存关闭
&1 //设置坐标系1,以角度定义轴
#1->1024X //匹配轴1电机,1024cts/度
#2->2000Y //匹配轴2电机,2000cts/度
#3->2000Z //匹配轴3电机,2000cts/度
#4->5000A //匹配轴4电机,5000cts/度
#5->512B //匹配轴5电机, 512cts/度
#6->277.7787C
//匹配轴6电机,277.7787cts/度
M70->F:$D200 //DPROM中的32位浮点
M71->F:$D201 //浮点运算变量优秀论文查重www.808so.com

点赞:23369 浏览:98882