




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学校代码: 学 号: 毕业设计(论文)BACHELOR DISSERTATION 论文题目:基于运动控制卡的两关节机械手臂控制系 统设计 学位类别: 学科专业: 机械设计制造及自动化 作者姓名: 导师姓名: 完成时间: 基于运动控制卡的两关节机械手臂控制系统设计摘要本次两关节的机械手控制系统的设计,我们用控制卡来进行设计。通过微软公司开发的VC6.0软件,编制运动控制系统的控制界面,再在界面中的命令控件中进行参数的设置、代码编写。继而把界面程序一一导入到我们所用的GT这一系列运动控制卡中,通过导入程序后的运动控制卡,来进行驱动电机的驱动器,继而再通过驱动器驱动伺服电机,同样地,之后就是通过伺服电机输出轴的输出的速度、转矩和转向,带动两关节机械手的运动。这也就是说,最后机械手的运动轨迹就是我们之前在控制界面中通过代码设置的预定动作。当然,在本次运动控制系统中还包括其他的辅助环节,比如各个器件之间的连线等。本文介绍的控制系统,这当中最主要的部分当然是运动控制卡。介绍了运动控制卡的硬件、接线方式、软件构成和里面的开发环境、信息传递与处理机制;两关节机械手等;与此同时,本篇论文也介绍了VC6.0编程的特点及调用函数的方式。这次之所以基于运动控制卡进行设计,那是因为运动控制卡与以前的设备比较起来,有许多优点。首先,运动控制卡用起来不麻烦,我们要做的就是在电脑上进行编程,对专业软件要求不高;还有就是,有很多新的能力,可以实现各种各样的轨迹控制;最后,它的结构不是分散的,能用在很多场合,与此同时,用户可以根据实际需要进行扩充。关键词:运动控制卡; VC6.0; 控制界面;机械手Based on the motion control card of two joint mechanical arm control system designABSTRACT .The two joints of the manipulator control system design, we use control card for design By Microsofts VC6.0 software to compile the interface of the motion control system, then Set up the parameters and compile in the interface of the control design and compile codes, Then import the interface program to GT series of movement control CARDS, by importing the program to the movement control CARDS to drive the servo motor drive, then through the drive servo motor drive, in the same way, then through the output of the servo motor output shaft speed, torque and steering, driving motion platform movement. This means that in the control before the final motion platform trajectory is our interface through the reservation code is set. And, of course, in the motion control system includes other auxiliary links, such as the connection between each device, the rise and fall of pen rack, etc. This paper expounds the main content of the base principle and composition of control system, which core part is the movement control CARDS, motion control card was introduced in detail the hardware, the inside of the connection mode, software composition and development environment, information transmission and processing mechanism; The composition of two joints of the manipulator; At the same time, this paper also introduces the characteristics and calling function of VC6.0 programming approach. The design of motion control system is based on motion control card, thats because the movement control CARDS compared with the traditional numerical control device, has many advantages. First of all, the movement control CARDS of easy operation, as long as the simple programming can be on the computer, does not necessarily need very professional CNC software; Second, its function has been enhanced, can achieve a variety of trajectory control; Finally, it is the structure of the integrated modular, strong commonality, at the same time, the user can according to the actual need for expansion.KEY WORD: motion control card; VC6.0; Control interface; manipulator第一章 绪论11.1 课题背景11.2开放式控制系统11.3 设计任务21.4设计要求2第二章 本次控制系统的结构组成32.1运动控制系统简介32.1.1 GT系列运动控制器52.1.2 伺服电机驱动器62.1.3 伺服电机62.1.4 两关节机械手72.2 安装步骤7第三章 系统控制界面的制作及程序的编写103.1 V C+编程103.1.1 V C 6.0介绍103.1.2 控制界面的编制123.2 动态链接库和GTCard类143.2.1动态链接库的调用143.2.2 GTCard类153.3 界面控制程序的编制173.3.1初始化程序173.3.2 回零程序183.3.3 曲线模式193.3.4 点动程序213.3.5 停止程序223.3.6 退出程序233.4 多轴协调运动243.4.1 坐标映射243.4.2 两轴直线插补243.4.3 两轴圆弧插补253.4.4 自定义曲线263.5 编译与运行28第四章 设计成果与不足30第五章 总结31参考文献32致谢33 第一章 绪论1.1 课题背景随着我们人类自身的进步与发展,尤其表现在对知识的越来越懂和科技的研发加快、人类对劳动这个概念的转变、市场效益及利益驱动,人们制造出了各种机器来代替人工劳动,这是一次举足轻重的工业革命。极大地提高了工作效益,同时也相应的提高了工件的精度,解放了人类的双手,更重要的是给工厂带来了巨大的利润,为市场所接受。在机械方面,早期的各类机床比以前的纯手工劳动极大地节省了人力,降低了成本,但还是需要人力去实时的监控,不间断的控制机床,不能满足大批量的生产,尤其在加工一些复杂、精密的工件时,有经验的工人会表现的好些,但传统机床还是不如人意。与此同时,要熟练的掌握机床需要很长的一段时间,这在某方面也增加了成本和时间的浪费,更严重的问题是传统的机床安全防护装置的缺失,对于机床本体状态不能实时的监控,以及对于工人的安全缺乏保护。所以,传统的机床工作经常发生突然停机以及手指断裂等。后来随着计算机这个领域的快速进步,自动化操作也跟着发展了起来,所以出现了刚开始的数字控制机床,相比于刚出现的机床,数控机床在工作效率和精度上更上一层楼,同时,数控车床的操作简单,更加节省了人工劳动,不需要人工实时的监测,但由于数控机床造价昂贵且维修成本也高,所以设计人员有不断的进行改进,除了在机床本体寿命上费劲心思,又在市场需要的基础上,对数控机床的各项功能提出了更加严苛的要求,加工中心应运而生,加工中心更加智能化,能加工出形状更加复杂、精度要求更加高的零部件。 由于计算机技术与自动化技术的不断发展,人类从使用传统机床,逐渐地用上了早期的数控机床,数控机床的出现极大的提高了效益和精度,但在另一方面,也极大地困扰了企业。比如数控机床造价昂贵、维修成本高,更严重的是,它的通用性差,换了一台机床,就无法正常工作了,这使得科研人员又进行了改进。尝试开发出一种操作简便、通用性强,避免由于机床的不同类型,数控装置不能正常工作,有些数控机床的编程不能相互调用的问题。现在数字控制这方面的发展大方向就是“PC+运动控制器”的这种方式。1.2开放式控制系统在我们平日所见的的数字控制系统中,使用较多的为日本、德国一些公司的产品。在当今市场的要求下,急需要一种数字控制系统,它不仅有多样的功能性,而且通用性也要强,也就是说兼容性好,换台机床即使工作本体改变了,但只要更改一下编程,能正常准确的工作。与此同时,更重要、更人性化的是用户可以根据自身实际需要来扩充相应功能,这也就是开放式数字控制的基本特征。这也是数字控制系统发展的趋势,相比于以前的封闭式控制系统,开放式数字控制系统就是把使用的东西集成在一起,不需要一个个去不同的地方去找,方便使用者使用。系统也可以移植使用,就是说可以用在不同的机器上,不会说因为不兼容而无法工作,打破了封闭式数字控制系统的那种固定无法更改的模式。给使用者一个很大的发挥空间,可以根据自身实际需要,添加一些新的功能。这样对那些用户来说,是大大的利好。开放式数字控制系统,可以很快的进行反应,适应各种各样的加工需要,现在数字控制系统的大方向就是“PC+运动控制卡”,它与传统的数字控制系统相比,具有以下特点:首先,在技术这一块,有不少进步,与此同时,功能也多样化了,可以实现各种各样的运动轨迹的控制;其次,开放式数字控制系统,它的结构不再是分散的,采用了模块化的设计,可以用在很多的地方;再次,它操作一点都不复杂,在计算机上经过简单的编程,它就可以进行运动控制,对专业软件这块没有多大的要求;最后,它的通用性强,通过更改编写的代码,即可用在不同的机床上,用户还可以根据自身需要扩充功能。1.3 设计任务 本次运动控制系统设计是基于GT系列运动控制卡来完成的,通过使用计算机高级语言C+作为编写工具,再结合微软公司的VC6.0 软件,编制运动控制系统的控制界面,通过调用固高科技编写的GT400.h里的头文件,添加到各个控件中。再把计算机上用VC编写的程序,一一的导入到运动控制卡中,然后就是把运动控制卡、端子板、驱动器、伺服电机连接起来,形成一个封闭的环。首先控制卡发出指令,驱动两个电机的驱动器设备,与此同时,驱动器再来控制伺服电机,能够实时的控制和监测电机的速度和转向,从而控制两关节机械手的运动。1.4设计要求 在使用运动控制器和平面运动平台的系统中,通过控制计算机中的运动控制系统的界面来实现两关节的机械手控制系统设计。 基本要求如下: 通过VC6.0编制运动控制系统的控制界面,界面要有初始化、单轴的点动控制、各轴回归零点、各个维度坐标的映射、两轴直线和弧线运动、退出等控件。 通过调用JOG函数使平台能够实现点动。 调用单轴运动的相应程序,来控制各个方向上的直线和弧线运动。 编写控制卡和两轴的初始化所对应程序,包括控制卡和轴的初始化。 调用动态链接库,会使用里面的函数。 通过MapAxis()这个函数,实现X轴与Y轴的相应的坐标映射。 第二章 本次控制系统的结构组成2.1运动控制系统简介 运动控制就是让这个系统的负载,按照之前编程软件写入的代码以及各项运动参数,来进行各种各样的运动。而这中间,不可避免的会出现某种程度的误差,所以运动控制系统就有开环和闭环之分。 图2-1 运动控制系统的组成 如上图2-1所示,运动控制系统中就有若干个不同的组成部分,这当中最重要部件当属运动控制卡。除此之外,还有其他部件。比如:用来接线的端子板、驱动器等。除了运动和控制部件,比如接线、机械传动部件等。 运动控制卡在运动控制系统中的作用就相当于人脑在人体中的作用,它控制着其他部件的运动。通过发出指令使其他部件发生响应,它是一种控制装置。在运动控制系统中还需要计算机的配合,通过编程软件在计算机中编制运动控制系统的控制界面及调用程序添加到界面中每个命令控件,与此同时运动控制卡的不能单独使用,控制卡安装在计算机主机内,具体的安装步骤可以查看相关说明书。在运动控制系统中还有一种装置,它就是分线板,连接导线用途的,在这运动控制系统中所有的信号都是通过之间的接线来实现的,要确保路线的正确安装,使线路看起来清晰明了、不缠绕、不混乱。如果接线端口弄错会导致运动控制系统无法正确安装,甚至有可能会烧毁部件。运动控制系统中有开环和闭环两种控制方式,如图2-2所示的是开环控制系统,通过这个图,我们可以清晰的看到整个运动控制系统是单向的运动。在这个过程当中没有任何的反馈。在这种情况下,说明不需要对输出量进行检测,在我们日常的生活中,步进电机就是这种典型的开环控制系统的代表。这种开环控制系统价钱不高、但是精度不怎么高,维修费用比较低。 图 2-2 开环运动控制系统的组成 如下图2-3就是闭环控制系统,通过这个图,我们可以清楚的看到整个运动控系统并不是单向的运动,在输出端有部分输出信号返回与输入值进行比较,这就是闭环控制系统。部分或者全部的输出信号通过返回到输入端信号处,与之进行比较,找出它们之间的信号误差,然后输出值逐渐向预定值靠近,缩小过程中的误差,得到更加的准确值。相比于开环,闭环就多了个反馈环节,使系统的输出值更加准确,减少外界干扰和系统内部误差,在我们日常生活中,伺服电机就是常用的闭环运动控制系统的代表。 图 2-3闭环运动控制系统的组成2.1.1 GT系列运动控制器 本次控制系统设计,就是在GT控制卡的基础上进行的,它最多同时控制4根轴的运动。对于这次设计的两关节机械手,这个控制卡完全胜任。与此同时,控制卡给编程的人提供了一个动态链接库,里面有很多实用的函数。这大大的减少了我们的工作量,只需要熟悉并正确调用相关函数即可完成任务。 图2-4控制器中器件位置图 本次设计使用控制卡是GT-400-SV-PCI,这种运动控制卡包括四种运动模式:S-曲线模式、T-曲线模式、V-速度模式、电子齿轮模式。两轴协调直线和曲线运动。最值得一提是本次使用的GT400-SV-PCI运动控制卡是一种开放式数字控制方式,用户可以根据自己实际需要进行扩充,实现新的功能,控制卡外形如下图2-5所示。 图2-5 GT-400-PCI运动控制卡2.1.2 伺服电机驱动器 伺服电机驱动器简单的说就是一种信号放大器,把放大后的各种信号用来控制伺服电机,它的作用相当于我们日常生活中变频器作用于马达一样。属于整个伺服系统的一部分,一般情况下是经过三种方式达到控制伺服电机的目的:对位置、速度和力矩。2.1.3 伺服电机 一般伺服驱动系统主要由以下几个部分组成:1.驱动装置,2.执行元件,3.传动机构,4检测元件及反馈电路【1】。伺服电机就是这个系统中的第二个部分,充当执行元件。它不仅可以控制速度,与此同时,还可以控制位置,精度十分准确,它在某种意义上就是一种信号转换元件。 伺服电机把电压信号转化为电机输出轴所需的角位移和角速度。与此同时,通过齿轮齿条机构把轴本来的转动变成机械手关节的直线移动。至于移动多少距离,主要根据这个传动比来确定,伺服电机的后部有一个部件,那就是编码器,它的主要作用就是反馈。2.1.4 两关节机械手 两关节机械手是运动控制系统中的最后一环,它是使预先设置的轨迹产生的部件,但要实现正确的轨迹,是需要步骤的,首先我们要运用微软公司开发的VC6.0在计算机上编制运动控制系统的控制界面,并调用固高科技的动态链接库里的函数把它们添加到控制界面的命令控件中,然后导入到运动控制卡里,从而通过它向驱动器发出一系列的运动指令,接着就是用驱动器放大后的信号来控制伺服电机,从而控制机械手运动。两关节机械手就是说这个机械手臂有2个自由度,可以在两个方向运动,至于手爪的夹紧和松开只是两个状态。在这其中,我们要把两关节和相应的二维坐标一一对应,形成一个正确的映射,使运动轨迹正确表达。2.2 安装步骤 图2-6 板卡与端子板之间连接图 1、将我们所用的控制卡导入程序后,再插入计算机的主机内。按照说明书所写步骤一 步步正确 的安装,一定要仔仔细细的检查,然后在连好线后 注意关掉电源,控 制卡要轻拿轻放,在安装之前使用者要认真的检查 设备是否接 地,就要看看接地的金属,防止有 静电损 坏这类的问题影 响我们所 用的GT系列运动控制卡,否则就有可能弄坏计算机和 我们用的运动控制卡,在安装的过 程中要用到的工具 要提前 准备好,待安装好运动控 制卡后,装好计算机的 主机箱,重新启动电脑,查看板卡是否能无问题的来工作。 2、安装控制器的驱动通 讯。按照说明 书上的步骤仔仔细细的完成,要弄清计算机上安装的 位置,不要安装在其他不对的地方,否则就弄 不好安装 安装好之后不能 无问题运行程序。该部分会有一些光盘指导,按照上面的指导完成安装过程。 3、建立计算机的主机与板卡之间的联系。运行附带的GTCmdPCI_CH.exe 程序,如果能无问题运行的话,就说明我们的安装不存在毛病;如果有问题的话,那就需要多次检查和重新安装。 4、连接本次设计所用电机和相应的驱动器。连接驱动器和伺服电机这一步骤一定要在驱动器和运动控制卡之前,查看伺服电机目的是看看有没有负载,保证这一安装过程中的安全。按照所给的说明书 指示的要求进行安装,在安装好了后一定不能忘的工作,那就是要测试伺服电机和它的驱动器。 5、连接我们用的控制卡和端子板。在安装它们之前,别忘了关闭电脑的电源,防止发生不测。仔细了解各个端口的作用,千万不能在带电的情况下随意的插拔接口。将两条电缆按照所给的要求连在相应的地方,不要弄错。 6、接线。 连接端子板电源 图 2-7 端子板的电源连接示意图 专用输入、输出连接方法 图2-8专用输入,输出连接图编码器输入连接方法 图2-9编码器输入连接示意图模拟输入连接方法,如下图 图2-10模拟的输入连接示意图第三章 系统控制界面的制作及程序的编写3.1 VC+编程3.1.1 VC6.0介绍 Visual C+中的有相当多的功能,经过多年的变化和发展,VC+也发生了许多改变,当然它所具备的能力是越来越多了,值得一提的是,在VC+中增加了一个新的作用:MFC可视化的编程,它就是我们这次设计所用到的功能。由它的名字我们就可以知道,也就是说使用它就可以非常清晰明了看到的编写界面,不用再花时间去想象它应该有的种种情况。下面我们来动手看看VC+的MFC可视化编程,它所具备的一些基本的部分。首先我们就从一开始的地方说起,要实现一个某种功能的话,首先就要构建一个工程。VC在建立好界面时,它会自动生成许许多多的东西,这些东西给编程序的人带来了福利,节省了我们的编程时间和精力。它的结构很清晰,能帮助我们理清一些头绪,带着我们慢慢的去了解这个编程软件,如下图4.1.1所示,在这个编程序的界面中又分为3个部分,第一部分是项目工作区,它有三个视图:类、资源、文件【2】;第二个部分,就是编程序的人写代码的地方了,我们在这里面,不仅可以写新的我们所需要的代码,与此同时,我们也可以修改以前的代码;第三个部分,这个地方是用作显示的,显示我们调试、运行之后的结果。如果出现一些什么错误和一些警告,都会出现在这里面了,当我们双击这个地方的错误提示之后,在我们编写代码的地方的左侧就会出现一个黑色的类似标签的东西,用来显示错误在哪一行。当然,这仅仅是最基本的一些东西,这里面还有许许多多的要去琢磨。图3-1 V C+窗口界面我们本次设计仅仅是大体的学习一下VC+的建立过程和包含的最基本的内容。VC+这个软件中,MFC是一个极其有用的工具,由于其能够自动生成一些部分代码,所以降低了编写代码的复杂性和难度,而且能够与微软公司的一些应用程序相关联。用VC+来编写代码,如果有一定的C语言功底,因为这毕竟是在C语言上发展而来的,会更加轻松。但是它们中间也有着相当大的不同,包括编写用的语言的思路,函定义的方法,编写代码的不同等等。由于VC+的可移植性,它的适用性就很广,更重要的是VC+中的功能也变的很多了,比如加图片、滚动条之类的,还可以进行自己个性设置,比如改变字体和字型等,改变字的颜色与对话框中控件的颜色,相比C语言有很大的优势,深入使用后会发现更多的且有实际作用的功能。3.1.2 控制界面的编制 当我们要编制控制界面时,我们第一步就是要建立这个编制的环境。 第一步,我们就需要打开VC 6.0这个软件,点击新建,就会出现下图4.1.2所示的那样,接着我们再点击projects这个选项,就会出现好多个类型项目,我们需要的是点击MFC AppWizardexe这个项目,接下来我们在对话框的左边填上我们所需创建工程的名字和保存的地方。写好这些之后,我们所要做的就是点击OK,那么接下来有会出现许多询问框,我们只需默认就行了,只有在一个地方,我们要注意一下,那就是我们要创建的是一个对话框而不是文档类型的。图3-2 新建工程窗口 第二步,我们就要添加控制界面中的控件,首先我们就要了解这个控制界面要实现的功能,那么在这次设计当中,我们是在控制卡的基础上来进行两轴的运动控制系统的设计,我们在这个界面中就需要实现初始化(这包括板卡和轴的初始化)、回零(运行前,清除一些错误的状态)、单轴的点动(在这里,我们可以通过运动距离和运动速度这两个参数来控制点动)、多轴的联动(主要包括直线运动和弧线运动,对于弧线运动,界面中用两种圆弧插补的方式来绘制)、坐标映射、自定义轨迹、退出,运行。 我们添加控件的方式就是通过控件面板,如下图4.1.3左侧的条形框,在这其中,我们要用到的是文本类、命令类、组合类。具体的添加步骤:点击面板上相应控件,在它的上面点击一下,就会出现。你可以进行许多操作,比如拖动到任意地方、缩改它的大小等。 在属性设置中,我们主要是对编辑框中的内容和命令框进行设置,这都是通过类向导这个项目进行,对于编辑框,我们点击右键,会有一些操作,我们选类向导,主要是对字符类型进行设置。对于命令按钮,我们要进行函数的选定,比如是通过单击或者双击进行运行,值域这其中代码的编写会在下一节详细介绍。 图3-3 界面初始窗口经过上面几步的设置,我们所需的控制界面已经大致成形。如下图3-4所示。 图3-4 控制界面3.2 动态链接库和GTCard类3.2.1动态链接库的调用 本次设计在控制卡的基础上进行两轴控制系统的设计,而我们所选用的GT系列控制卡,给我们提供了一个动态链接库,也就是GT400.h文件。在这个库里面,有许多函数的头文件,我们所要做的就是调用这些函数,如下图3-5所示 图3-5 GT400.h动态链接库 如何正确调用这些函数呢?我们接下来要做的就是把这个动态链接库和我们的工程联系起来,首先,我们要把GT400.h、GT400.dll、GT400.lib这三个程序复制到我们的工程中去;其次,在程序中加入:#include“GT400.h”在V C菜单中,选择 Project-Setting-Link,在 Object/Library modules 中输入 GT400.lib【5】。这样,动态链接库就可以被正确使用。3.2.2 GTCard类 在这个动态链接库的基础上,我借鉴了他人成果及自己努力下,创建了GTCard这个类,它就是把动态链接库的函数进行了打包,也就是把所有的功能集成,可以更方便的调用。 首先在插入那个选项下选择新建类,然后命名为GTCARD,之后在文件视图中会出现GTCARD.h和GTCARD.app两个文件。把写好的函数和程序分别放进去,接下来在界面源程序的头文件上添加GTCard.h,这样就能很方便的用它来编程。如下图3-6所示 图3-6 GTCard类 我在这个程序中还使用了一些常数(宏定义),如下图3-7所示,这是头文件,把它添加到头文件目录中就可以了,或者通过如下方法:文件-新建-C/C+ Header File。 图3-7 Global 宏定义 在我上面写得那些程序里,也就是CTKDlg.cpp文件中,添加如下两个语句: #include GTCard.h和extern CGTCard gtcard;这样就应该没有问题了,类目录里多了一个新类,CGTCard,里面有很多函数,我们就可以很方便的进行使用。3.3 界面控制程序的编制3.3.1初始化程序 初始化程序包括对板卡的初始化、专用输入参数的设置、运动轴的初始化。具体程序如下图3.8所示 图3.8 初始化程序3.3.2 回零程序 对于XY轴来说,每次进行运动之前都需要回零,我们主要调用的是Home_Zero这个函数,而这个函数回零的思想:首先判断当前轴的位置,然后进行正向运动,直到正极限位置,记下当前位置,然后反向运动,直到负极限位置,记下当前位置。然后系统会进行位置运算,就是这两个极限位置的绝对值差的一半就是零点位置。其次系统还会检测这个位置是否为零点,主要是通过霍尔元件来检测。程序如下图3.9所示 图3.9回零程序3.3.3 曲线模式 我们本次使用的运动控制卡,它给我们提供了4种运动模式。而我们常用的是曲线模式,曲线模式中又分为S形和梯形。因为曲线模式它的运动较为平缓,对元器件的冲击较小,所以我们选用曲线模式。S-曲线这种模式,它有五个主要的参数,具体如下表3-1所示: 表 3-1 S形曲线参数列表 S形曲线模式下,它的速度曲线一般有7段,如下图3-10所示,但它是对称的,总的来说它的曲线段只有4种情况。在第一曲线段,它会以MAX_Acc作为加速的目标,与此同时,以jerk作为它的增加的量来加速,一直到它的Acc为我们之前设置的Max_Acc为止;第二段,是一段均匀加速的阶段,它的Acc是一成不变的,就是先前设置MAX_Acc;第三曲线段,它是变减速运动,它的Acc在不断地减少,而减少的幅度就是之前设置的jerk的负值,当Acc为零,也就是说这段速度达到最大时,这段运动就结束了;第四曲线段,是一种速度不变的运动,保持最大速度不变。至于另外曲线段和前面的曲线段类似。 图3-10 S-曲线模式的速度曲线 有时S曲线模式中,它的第四曲线段可以没有。 在梯形曲线模式中,它主要由四个参数,如下表3.2所示。 表 3-2 梯形曲线参数列表 梯形曲线模式相比S形曲线模式而言较简单,它只有3个曲线段,分别为匀加速运动、匀速运动、匀减速运动。如下图3-11所示图3-11 梯形曲线模式的速度 在第一段内,是一 段 Acc不变的运动,它是以之前设定的Acc来运动,直到MAX_Acc;在第二段内,是一段速度不变的过程,它的Acc为零;第三段内,是一段速度均匀减少的过程,它是以之前设定的Acc负值进行减 速,直到速度为零。 在一些情况下,也许还没达到最大设定值,这个运动就要开始减速,这样就没有第二曲线段。在梯形曲线模式这种控制方式下,任意时刻都可以更改速度和位置。 它相比于S曲线来说更加的自由,此时的速度曲线就如 图 3-12 所示。 图3-12 改变后速度曲线 3.3.4 点动程序 在我们实现单轴点动过程中,有一个JOG函数是需要我们调用的,它就是点动函数。在这个函数中有四个参数:第一个是点动的轴,如果我们要对哪个轴进行点动,我们就要把那个轴设为当前轴;第二个是点动的距离,这就是来设置我要点动多远;第三个就是点动的速度,这就是来设置在点动过程中以多快的速度来动;第四个是点动的方向,对于一根轴,它有正反两个方向,我们可以设置往正向运动为+1,往负向运动为-1。 点动程序如下图3-13所示。 图3-13 点动程序3.3.5 停止程序 在单轴运动中,我们需要停止运动或者有时候会出现一些意外情况,就需要我们来设置一个停止按钮,来对这些意外的情况进行快速处理。本次使用的动态链接库中,给我们提供了两种停止函数,一种急停,另一种是平滑停止。函数如下表3-3所示。 表 3-3 停止函数列表 GT_AbptStp()这是一个紧急停止的函数,它让当前运动的那根轴立即停止, 同时将速度变为0。当想立即停止运动时,通常用这个函数。平滑停止,由它的字面意思就可以知道,这个停止它是渐进式的过程,有一段减速过程。在曲线模式下,运行平滑停止这个命令后,运动速度会出现下图3-14所示 图3-14 曲线模式下平滑停止速度曲线图 具体的停止程序如下所示; 图3-15 停止程序3.3.6 退出程序 所有程序都运行完之后,我们所要做的就是退出这个程序。而退出程序只有一句代码,即CDialog:OnOK()。在我们退出之前,不能忘记得事情是得首先关闭各轴的运动和相关控制器。具体的退出程序如下所示 图3-16 退出程序 3.4 多轴协调运动3.4.1 坐标映射 对于本次XY两轴运动控制设计中,两轴的协调运动是这次设计的关键,协调运动包括直线运动和弧线运动,在我们进行轨迹运动前,首先就要进行坐标映射。坐标映射的作用就是把各个运动轴对应到坐标系中,也就是把运动工作平台刻度化,有利于运动轨迹参数的设定,对于坐标映射,我们主要调用MapAxis()这个函数。程序如下所示。 图3-17 坐标映射 3.4.2 两轴直线插补 在坐标系中,在我们画直线时,是需要起点和终点的。一般情况下,起点有这么两种情况:我们选择一个起点,然后以这个起点开始画一条直线;要么就是以上一个轨迹的终点作为我们画直线的初始点,来画一条直线。在绘制直线时,我们需要用到的是这个函数LineXY(),用来直线插补。只要在函数设定终点就可以画一条直线,这条直线不仅是平行于坐标轴,也可以是平面内斜线。程序如下所示 图3-18 直线插补程序 3.4.3 两轴圆弧插补 在XY轴坐标系中绘制圆弧,本次设计使用的控制卡提供给我们两种绘制的方法,在这之前,我们先介绍一下圆弧插补的原理。 在基准脉冲插补中,应用较多的是逐点比较法和数字积分法【4】。在这,我们选择介绍逐点比较法,在这种方法中,主要有4个方面:第一个就是判别该点与圆心的距离是不是和程序里设置的半径相同,如果不同,那么当F0,就表示该点在圆弧外部,如果F0,表示这个点在圆弧的内部;第二步就是坐标如何来运动,使得该点不断的接近预先设置的点;第三步,就是计算这个点现在的位置和理论上的位置到底有多少距离,以便不断地修正;第四步,就是判断这个点是不是回到了一开始预先设定的位置。如下图3-19所示 图3-19 逐点比较法在画圆弧的过程中,我们采取了两种方法。 第一种是根据初始点、圆心、角度来实现圆弧;第二种是根据两点、圆弧半径、运动的角度。 第一种方式中,我们需要使用这个ArcXY()函数。其中需要设定圆弧的初始点,设好了之后,我们再确定圆心,接着就是该段圆弧的圆心角,以逆时针为正。具体程序如下所示。 图3-20 圆弧插补程序1 在第二种方式中,我们需要调用ArcXYP()函数。这个函数有三个参数:首先圆弧的终点需要确定;接下来是半径值的设定,这其中需要区分优弧和劣弧。当半径值为正时,表示优弧,当半径值为负值时,表示劣弧;第三个参数就是旋转方向,轴的正方向用1表示,同样地,轴的负方向用-1表示。具体的程序如下所示: 图3-21 圆弧插补程序23.4.4 自定义曲线 在编写之前的单轴点动、直线运动和圆弧运动后,我决定用这些程序来定义一个特殊的轨迹,也就是这个自定义轨迹。所谓自定义曲线,按照字面来讲就是按照自己的所设计的轨迹,在执行这个程序段时再结合笔架的抬起和落下,绘制一个汉字“和”。具体的程序如下所示: GT_StrtList(); GT_MvXY(0,0,0.01,0.00000001);GT_LnXY(-5,5); /OnBtnPenOn(); /OpenPort(1,true);GT_ArcXY(-5,12.5,75);/OnBtnPenOff(); /OpenPort(1,false);GT_LnXY(-10,0); /OnBtnPenOn(); /OpenPort(1,true);GT_LnXY(7.5,0);/OnBtnPenOff(); /OpenPort(1,false);GT_LnXY(0,6.5); /OnBtnPenOn(); /OpenPort(1,true); GT_LnXY(0,-15);/OnBtnPenOff();/OpenPort(1,false);GT_LnXY(0,0); /OnBtnPenOn(); /OpenPort(1,true); GT_LnXY(-7.5,-10);/OnBtnPenOff();/OpenPort(1,false); GT_LnXY(0,0);/OnBtnPenOn(); /OpenPort(1,true); GT_LnXY(5,-7.5); /OnBtnPenOff();/OpenPort(1,false); GT_LnXY(10,2.5); /OnBtnPenOn(); /OpenPort(1,true); GT_LnXY(10,-5); GT_LnXY(15,-5); GT_LnXY(15,2.5); GT_LnXY(10,2.5);GT_EndList(); GT_StrtMtn(); 输入这个自定义轨迹程序之后,机械手就会根据这个程序进行运动,最终就会形成一个“和”字!如下图3-22所示 图3-22 轨迹“和”3.5 编译与运行 通过以上函数及程序的介绍,我们基本上解决了控制界面上所有的代码。 当我们双击一个命令控件,当前的窗口就会由控制界面进入到界面的源程序中的相应位置,具体情况如下图3-23所示. 图3-23 添加程序到控件中 把该添加的程序搞好之后,我们最后做的事就是调试、运行。如果没有出现什么错误,结果就会如下图3-24所示 图3-24 运行结果 如果显示有错误或者警告,就去按照提示对程序进行修改,然后在运行,直至没有错误。 第四章 设计成果与不足本次毕业设计大致顺利,利用VC6.0编制系统的控制界面。而这个界面中有许多的控件,包括系统的初始化、单轴的点动、平面内的直线和圆弧运动、坐标系的映射。自定义曲线以及退出等相应的程序。成果:1、我们编写了一个GTCard类,能够实现各轴回零和初始化等2、编写的程序能够使机械手按照我们设置的速度与运动距离完成点动3、编写的程序能够在平面内按照预定的轨迹完成直线和圆弧运动4、能完成坐标系的映射5、设置出了整体的编辑界面6、两关节机械手功能基本实现。 不足:1、程序代码很粗糙,不是很周到。2、没能完成界面的美化(设置界面背景和字体颜色)3、机械手的动作比较简单,没有进行深度的设计。第五章 总结“PC运动控制器”是未来发展的大方向。它越来越多的被运用,从简单的单轴点动,再到多轴协调运动,都能够完全胜任。这种方法可以充分利用资源构建交流平台,便于用户沟通交流使用。通过本次设计所用到的两轴控制系统的一些知识,对数控机床的工作有了一定的认识。本次基于运动控制卡的运动控制系统设计就是数控机床的未来主流数字控制系统,所有的数控机床都是在此基础上发展而来的,所以本次设计对以后研究机床系统,尤其是数字控制机床有很大的帮助,为以后的工作奠下了坚实的基础。学习VC6.0软件有很大的挑战,刚开始对于我们来说就是一个完全陌生的领域,即使我们之前学过C语言,我们选择这题目也是难度很大,对VC6.0是一点也不了解,但是我们在徐斌老师的悉心指点下,慢慢的摸索,从刚开始的怎样打开与保存学起,一步步的学习,从一点不懂到基本掌握再到熟练。本次在运动控制卡的基础上,设计的两关节机械手控制系统,我们用到的编程软件是VC6.0。这其中要用到MFC可视化编程,我们从编辑运动控制系统的控制界面到编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 意向书课件教学
- 上海市崇明区2026届高三化学第一学期期末达标检测试题含解析
- 2026届甘肃省武威市民勤一中化学高二第一学期期中经典试题含解析
- 村爱国卫生月活动实施方案
- 幼儿园年度工作方案
- 学校老师个人德育教育的工作方案
- 恐龙的演变教学课件
- 小区停车难的解决方案
- 中山供电局考试试题及答案
- 中学校园文化方案
- 2025年燃气电厂笔试题库及答案
- 2025年科技咨询师考试题库
- 四川省凉山州2024-2025学年高一下册期末统一检测数学检测试卷
- 2025年道路运输两类人员安全员考试考核试题库答案
- 2025年历年医疗卫生卫健委面试真题及答案解析
- 2025年学法减分试题及答案
- 《智能建造概论》高职完整全套教学课件
- 心衰病人的观察与护理
- 食品安全卫生试题及答案
- GB/T 30807-2025建筑用绝热制品浸泡法测定长期吸水性
- 矿业公司环保培训课件
评论
0/150
提交评论