《基于运动控制卡的两关节机械手臂控制系统设计毕业(设计)论文正文.doc》由会员分享,可在线阅读,更多相关《基于运动控制卡的两关节机械手臂控制系统设计毕业(设计)论文正文.doc(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 学校代码: 学 号: 毕业设计(论文)BACHELOR DISSERTATION 论文题目:基于运动控制卡的两关节机械手臂控制系 统设计 学位类别: 学科专业: 机械设计制造及自动化 作者姓名: 导师姓名: 完成时间: 基于运动控制卡的两关节机械手臂控制系统设计摘要本次两关节的机械手控制系统的设计,我们用控制卡来进行设计。通过微软公司开发的VC6.0软件,编制运动控制系统的控制界面,再在界面中的命令控件中进行参数的设置、代码编写。继而把界面程序一一导入到我们所用的GT这一系列运动控制卡中,通过导入程序后的运动控制卡,来进行驱动电机的驱动器,继而再通过驱动器驱动伺服电机,同样地,之后就是通过伺
2、服电机输出轴的输出的速度、转矩和转向,带动两关节机械手的运动。这也就是说,最后机械手的运动轨迹就是我们之前在控制界面中通过代码设置的预定动作。当然,在本次运动控制系统中还包括其他的辅助环节,比如各个器件之间的连线等。本文介绍的控制系统,这当中最主要的部分当然是运动控制卡。介绍了运动控制卡的硬件、接线方式、软件构成和里面的开发环境、信息传递与处理机制;两关节机械手等;与此同时,本篇论文也介绍了VC6.0编程的特点及调用函数的方式。这次之所以基于运动控制卡进行设计,那是因为运动控制卡与以前的设备比较起来,有许多优点。首先,运动控制卡用起来不麻烦,我们要做的就是在电脑上进行编程,对专业软件要求不高;
3、还有就是,有很多新的能力,可以实现各种各样的轨迹控制;最后,它的结构不是分散的,能用在很多场合,与此同时,用户可以根据实际需要进行扩充。关键词:运动控制卡; 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 softwa
4、re 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 ser
5、vo 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 res
6、ervation 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 move
7、ment 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 i
8、ntroduces 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 cont
9、rol 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 commona
10、lity, 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第三章 系统控制界面的制作及程序的
11、编写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.
12、1 课题背景随着我们人类自身的进步与发展,尤其表现在对知识的越来越懂和科技的研发加快、人类对劳动这个概念的转变、市场效益及利益驱动,人们制造出了各种机器来代替人工劳动,这是一次举足轻重的工业革命。极大地提高了工作效益,同时也相应的提高了工件的精度,解放了人类的双手,更重要的是给工厂带来了巨大的利润,为市场所接受。在机械方面,早期的各类机床比以前的纯手工劳动极大地节省了人力,降低了成本,但还是需要人力去实时的监控,不间断的控制机床,不能满足大批量的生产,尤其在加工一些复杂、精密的工件时,有经验的工人会表现的好些,但传统机床还是不如人意。与此同时,要熟练的掌握机床需要很长的一段时间,这在某方面也增
13、加了成本和时间的浪费,更严重的问题是传统的机床安全防护装置的缺失,对于机床本体状态不能实时的监控,以及对于工人的安全缺乏保护。所以,传统的机床工作经常发生突然停机以及手指断裂等。后来随着计算机这个领域的快速进步,自动化操作也跟着发展了起来,所以出现了刚开始的数字控制机床,相比于刚出现的机床,数控机床在工作效率和精度上更上一层楼,同时,数控车床的操作简单,更加节省了人工劳动,不需要人工实时的监测,但由于数控机床造价昂贵且维修成本也高,所以设计人员有不断的进行改进,除了在机床本体寿命上费劲心思,又在市场需要的基础上,对数控机床的各项功能提出了更加严苛的要求,加工中心应运而生,加工中心更加智能化,能
14、加工出形状更加复杂、精度要求更加高的零部件。 由于计算机技术与自动化技术的不断发展,人类从使用传统机床,逐渐地用上了早期的数控机床,数控机床的出现极大的提高了效益和精度,但在另一方面,也极大地困扰了企业。比如数控机床造价昂贵、维修成本高,更严重的是,它的通用性差,换了一台机床,就无法正常工作了,这使得科研人员又进行了改进。尝试开发出一种操作简便、通用性强,避免由于机床的不同类型,数控装置不能正常工作,有些数控机床的编程不能相互调用的问题。现在数字控制这方面的发展大方向就是“PC+运动控制器”的这种方式。1.2开放式控制系统在我们平日所见的的数字控制系统中,使用较多的为日本、德国一些公司的产品。
15、在当今市场的要求下,急需要一种数字控制系统,它不仅有多样的功能性,而且通用性也要强,也就是说兼容性好,换台机床即使工作本体改变了,但只要更改一下编程,能正常准确的工作。与此同时,更重要、更人性化的是用户可以根据自身实际需要来扩充相应功能,这也就是开放式数字控制的基本特征。这也是数字控制系统发展的趋势,相比于以前的封闭式控制系统,开放式数字控制系统就是把使用的东西集成在一起,不需要一个个去不同的地方去找,方便使用者使用。系统也可以移植使用,就是说可以用在不同的机器上,不会说因为不兼容而无法工作,打破了封闭式数字控制系统的那种固定无法更改的模式。给使用者一个很大的发挥空间,可以根据自身实际需要,添
16、加一些新的功能。这样对那些用户来说,是大大的利好。开放式数字控制系统,可以很快的进行反应,适应各种各样的加工需要,现在数字控制系统的大方向就是“PC+运动控制卡”,它与传统的数字控制系统相比,具有以下特点:首先,在技术这一块,有不少进步,与此同时,功能也多样化了,可以实现各种各样的运动轨迹的控制;其次,开放式数字控制系统,它的结构不再是分散的,采用了模块化的设计,可以用在很多的地方;再次,它操作一点都不复杂,在计算机上经过简单的编程,它就可以进行运动控制,对专业软件这块没有多大的要求;最后,它的通用性强,通过更改编写的代码,即可用在不同的机床上,用户还可以根据自身需要扩充功能。1.3 设计任务
17、 本次运动控制系统设计是基于GT系列运动控制卡来完成的,通过使用计算机高级语言C+作为编写工具,再结合微软公司的VC6.0 软件,编制运动控制系统的控制界面,通过调用固高科技编写的GT400.h里的头文件,添加到各个控件中。再把计算机上用VC编写的程序,一一的导入到运动控制卡中,然后就是把运动控制卡、端子板、驱动器、伺服电机连接起来,形成一个封闭的环。首先控制卡发出指令,驱动两个电机的驱动器设备,与此同时,驱动器再来控制伺服电机,能够实时的控制和监测电机的速度和转向,从而控制两关节机械手的运动。1.4设计要求 在使用运动控制器和平面运动平台的系统中,通过控制计算机中的运动控制系统的界面来实现两
18、关节的机械手控制系统设计。 基本要求如下: 通过VC6.0编制运动控制系统的控制界面,界面要有初始化、单轴的点动控制、各轴回归零点、各个维度坐标的映射、两轴直线和弧线运动、退出等控件。 通过调用JOG函数使平台能够实现点动。 调用单轴运动的相应程序,来控制各个方向上的直线和弧线运动。 编写控制卡和两轴的初始化所对应程序,包括控制卡和轴的初始化。 调用动态链接库,会使用里面的函数。 通过MapAxis()这个函数,实现X轴与Y轴的相应的坐标映射。 第二章 本次控制系统的结构组成2.1运动控制系统简介 运动控制就是让这个系统的负载,按照之前编程软件写入的代码以及各项运动参数,来进行各种各样的运动。
19、而这中间,不可避免的会出现某种程度的误差,所以运动控制系统就有开环和闭环之分。 图2-1 运动控制系统的组成 如上图2-1所示,运动控制系统中就有若干个不同的组成部分,这当中最重要部件当属运动控制卡。除此之外,还有其他部件。比如:用来接线的端子板、驱动器等。除了运动和控制部件,比如接线、机械传动部件等。 运动控制卡在运动控制系统中的作用就相当于人脑在人体中的作用,它控制着其他部件的运动。通过发出指令使其他部件发生响应,它是一种控制装置。在运动控制系统中还需要计算机的配合,通过编程软件在计算机中编制运动控制系统的控制界面及调用程序添加到界面中每个命令控件,与此同时运动控制卡的不能单独使用,控制卡
20、安装在计算机主机内,具体的安装步骤可以查看相关说明书。在运动控制系统中还有一种装置,它就是分线板,连接导线用途的,在这运动控制系统中所有的信号都是通过之间的接线来实现的,要确保路线的正确安装,使线路看起来清晰明了、不缠绕、不混乱。如果接线端口弄错会导致运动控制系统无法正确安装,甚至有可能会烧毁部件。运动控制系统中有开环和闭环两种控制方式,如图2-2所示的是开环控制系统,通过这个图,我们可以清晰的看到整个运动控制系统是单向的运动。在这个过程当中没有任何的反馈。在这种情况下,说明不需要对输出量进行检测,在我们日常的生活中,步进电机就是这种典型的开环控制系统的代表。这种开环控制系统价钱不高、但是精度
21、不怎么高,维修费用比较低。 图 2-2 开环运动控制系统的组成 如下图2-3就是闭环控制系统,通过这个图,我们可以清楚的看到整个运动控系统并不是单向的运动,在输出端有部分输出信号返回与输入值进行比较,这就是闭环控制系统。部分或者全部的输出信号通过返回到输入端信号处,与之进行比较,找出它们之间的信号误差,然后输出值逐渐向预定值靠近,缩小过程中的误差,得到更加的准确值。相比于开环,闭环就多了个反馈环节,使系统的输出值更加准确,减少外界干扰和系统内部误差,在我们日常生活中,伺服电机就是常用的闭环运动控制系统的代表。 图 2-3闭环运动控制系统的组成2.1.1 GT系列运动控制器 本次控制系统设计,就
22、是在GT控制卡的基础上进行的,它最多同时控制4根轴的运动。对于这次设计的两关节机械手,这个控制卡完全胜任。与此同时,控制卡给编程的人提供了一个动态链接库,里面有很多实用的函数。这大大的减少了我们的工作量,只需要熟悉并正确调用相关函数即可完成任务。 图2-4控制器中器件位置图 本次设计使用控制卡是GT-400-SV-PCI,这种运动控制卡包括四种运动模式:S-曲线模式、T-曲线模式、V-速度模式、电子齿轮模式。两轴协调直线和曲线运动。最值得一提是本次使用的GT400-SV-PCI运动控制卡是一种开放式数字控制方式,用户可以根据自己实际需要进行扩充,实现新的功能,控制卡外形如下图2-5所示。 图2
23、-5 GT-400-PCI运动控制卡2.1.2 伺服电机驱动器 伺服电机驱动器简单的说就是一种信号放大器,把放大后的各种信号用来控制伺服电机,它的作用相当于我们日常生活中变频器作用于马达一样。属于整个伺服系统的一部分,一般情况下是经过三种方式达到控制伺服电机的目的:对位置、速度和力矩。2.1.3 伺服电机 一般伺服驱动系统主要由以下几个部分组成:1.驱动装置,2.执行元件,3.传动机构,4检测元件及反馈电路【1】。伺服电机就是这个系统中的第二个部分,充当执行元件。它不仅可以控制速度,与此同时,还可以控制位置,精度十分准确,它在某种意义上就是一种信号转换元件。 伺服电机把电压信号转化为电机输出轴
24、所需的角位移和角速度。与此同时,通过齿轮齿条机构把轴本来的转动变成机械手关节的直线移动。至于移动多少距离,主要根据这个传动比来确定,伺服电机的后部有一个部件,那就是编码器,它的主要作用就是反馈。2.1.4 两关节机械手 两关节机械手是运动控制系统中的最后一环,它是使预先设置的轨迹产生的部件,但要实现正确的轨迹,是需要步骤的,首先我们要运用微软公司开发的VC6.0在计算机上编制运动控制系统的控制界面,并调用固高科技的动态链接库里的函数把它们添加到控制界面的命令控件中,然后导入到运动控制卡里,从而通过它向驱动器发出一系列的运动指令,接着就是用驱动器放大后的信号来控制伺服电机,从而控制机械手运动。两
25、关节机械手就是说这个机械手臂有2个自由度,可以在两个方向运动,至于手爪的夹紧和松开只是两个状态。在这其中,我们要把两关节和相应的二维坐标一一对应,形成一个正确的映射,使运动轨迹正确表达。2.2 安装步骤 图2-6 板卡与端子板之间连接图 1、将我们所用的控制卡导入程序后,再插入计算机的主机内。按照说明书所写步骤一 步步正确 的安装,一定要仔仔细细的检查,然后在连好线后 注意关掉电源,控 制卡要轻拿轻放,在安装之前使用者要认真的检查 设备是否接 地,就要看看接地的金属,防止有 静电损 坏这类的问题影 响我们所 用的GT系列运动控制卡,否则就有可能弄坏计算机和 我们用的运动控制卡,在安装的过 程中
26、要用到的工具 要提前 准备好,待安装好运动控 制卡后,装好计算机的 主机箱,重新启动电脑,查看板卡是否能无问题的来工作。 2、安装控制器的驱动通 讯。按照说明 书上的步骤仔仔细细的完成,要弄清计算机上安装的 位置,不要安装在其他不对的地方,否则就弄 不好安装 安装好之后不能 无问题运行程序。该部分会有一些光盘指导,按照上面的指导完成安装过程。 3、建立计算机的主机与板卡之间的联系。运行附带的GTCmdPCI_CH.exe 程序,如果能无问题运行的话,就说明我们的安装不存在毛病;如果有问题的话,那就需要多次检查和重新安装。 4、连接本次设计所用电机和相应的驱动器。连接驱动器和伺服电机这一步骤一定
27、要在驱动器和运动控制卡之前,查看伺服电机目的是看看有没有负载,保证这一安装过程中的安全。按照所给的说明书 指示的要求进行安装,在安装好了后一定不能忘的工作,那就是要测试伺服电机和它的驱动器。 5、连接我们用的控制卡和端子板。在安装它们之前,别忘了关闭电脑的电源,防止发生不测。仔细了解各个端口的作用,千万不能在带电的情况下随意的插拔接口。将两条电缆按照所给的要求连在相应的地方,不要弄错。 6、接线。 连接端子板电源 图 2-7 端子板的电源连接示意图 专用输入、输出连接方法 图2-8专用输入,输出连接图编码器输入连接方法 图2-9编码器输入连接示意图模拟输入连接方法,如下图 图2-10模拟的输入
28、连接示意图第三章 系统控制界面的制作及程序的编写3.1 VC+编程3.1.1 VC6.0介绍 Visual C+中的有相当多的功能,经过多年的变化和发展,VC+也发生了许多改变,当然它所具备的能力是越来越多了,值得一提的是,在VC+中增加了一个新的作用:MFC可视化的编程,它就是我们这次设计所用到的功能。由它的名字我们就可以知道,也就是说使用它就可以非常清晰明了看到的编写界面,不用再花时间去想象它应该有的种种情况。下面我们来动手看看VC+的MFC可视化编程,它所具备的一些基本的部分。首先我们就从一开始的地方说起,要实现一个某种功能的话,首先就要构建一个工程。VC在建立好界面时,它会自动生成许许
29、多多的东西,这些东西给编程序的人带来了福利,节省了我们的编程时间和精力。它的结构很清晰,能帮助我们理清一些头绪,带着我们慢慢的去了解这个编程软件,如下图4.1.1所示,在这个编程序的界面中又分为3个部分,第一部分是项目工作区,它有三个视图:类、资源、文件【2】;第二个部分,就是编程序的人写代码的地方了,我们在这里面,不仅可以写新的我们所需要的代码,与此同时,我们也可以修改以前的代码;第三个部分,这个地方是用作显示的,显示我们调试、运行之后的结果。如果出现一些什么错误和一些警告,都会出现在这里面了,当我们双击这个地方的错误提示之后,在我们编写代码的地方的左侧就会出现一个黑色的类似标签的东西,用来
30、显示错误在哪一行。当然,这仅仅是最基本的一些东西,这里面还有许许多多的要去琢磨。图3-1 V C+窗口界面我们本次设计仅仅是大体的学习一下VC+的建立过程和包含的最基本的内容。VC+这个软件中,MFC是一个极其有用的工具,由于其能够自动生成一些部分代码,所以降低了编写代码的复杂性和难度,而且能够与微软公司的一些应用程序相关联。用VC+来编写代码,如果有一定的C语言功底,因为这毕竟是在C语言上发展而来的,会更加轻松。但是它们中间也有着相当大的不同,包括编写用的语言的思路,函定义的方法,编写代码的不同等等。由于VC+的可移植性,它的适用性就很广,更重要的是VC+中的功能也变的很多了,比如加图片、滚
31、动条之类的,还可以进行自己个性设置,比如改变字体和字型等,改变字的颜色与对话框中控件的颜色,相比C语言有很大的优势,深入使用后会发现更多的且有实际作用的功能。3.1.2 控制界面的编制 当我们要编制控制界面时,我们第一步就是要建立这个编制的环境。 第一步,我们就需要打开VC 6.0这个软件,点击新建,就会出现下图4.1.2所示的那样,接着我们再点击projects这个选项,就会出现好多个类型项目,我们需要的是点击MFC AppWizardexe这个项目,接下来我们在对话框的左边填上我们所需创建工程的名字和保存的地方。写好这些之后,我们所要做的就是点击OK,那么接下来有会出现许多询问框,我们只需
32、默认就行了,只有在一个地方,我们要注意一下,那就是我们要创建的是一个对话框而不是文档类型的。图3-2 新建工程窗口 第二步,我们就要添加控制界面中的控件,首先我们就要了解这个控制界面要实现的功能,那么在这次设计当中,我们是在控制卡的基础上来进行两轴的运动控制系统的设计,我们在这个界面中就需要实现初始化(这包括板卡和轴的初始化)、回零(运行前,清除一些错误的状态)、单轴的点动(在这里,我们可以通过运动距离和运动速度这两个参数来控制点动)、多轴的联动(主要包括直线运动和弧线运动,对于弧线运动,界面中用两种圆弧插补的方式来绘制)、坐标映射、自定义轨迹、退出,运行。 我们添加控件的方式就是通过控件面板
33、,如下图4.1.3左侧的条形框,在这其中,我们要用到的是文本类、命令类、组合类。具体的添加步骤:点击面板上相应控件,在它的上面点击一下,就会出现。你可以进行许多操作,比如拖动到任意地方、缩改它的大小等。 在属性设置中,我们主要是对编辑框中的内容和命令框进行设置,这都是通过类向导这个项目进行,对于编辑框,我们点击右键,会有一些操作,我们选类向导,主要是对字符类型进行设置。对于命令按钮,我们要进行函数的选定,比如是通过单击或者双击进行运行,值域这其中代码的编写会在下一节详细介绍。 图3-3 界面初始窗口经过上面几步的设置,我们所需的控制界面已经大致成形。如下图3-4所示。 图3-4 控制界面3.2
34、 动态链接库和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-Li
35、nk,在 Object/Library modules 中输入 GT400.lib【5】。这样,动态链接库就可以被正确使用。3.2.2 GTCard类 在这个动态链接库的基础上,我借鉴了他人成果及自己努力下,创建了GTCard这个类,它就是把动态链接库的函数进行了打包,也就是把所有的功能集成,可以更方便的调用。 首先在插入那个选项下选择新建类,然后命名为GTCARD,之后在文件视图中会出现GTCARD.h和GTCARD.app两个文件。把写好的函数和程序分别放进去,接下来在界面源程序的头文件上添加GTCard.h,这样就能很方便的用它来编程。如下图3-6所示 图3-6 GTCard类 我在这个
36、程序中还使用了一些常数(宏定义),如下图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
37、.8 初始化程序3.3.2 回零程序 对于XY轴来说,每次进行运动之前都需要回零,我们主要调用的是Home_Zero这个函数,而这个函数回零的思想:首先判断当前轴的位置,然后进行正向运动,直到正极限位置,记下当前位置,然后反向运动,直到负极限位置,记下当前位置。然后系统会进行位置运算,就是这两个极限位置的绝对值差的一半就是零点位置。其次系统还会检测这个位置是否为零点,主要是通过霍尔元件来检测。程序如下图3.9所示 图3.9回零程序3.3.3 曲线模式 我们本次使用的运动控制卡,它给我们提供了4种运动模式。而我们常用的是曲线模式,曲线模式中又分为S形和梯形。因为曲线模式它的运动较为平缓,对元器件
38、的冲击较小,所以我们选用曲线模式。S-曲线这种模式,它有五个主要的参数,具体如下表3-1所示: 表 3-1 S形曲线参数列表 S形曲线模式下,它的速度曲线一般有7段,如下图3-10所示,但它是对称的,总的来说它的曲线段只有4种情况。在第一曲线段,它会以MAX_Acc作为加速的目标,与此同时,以jerk作为它的增加的量来加速,一直到它的Acc为我们之前设置的Max_Acc为止;第二段,是一段均匀加速的阶段,它的Acc是一成不变的,就是先前设置MAX_Acc;第三曲线段,它是变减速运动,它的Acc在不断地减少,而减少的幅度就是之前设置的jerk的负值,当Acc为零,也就是说这段速度达到最大时,这段
39、运动就结束了;第四曲线段,是一种速度不变的运动,保持最大速度不变。至于另外曲线段和前面的曲线段类似。 图3-10 S-曲线模式的速度曲线 有时S曲线模式中,它的第四曲线段可以没有。 在梯形曲线模式中,它主要由四个参数,如下表3.2所示。 表 3-2 梯形曲线参数列表 梯形曲线模式相比S形曲线模式而言较简单,它只有3个曲线段,分别为匀加速运动、匀速运动、匀减速运动。如下图3-11所示图3-11 梯形曲线模式的速度 在第一段内,是一 段 Acc不变的运动,它是以之前设定的Acc来运动,直到MAX_Acc;在第二段内,是一段速度不变的过程,它的Acc为零;第三段内,是一段速度均匀减少的过程,它是以之
40、前设定的Acc负值进行减 速,直到速度为零。 在一些情况下,也许还没达到最大设定值,这个运动就要开始减速,这样就没有第二曲线段。在梯形曲线模式这种控制方式下,任意时刻都可以更改速度和位置。 它相比于S曲线来说更加的自由,此时的速度曲线就如 图 3-12 所示。 图3-12 改变后速度曲线 3.3.4 点动程序 在我们实现单轴点动过程中,有一个JOG函数是需要我们调用的,它就是点动函数。在这个函数中有四个参数:第一个是点动的轴,如果我们要对哪个轴进行点动,我们就要把那个轴设为当前轴;第二个是点动的距离,这就是来设置我要点动多远;第三个就是点动的速度,这就是来设置在点动过程中以多快的速度来动;第四
41、个是点动的方向,对于一根轴,它有正反两个方向,我们可以设置往正向运动为+1,往负向运动为-1。 点动程序如下图3-13所示。 图3-13 点动程序3.3.5 停止程序 在单轴运动中,我们需要停止运动或者有时候会出现一些意外情况,就需要我们来设置一个停止按钮,来对这些意外的情况进行快速处理。本次使用的动态链接库中,给我们提供了两种停止函数,一种急停,另一种是平滑停止。函数如下表3-3所示。 表 3-3 停止函数列表 GT_AbptStp()这是一个紧急停止的函数,它让当前运动的那根轴立即停止, 同时将速度变为0。当想立即停止运动时,通常用这个函数。平滑停止,由它的字面意思就可以知道,这个停止它是
42、渐进式的过程,有一段减速过程。在曲线模式下,运行平滑停止这个命令后,运动速度会出现下图3-14所示 图3-14 曲线模式下平滑停止速度曲线图 具体的停止程序如下所示; 图3-15 停止程序3.3.6 退出程序 所有程序都运行完之后,我们所要做的就是退出这个程序。而退出程序只有一句代码,即CDialog:OnOK()。在我们退出之前,不能忘记得事情是得首先关闭各轴的运动和相关控制器。具体的退出程序如下所示 图3-16 退出程序 3.4 多轴协调运动3.4.1 坐标映射 对于本次XY两轴运动控制设计中,两轴的协调运动是这次设计的关键,协调运动包括直线运动和弧线运动,在我们进行轨迹运动前,首先就要进
43、行坐标映射。坐标映射的作用就是把各个运动轴对应到坐标系中,也就是把运动工作平台刻度化,有利于运动轨迹参数的设定,对于坐标映射,我们主要调用MapAxis()这个函数。程序如下所示。 图3-17 坐标映射 3.4.2 两轴直线插补 在坐标系中,在我们画直线时,是需要起点和终点的。一般情况下,起点有这么两种情况:我们选择一个起点,然后以这个起点开始画一条直线;要么就是以上一个轨迹的终点作为我们画直线的初始点,来画一条直线。在绘制直线时,我们需要用到的是这个函数LineXY(),用来直线插补。只要在函数设定终点就可以画一条直线,这条直线不仅是平行于坐标轴,也可以是平面内斜线。程序如下所示 图3-18 直线插补程序 3.4.3 两轴圆弧插补 在XY轴坐标系中绘制圆弧,本次设计使用的控制卡提供给我们两种绘制的方法,在这之前,我们先介绍一下圆弧插补的原理。 在基准脉冲插补中,应用较多的是逐点比较法和数字积分法【4】。在这,我们选择介绍逐点比较法,在这种方法中,主要有4个方面:第一个就是判别该点与圆心的距离是不是和程序里设置的半径相同,如果不同,那么当F0,