机电一体化运动控制器实验平台.docx
- 文档编号:10086159
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:34
- 大小:114.99KB
机电一体化运动控制器实验平台.docx
《机电一体化运动控制器实验平台.docx》由会员分享,可在线阅读,更多相关《机电一体化运动控制器实验平台.docx(34页珍藏版)》请在冰点文库上搜索。
机电一体化运动控制器实验平台
1绪论
1.1课题背景
运动控制起源于早期的伺服控制(Servomechanism)。
简单地说,运动控制就是对机械运动部件的位置、速度等进行实时的控制管理,使其按照预期的运动轨迹和规定的运动参数进行运动。
早期的运动控制技术主要是伴随着数控(CNC)技术、机器人技术(Robotics)和工厂自动化技术的发展而发展的。
早期的运动控制器实际上是可以独立运行的专用的控制器,往往无需另外的处理器和操作系统支持,可以独立完成运动控制功能、工艺技术要求的其他功能和人机交互功能。
这类控制器可以成为独立运行(Stand-alone)的运动控制器。
这类控制器主要针对专门的数控机械和其他自动化设备而设计,往往已根据应用行业的工艺要求设计了相关的功能,用户只需要按照其协议要求编写应用加工代码文件,利用RS232或者DNC方式传输到控制器,控制器即可完成相关的动作。
这类控制器往往不能离开其特定的工艺要求而跨行业应用,控制器的开放性仅仅依赖于控制器的加工代码协议,用户不能根据应用要求而重组自己的运动控制系统。
通用运动控制器的发展成为市场的必然需求。
由国家组织的开放式运动控制系统的研究始于1987年,美国空军在美国政府资助下发表了著名的“NGC(下一代控制器)研究计划”,该计划首先提出了开放体系结构控制器的概念,这个计划的重要内容之一便是提出了“开放系统体系结构标准规格(OSACA)”。
自1996年开始,美国几个大的科研机构对NGC计划分别发表了相应的研究内容[3],如在美国海军支持下,美国国际标准研究院提出了“EMC(增强型机床控制器)”;由美国通用、福特和克莱斯勒三大汽车公司提出和研制了“OMAC(开放式、模块化体系结构控制器)”,其目的是用更开放、更加模块化的控制结构使制造系统更加具有柔性、更加敏捷。
该计划启动后不久便公布了一个名为“OMACAPT”的规范,并促成了一系列相关研究项目的运行。
通用运动控制技术作为自动化技术的一个重要分支,在20世纪90年代,国际上发达国家,例如美国进入快速发展的阶段。
由于有强劲市场需求的推动,通用运动控制技术发展迅速,应用广泛。
近年来,随着通用运动控制技术的不断进步和完善,通用运动控制器作为一个独立的工业自动化控制类产品,已经被越来越多的产业领域接受,并且它已经达到一个引人瞩目的市场规模。
根据ARC近期的一份研究,世界通用运动控制(GeneralMotionControlGMC)市场已超过40亿美元,并且有望在未来5年内综合增长率达到6.3%。
目前,通用运动控制器从结构上主要分为如下三大类:
(1)基于计算机标准总线的运动控制器
它是把具有开放体系结构,独立于计算机的运动控制器与计算机相结合构成。
这种运动控制器大都采用DSP或微机芯片作为CPU,可完成运动规划、高速实时插补、伺服滤波控制和伺服驱动、外部I/O之间的标准化通用接口功能,它开放的函数库可供用户根据不同的需求,在DOS或WINDOWS等平台下自行开发应用软件,组成各种控制系统。
如美国Deltatau公司的PMAC多轴运动控制器和固高科技(深圳)有限公司的GT系列运动控制器产品等。
目前这种运动控制器是市场上的主流产品。
(2)Soft型开放式运动控制器
它提供给用户最大的灵活性,它的运动控制软件全部装在计算机中,而硬件部分仅是计算机与伺服驱动和外部I/O之间的标准化通用接口。
就像计算机中可以安装各种品牌的声卡、CDROM和相应的驱动程序一样。
用户可以在Windows平台和其他操作系统的支持下,利用开放的运动控制内核,开发所需的控制功能,构成各种类型的高性能运动控制系统,从而提供给用户更多的选择和灵活性。
基于Soft型开放式运动控制器开发的典型产品有美国MDSI公司的OpenCNC、德国PA(PowerAutomation)公司的PA8000NT。
美国SoftSERVO公司的基于网络的运动控制器和固高科技(深圳)有限公司的GO系列运动控制器产品等。
Soft型开放式运动控制的特点是开发、制造成本相对较低,能够给予系统集成商和开发商更加个性化的开发平台。
(3)嵌入式结构的运动控制器
这种运动控制器是把计算机嵌入到运动控制器中的一种产品,它能够独立运行。
运动控制器与计算机之间的通信依然是靠计算机总线,实质上是基于总线结构的运动控制器的一种变种。
对于标准总线的计算机模块,这种产品采用了更加可靠的总线连接方式(采用针式连接器),更加适合工业应用。
在使用中,采用如工业以太网、RS485、SERCOS、Profibus等现场网络通信接口联接上级计算机或控制面板。
嵌入式的运动控制器也可配置软盘和硬盘驱动器,甚至可以通过Internet进行远程诊断。
例如美国ADEPT公司的SmartController,固高科技公司的GU嵌入式运动控制平台系列产品等。
我国在运动控制器产品开发方面相对落后,1999年固高科技(深圳)有限公司在深圳成立,她是国内第一家专业开发、生产开放式运动控制器产品的公司。
其后,国内又有其他几家公司进入该领域,但实际上,大多是在国内推广国外生产的运动控制器产品,真正进行自主开发的公司较少。
“八五”期间,我国广大科研工作者也成功开发了两种数控平台和华中Ⅰ型、蓝天Ⅰ型、航天Ⅰ型、中华Ⅰ型等4种基本系统,这些系统采用模块化,嵌入式的软、硬件结构。
其中以华中Ⅰ型较具代表性,它采用工业PC机上插接口卡的结构,运行在DOS平台上,具有较好的模块化、层次化特征,具有一定扩展和伸缩性。
但从整体来说这些系统是数控系统,不是独立的开放式运动控制器产品。
目前,我国是世界上经济发展最快的国家,市场上新设备的控制需求、传统设备技术升级、换代对运动控制器的市场需求越来越大。
另外由于市场日益竞争的压力,系统集成商和设备制造商要求运动控制系统向开放式方向发展。
同时,经济型数控市场占有率正在逐渐减小。
在这样的形势下,我国可以抓住这一机遇,研制出具有自主知识产权,具有高水平、高质量、高可靠性的开放式运动控制器产品。
通用运动控制器在国内的应用及发展
自20世纪80年代初期,通用运动控制器已经开始在国外多个行业应用,尤其是在微电子行业的应用更加广泛。
而当时运动控制器在我国的应用规模和行业面很小,国内也没有厂商开发出通用的运动控制器产品。
1999年,固高科技(深圳)有限公司开始从事专业开发、生产开放式运动控制器产品。
国内生产厂商提供的产品分类
目前,国内的运动控制器生产厂商提供的产品大致可以分为三类:
(1)以单片机或微处理器作为核心的运动控制器
这类运动控制器速度较慢,精度不高,成本相对较低。
在一些只需要低速点位运动控制和对轨迹要求不高的轮廓运动控制场合应用。
(2)以专用芯片(ASIC)作为核心处理器的运动控制器
这类运动控制器结构比较简单,但这类运动控制器大多数只能输出脉冲信号,工作于开环控制方式。
这类控制器对单轴的点位控制场合是基本满足要求的,但对于要求多轴协调运动和高速轨迹插补控制的设备,这类运动控制器不能满足要求。
由于这类控制器不能提供连续插补功能,也没有前瞻功能(Lookahead),特别是对于大量的小线段连续运动的场合,如模具雕刻,不能使用这类控制器。
另外,由于硬件资源的限制,这类控制器的圆弧插补算法通常都采用逐点比较法,这样一来圆弧插补的精度也不高。
(3)基于PC总线的以DSP和FPGA作为核心处理器的开放式运动控制器的核心处理器,以PC机作为信息处理平台,运动控制器以插卡形式嵌入PC机,既“PC+运动控制器”的模式。
这样将PC机的信息处理能力有机的结合在一起,具有信息处理能力强、开放程度高、运动轨迹控制准确、通用性好的特点。
这类运动控制器通常都能提供多轴协调运动控制与复杂的运动诡计规划、实时的插补运算、误差补偿、伺服滤波算法,能够实现闭环控制。
由于采用FPGA技术来进行硬件设计,方便运动控制器供应商根据客户的特殊工艺要求和技术要求进行个性化的定制,形成独特的产品。
1.2课题的意义和培养目标
运动控制器是近年来出现的一种新型书空装置,与传统数控装置相比在开放性、用户二次开发等方面有着极大的优势。
GT400是一种通用运动控制器,它与PC计算机结合,可设计给予Windows的人机操作界面,同时利用其提供的底层控制,可构建满足特点需要的运动控制功能。
目标是通过对GT400运动控制器的二次开发,利用其底层功能设计一种基于PC的运动控制实验平台。
该题目不仅与机电专业主干课程(数控系统、伺服驱动、精密机械等)关系密切,同时又反映了机电遗体化技术的新发展。
对于加强学生对专业知识的综合应用,拓展知识面,培养起分析和解决实际问题的能力都有着重要的作用。
1.3课题的任务
(1)多坐标闭环、开环运动控制实验平台功能模块(软件)总体方案的拟定和系统框图。
(2)标准G代码、M代码前置预处理模块的设计和调试。
(3)多坐标闭环、开环运动控制实验模块的设计和调试。
(4)单轴多模式运动、电子齿轮运动实验模块的设计和调试。
(5)外部中断响应处理实验模块设计和调试。
(6)I/O功能开发及逻辑控制模块的设计和调试。
(7)绘制各主要模块的原理框图、程序流程图,编写设计说明书。
2硬件简介
2.1硬件的构成
2.1.1GT400的简介(功能)
固高公司生产的GT系列运动控制器,可以同步控制四个运动轴,实现多轴协调运动。
其核心由ADSP2181数字信号处理器和FPGA组成,可以实现高性能的控制计算。
它适用于广泛的应用领域,包括机器人、数控机床、木工机械、印刷机械、装配生产线、电子加工设备、激光加工设备等。
GT系列运动控制器以IBM-PC及其兼容机为主机,提供标准的ISA总线和PCI总线两个系列的产品。
作为选件,在任何一款产品上可以提供RS232串行通讯和PC104通讯接口,方便用户配置系统。
运动控制器提供C语言函数库和Windows动态连接库,实现复杂的控制功能。
用户能够将这些控制函数与自己控制系统所需的数据处理、界面显示、用户接口等应用程序模块集成在一起,建造符合特定应用要求的控制系统,以适应各种应用领域的要求。
(1)电机控制系统的基本组成
①运动控制器;
②具有PCI插槽的IBM-PC或其兼容机;
③STONE步进电机56D-B(两个);
④STONE驱动器SH208060N(两个);
⑤驱动器电源(+24V);
⑥+12V~+24V直流电源(用于接口板电源);
原点开关、正/负限位开关;
对于控制步进电机,运动控制器提供两种不同的控制信号:
正脉冲/负脉冲、脉冲/方向。
这样,控制器可以与目前任何类型步进电机驱动器配套使用。
在控制步进电机时,控制模式为开环控制,不需要编码器。
(2)系统原理
系统原理图2-1:
图2-1系统组成框图
采用GT系列运动控制器组成的控制系统典型连接见图2-2:
图2-2控制系统框图
2.1.2主要接口功能及连接
在建立控制系统时,将控制卡插入PC机的PCI插槽后,还需通过转接板和屏蔽线在计算机外部连接一个配套的端子板。
以后电机驱动器、各种外围设备及通讯的连接就在这块端子板了进行。
端子板的布局可见图2-3。
图2-3PCI系列运动控制器的外形结构
运动控制卡与端子板连接示意图可见图2-4
图2-4运动控制卡与端子板联接示意图
3系统构建
3.1系统的构建思想
在利用运动控制器进行二次开发之前,必须为其建立起相应的开发与控制环境。
要建立起这样一种环境,首先必须对我们所采用的开发平台进行具体的分析,也就是评估开发平台是否适用于进行运动控制器的二次开发。
在评估当中应注意以下几个方面:
3.1.1开发平台所用的编程语言
在GT400用户编程手册中所给出的几种编程语言都适用于作为运动控制器的开发平台。
当然,我相信其他的编程工具也是能够实现的,因为我们二次开发所用的是C++Builder,而不是用编程手册当中的任何一个。
从编程的实践角度来看,只要是以C++(包含C库)为语言的开发平台,基本上都能够用来作为二次开发的编程平台。
如果要区分控制质量的优劣性的话,我看也只在于程序设计当中所设计的控制方式和对基本函数调用的方式的不同而已,因为控制器的控制性能主要取决于它的基本控制函数,因而巧妙地对基本函数进行调用是提高控制性能的关键。
C++Builder是一个快速的开发工具,用它来编控制程序就比VC要方便得多,而且编程界面也是相当的友好。
当然,我并不否认其他的编程工具的优越性,这取决于不同的人对不同编程工具的熟悉程度和使用习惯。
3.1.2编程平台使用的方便性
我上面也稍微的提到了一点,在此我再强调一下,那就是我们所选用的编程平台一定要尽量是我们所最为熟悉的编程平台。
因为这样,我们所编出来的程序才会更容易调试,所出现的错误也更容易解决。
如果对所用的编程平台不熟悉的话,就算它有再好的功能,也是无法发挥出来的。
同时,还必须花大量的时间去熟悉它的编程方法和调试方法,这样的话会使你无法将主要精力集中到开发过程中去。
3.1.3对控制器的编程手册进行深入地了解。
上面提到我们本次开发所用的控制器是固高公司的运动控制器。
每一个公司在销售他们的产品同时都会给出相应的技术支持,这些技术支持是我们进行进一步开发的基础。
因此,对他们的技术支持进行详细地了解这一点很重要,为什么这么说呢,就用户编程手册来说,编程手册里面给出了控制器和各个控制轴的所有初始化函数,而这些初始化函数是建立控制环境的基础,每一次控制器和控制程序的运行都必须调用相应的初始化函数,否则运动控制器无法正常工作甚至不能工作。
当然,除此之外,基本控制函数也是绝对不可或缺的,因为所有的二次开发最终都归结到对基本控制函数的调用上。
因此,二次开发的质量取决于如何巧妙对基本函数进行调用以完成你所需要完成的控制功能,而不是取决于基本函数本身,因为固高公司所给出的基本函数所能完成功能非常丰富,无论是直线圆弧插补、中断处理、系统安全监控还是参数设定、输入输出处理或是状态读回都有相应的基本函数来实现。
3.2系统的组建
3.2.1以C++Builder为二次开发平台的运动控制界面
在固高运动控制器的编程手册中给出了三种常用的开发平台,但在程序设计过程当中我们发现,其实C++Builder同样适用于作为固高运动控制器二次开发平台。
而且在兼容性上由于C++Builder继承全部的C函数库,所以在整个二次开发的过程当中我们还没有遇到兼容性上的问题。
另一方面由于C++Builder是一种快速开发语言又具备强大的功能,同时编程界面也相当友好,程序编译起来相当的方便,这对于缺乏丰富的编程实践经验的我们来说,可以省去不少摸索时间。
这样我们就能够把主要的精力集中到运动控制程序设计上。
3.2.2C++Builder编程平台简介
C++Builder是Borland公司推出的功能强大、并已彻底解决了“千年虫”问题的应用程序开发软件。
C++Builder是一个全新的可视化的C++编程环境,它为我们提供了一个方便、快捷的Windows应用程序开发工具。
它使用了MicrosoftWindows图形用户界面的许多先进特性和设计思想,采用了弹性的、可重用的面向对象程序语言。
对于广大的程序开发人员来讲,使用C++Builder开发应用软件和数据库应用程序,可以大大地提高编程效率。
C++Builder实际上是C++语言的一种版本,但它与传统的C++语言有着很大的不同。
一个C++Builder程序首先是应用程序的框架而这一框架正是应用程序的“骨架”。
在骨架上即使没有附着任何东西,也仍然可以严格地按照设计运行。
程序员的工作只是在“骨架”中加入自己的程序。
缺省的应用程序是一个空白的窗体,我们可以运行它,结果得到一个空白窗口。
这个窗口具有Windows窗口的全部性质:
可以放大缩小、移动、最大化和最小化等。
C++Builder是非常容易使用的编程工具。
C++Builder支持全部的高级C++特性,例如模板、名字空间和操作符重载,此外,C++Builder完全支持全面的WindowsAPI函数,例如割边(cutting-edge)函数DirectX、OLE自动化和ActiveX。
使用C++Builder编写的程序在代码的大小和性能上与使用OWL和MFC编写的代码大致相当的。
那些认为C++Builder难以完成一些特殊的任务的观点是错误的。
任何可以使用VisualBasic、PowerBuilder、BorlandC++或VisualC++可以完成的任务都可以用C++Builder来完成,甚至在某种程度上可以完成得更好,也更加艺术。
快速开发工具可能会给人留下C++Builder功能不全的错误印象。
事实上,除了使用起来容易,设计起来更方便快捷以外,C++Builder完全具备OWL和MFC的全部功能。
3.3系统方案设计
运动控制器是10000个脉冲转一圈。
运动控制器的伺服周期是200微妙。
我们决定采用闭环控制并且设计出来的控制系统界面必须清晰,操作方便并且用户可以直接在界面上编写数控程序,也可以直接调用已写好的程序直接运行。
为了界面看起来美观,所以我们将轴的坐标位置显示和一些主要的按钮放在界面右边。
其他功能采用模块化的界面。
总体界面框图见图3-1。
图3-1系统界面框图
3.3.1界面介绍
现将运动控制部分分成以下几个模块:
(1)启动页见图3-2
图3-2启动页
(2)参数设置模块
这个模块包括设定系统必须的参数,如:
插补周期、编码器的方向、各轴的行程极限和PID等参数的设置。
界面见图3-3和图3-4。
图3-3一般参数设置
图3-4PID参数设置
(3)单轴运动模块
这部分主要是单轴的手动进给和自动进给。
包括增量式手动进给、连续式手动进给、回零、S-曲线控制模式、梯形曲线控制模式、速度曲线控制模式、电子齿轮模式及PID参数的设置对系统的影响。
界面见图3-5和图3-6。
图3-5手动进给
图3-6自动进给
(4)多轴运动模块
这部分包括直接插补运动和NC代码控制运动。
直接插补里面可以实现XY直线插补、XY圆弧插补(圆心角度)和XY圆弧插补(终点半径)。
如果你要继续插补可以给编辑框里输入需要插补的坐标,它就会自己执行你要的插补。
NC代码控制运动是根据用户给定的参数能自动实现预定的轨迹,同时也能运行从G代码编译过来的的参数。
这个模块可运行单段轨迹,也可运行多段连续轨迹。
轨迹就显示在本页面上可以一目了然。
界面见图3-7和图3-8。
图3-7直接插补
图3-8自动插补
(5)输出输入控制模块
这部分可以完成运动错误检测及状态恢复、驱动器报警处理、限位状态处理和辅助功能处理。
界面见图3-9。
图3-9输入输出控制
(6)状态监视模块
这部分可以显示单轴的运动状态和多轴运动状态。
在这个界面上我们可以看到那个轴在哪个运动模式下运动,命令是否有错误,运动是否完成,伺服周期是否太大,限位开关是否动作,多轴运动是否异常,立即插补运动是否开始和缓冲区是否空等状态。
界面见图3-10和图3-11。
图3-10单轴状态监视
图3-11多轴状态监视
(7)帮助模块
主要介绍系统的界面、功能和操作要注意的事项。
该设计主要包括运动控制、平台界面和硬件连线三大部分的设计。
在本次设计中,我主要负责单轴运动模块、多轴运动模块、NC代码预处理模块中的程序设计、信息显示模块和帮助模块。
界面见图3-12。
图3-12帮助
4单轴运动
4.1初始化
在使用运动控制器之前,我们必须对它进行必要的初始化和参数设置,否则控制器无法工作。
4.1.1错误处理函数
为了保证程序安全可靠的运行,用户必须在程序中加一个错误处理函数。
用户在调试程序的时候可以检测每一个函数的返回值,以判断命令的执行状态。
并建立必要的错误处理机制,保证程序安全可靠的运行。
运动控制器的命令状态寄存器提供命令出错的详细原因,主机可通过调用命令GT_GetCmdSts()得到命令出错的原因。
4.1.2运动控制器初始化
运动控制器必须要初始化。
运动控制卡有ISA和PCI两种。
我们实验室用的是PCI卡。
初始化的函数有
GT_Open()打开运动控制器设备
GT_Reset()复位运动控制器
GT_SetSmplTm(200)设置控制器周期为200us
GT_Axis
(1)设置1轴为当前轴
GT_SetIntrMsk(0)设置当前轴中断屏蔽字
4.1.3专用输入信号参数设置
我们在使用过程中有限位开关和编码器。
所以我们就必须设置限位开关有限电平和编码器方向(仅SV卡),我们就要用到专用输入信号参数设置。
函数如下:
GT_LmtSns(0)设置1—4轴正、负限位开关为高电平触发
GT_EncSns(0xF)设置编码器方向
4.1.4运动控制轴初始化函数
如果要想使轴动起来就必须对轴初始化。
运动控制卡分为SD、SE、SG、SP和SV卡。
实验室里的是SV卡,所以我们必须得设置PID参数。
其函数如下:
GT_ClrSts()清除当前轴不正确状态
GT_CtrlMode()设置为输出模拟量
GT_CloselosLp()设置为闭环控制
GT_SetKp(10)设置比例增益为10
GT_SetKi(6)设置积分增益为6
GT_SetKd(8)设置微分增益为8
GT_SetKvff(0)设置速度前馈为0
GT_SetKaff(0)设置加速度前馈为0
GT_SetMtrBias(10)设置输出零点偏移值为10
GT_AxisOn()驱动使能
4.1.5坐标映射
要使相应的运动映射到相应的轴上我们就要调用GT_MapAxis(),从而建立各轴的运动和要求的运动诡计之间的运动学传递关系。
运动控制器根据坐标映射关系,控制各轴运动,实现要求的运动轨迹。
具体的程序可以参考固高公司的编程手册。
4.2运动模式
4.2.1S—曲线控制模式
S—曲线控制模式的速度、加速度、加加速度的曲线见图4-1。
图4-1S—曲线控制模式速度÷加速度和加加速度曲线
其所有的函数如下:
GT_PrflS()设置为S—曲线控制模式
GT_SetJerk(0.00001)设置最大加加速度为0.00001
GT_SetMAcc(0.01)设置最大加速度为0.01
GT_SetVel(10)设置其速度为10
GT_SetPos(1000000)设置其目标位置为1000000
4.2.2梯形曲线控制模式
梯形曲线控制模式速度曲线图见图4-2。
图4-2梯形曲线模式的速度曲线
其所有的函数如下:
GT_PrflT()设置为梯形曲线模式
GT_SetAcc(0.01)设置加速度为0.01
GT_SetPos(1000000)设置其目标位置为1000000
GT_SetVel(10)设置其速度为10
4.2.3速度曲线控制模式
其所有的函数如下:
GT_PrflV()设置为速度控制模式
GT_SetAcc(0.01)设置加速度为0.01
GT_SetVel(10)设置其速度为10
4.2.4电子齿轮控制模式
其所有的函数如下:
GT_Axis
(1)设置当前轴为1轴
GT_PrflG
(2)设置为电子齿轮模式并设主轴为2轴
GT_SetRatio(-2)设置电子齿轮传动比为-2
不过在使用电子齿轮控制模式的时候一定要先让当前轴以某种模式转动起来后再启动电子齿轮模式。
要不然电子齿轮模式不起作用。
4.2.5手动进给
手动操作是模仿CNC系统的手动操作。
它可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机电 一体化 运动 控制器 实验 平台