基于固高运动控制卡数控系统设计_第1页
基于固高运动控制卡数控系统设计_第2页
基于固高运动控制卡数控系统设计_第3页
基于固高运动控制卡数控系统设计_第4页
基于固高运动控制卡数控系统设计_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

淮阴工学院毕业设计说明书(论文) 第 59 页 共 59 页1 绪论11 运动控制技术基础1.1.1 运动控制系统简介运动控制起源于早期的伺服控制,简单地说,运动控制就是对机械运动部件的位置、速度等进行实时的控制管理,使其按照预期的轨迹和规定的运动参数(如速度、加速度参数等)完成相应的动作。实际应用中,运动控制系统是由运动控制器、功率放大驱动器、伺服电机、起反馈作用的传感器、加上一些传动机械系统部件组成。运动控制器是以中央逻辑控制单元为核心、以传感器为信号元件,以电机/动力装置和执行单元为控制对象的一种控制装置。运动控制系统通常有开环控制和闭环控制两种形式。图1-1为开环运动控制系统的典型构成。在开环控制系统中,系统的输出量对控制作用没有影响,既不需要对输出量进行测量,也不需要将输出量反馈到系统的输入端与输入量进行比较。采用步进电机的位置控制系统就是开环控制系统的例子。步进驱动与控制器只是按照指令位置运动,不必对输出信号(即实际位置)进行测量。 在闭环控制系统中,作为输入信号与反馈信号之差的作用误差信号被传送到控制器,以便减小误差,并且使系统的输出达到希望的值。闭环控制系统的优点是采用了反馈,因而使系统的响应对外部干扰和内部系统的参数变化均不敏感。这样,对于给定的控制对象,有可能采用不太精密且成本较低的元件构成精确的控制系统,采用交流伺服电机的位置控制系统(如图1-2所示)就是闭环控制系统的一个例子,安装在电机轴上的编码器不断检测电机轴的实际位置(输出量),并反馈回伺服驱动器与参考输入位置进行比较,PID调节器根据位置误差信号,控制电机正转或反转,从而将电机位置保持在希望的参考位置上。1.1.2 运动控制器运动控制器是以中央逻辑控制单元为核心、以传感器为信号元件,以电机/动力装置和执行单元为控制对象的一种控制装置,主要用于对机械传动装置的位置、速度进行实时的控制管理,使运动部件按照预期的轨迹和规定的运动参数完成相应的动作。与传统的数控装置相比,运动控制器具有以下特点:(1)功能更加强大,可以实现多种运动轨迹控制,是传统数控装置的换代产品;(2)结构形式模块化,可以方便地相互组合,建立适用于不同场合、不同功能需求的控制系统;(3)操作简单,在PC上简单编程即可实现运动控制,不一定需要专门数控软件。目前,运动控制技术由面向传统的数控加工行业专用运动控制技术而发展为具有开放结构、能结合具体应用要求而快速重组的先进运动控制技术。与此相适应,运动控制器从以单片机、微处理器为核心或以专用芯片(ASIC)为核心处理器的运动控制器,发展到了基于PC总线的以DSP和FPGA作为核心处理器的开放式运动控制器1。这种开放式运动控制器,充分利用DSP的计算能力,进行复杂的运动规划、高速实时多轴插补、误差补偿和运动学、动力学计算,使得运动控制精度更高、速度更快、运动更加平稳;充分利用DSP和FPGA技术,使系统的结构更加开放,可根据用户的应用要求进行客制化的重组,设计出个性化的运动控制器。基于PC总线的开放式运动控制器已成为当今自动化领域应用最广、功能最强的运动控制器。12 开放式数控系统简介1.2.1 开放式数控系统的典型结构随着工业PC机的高速发展,虽然基于PC的开放式数控系统的价格大幅度降低,但是它的可靠性却大为提高,利用PC的高速数据处理能力,原来由硬件完成的功能可由软件来代替实现,而且借助于PC技术可方便地实现图形界面、网络通讯,而且随计算机技术发展而升级换代,其初步具有了良好的开放性,因此以工业PC机为核心的控制系统已经被工业控制领域所接受,基于PC机的开放式数控系统已成为数控技术发展的一个重要趋势。基于PC机的开放式数控系统大致可分为三种类型,其基本结构如下:(1)NC+PC主板结构 此数控系统把PC机作为NC的部件嵌入数控系统当中,用内部总线相连接,PC和NC连接在一起构成前、后台结构,形成多微处理器数控系统。这种结构的NC部分是传统的数控系统,用户无法进入到数控系统的核心,只能利用PC丰富的软件资源,满足开放性要求。这种结构的优点是原来的NC不必改动,既保持了原来NC系统的功能,又具有数据传送速度快、系统响应时间短等特点,缺点是不能充分发挥PC机的潜力,开放性受到一定程度的限制,系统造价无法降低,这类数控系统要么提供PC机的前端接口,要么直接将PC机的母板嵌入NC中。各知名的数控系统制造商主要应用此种结构的数控系统,原因是这些制造商既不愿放弃传统成熟的技术,而又需要PC机的柔性和开放性,于是采用了这种折衷的解决方案。因为计算机技术的发展,硬件的标准化和成本不断降低,这种开放式数控系统结构只是个过渡。(2)PC+运动控制板结构 此结构的数控系统是在通用PC机的扩展槽中插入运动控制卡或整个CNC单元(包括内嵌式PLC)。PC机实现文件管理、用户接口以及通信等非实时部分的功能,实时控制(机床的运动控制和开关量控制等)由插入PC扩展槽中的CNC单元或运动控制卡来承担。这种开放式数控系统目前是较为先进的,该结构的数控系统核心部分是专用的运动控制卡。运动控制卡通常选用高速DSP作为CPU,具有很强的运动控制功能,因为它本身就是一个数控系统,所以可以单独使用,它开放的函数库供用户在Windows平台下自行开发构造所需的控制系统。目前这种结构被广泛应用于开放式数控系统的开发中。(3)全软件型结构 在这种结构的开放式数控系统中,CNC的全部或大部分功能均由PC机承担,并通过装在PC扩展糟中的驱动接口卡对伺服驱动进行控制。在PC机中采用实时操作系统或对操作系统进行实时功能的扩展,数控系统中所有的实时任务和非实时任务均由PC机完成,如编译、解释、插补和PLC控制等。这是一种理想的开放体系结构的数控系统,CNC软件全部装在计算机中,而硬件部分仅是计算机与伺服驱动和外部I/O之间的标准化通用接口,能提供给用户最大的选择性和灵活性2。1.2.2 以“PC+运动控制卡”为基础构建开放式数控系统以及发展状况“NC嵌入PC”型系统的性能主要取决于运动控制卡,因此卡的设计成为系统实现的关键。构成运动控制卡的方案主要包括基于单片机、基于专用控制芯片和基于数字信号处理器(DSP)三种。基于DSP的运动控制卡,可以实现复杂的控制算法和功能,与前两种运动控制器产品相比,它兼有DSP处理速度快和PC平台便于实现开放式结构的优点,是一种高精度、高速度、多轴联动、体积小、集成度高的新型运动控制卡,可以满足多轴联动的数控机床、机器人等高性能控制系统的需求3。以PC机和运动控制卡为基础构建开放式数控系统硬件平台,方便、快捷。由于运动控制卡是标准化模块化产品,用户或生产厂商只需根据具体需求,选配合适的PC机、运动控制卡和执行单元模块,进行硬件系统连接,即可快速完成开放式数控系统的硬件平台构建,结构如图1-3所示。市场上应用较多的运动控制卡国外产品为美国Delta Tau Data Systems公司的PMAC运动控制卡。其Advantage系列PMAC-NC控制器可以控制48轴运动,还有TUR BOPMAC、PMAC2(第二代PMAC)、UMAC(3U结构)等采用最新技术的控制器,最多可以实现128轴的运动控制。一些厂家和研究机构对PMAC系统进行了开发和应用,主要用于数控机床、各类机器人、在线检测及加工、卫星的定位跟踪、全电动注塑机及各种机床的改造等,都已取得比较理想的效果。著名的哈勃望远镜镜面就是用PMAC系列轴卡系统来控制研磨的。上海磁悬浮列车高架钢梁的设计,需要使用6轴控制卡进行加工。国内也有许多公司和科研机构对基于DSP的运动控制卡进行了研制,例如固高公司、摩信公司等,其产品也得到了一定范围的应用。其中,深圳摩信科技有限公司独立开发的MCT8000系列运动控制器,其CPU采用美国TI公司的TMS320C31浮点DSP,可通过ISA、PCI标准总线或USB通用串行总线与主控机连接。带有l32通道PWM输出,步进电机控制,伺服更新速率最高可以达到每轴10us,可编程设置也可在线修改,32通道可编程数字输入/输出接口。近两年,深圳固高公司相继推出了基于DSP和FPGA的运动控制卡包括GTGE系列和HG系列的轴控制卡,其中刚刚研制成功的GH-800型控制卡是最先进的轴控制卡。GH-800运动控制器能够控制8个伺服轴或4个步进轴,并可实现伺服轴与步进轴的任意组合。控制信号的输出有多种形式,可为模拟量、脉冲或PWM。用户可通过控制器的扩展口实现最多达16轴的控制,但成本很高。尽管目前国内己有一些较高档的运动控制卡,但是与国外的运动控制卡相比还存在一定的差距,主要的缺陷有:(1)不支持目前比较先进的NURBS样条曲线插补控制。运用NURBS曲线插补可以进行三次以上的轨迹计算,从而提高运动的速度和精度。(2)控制系统的封闭性使它的扩充和修改极为有限,造成用户对供应商的依赖,并难以将自己的专门技术、经验集成于运动控制卡内。此外,专用的硬软件结构也限制了系统本身的持续开发,使系统的开发投资大、周期长、风险高、更新换代慢,不利于运动控制技术的进步4。13 本课题研究的目的、意义及内容安排1.3.1 本课题研究的目的及意义雕刻机的数控系统是数控雕刻机的控制核心,其控制功能的强弱、控制性能的优劣直接关系到数控雕刻机的加工质量与加工效率,对整个雕刻机的性价比和市场竞争力都至关重要。但目前国产雕刻机使用的数控系统在性能和价格上不能很好地统一,成为影响国产数控雕刻机市场竞争力的制约因素之一。为此,研究开发具有良好性价比的雕刻机数控系统具有重要的意义。经过调研分析国内外数控雕刻机现状和市场需求的基础上,采用“高性能运动控制器”为核心研制开发新型雕刻机数控系统,以进一步提高雕刻机数控系统的性价比,以优良的控制性能和较低的价格进一步增强雕刻机的市场竞争力,并为雕刻机最终用户改善产品质量、提高生产效率、节约生产成本提供有效手段。本课题主要研究目的体现在以下几个方面:(1)提高雕刻机整体可靠性、稳定性,降低成本,开发基于软件控制的雕刻控制系统,依靠和发挥软件技术优势,提高系统性能,加快产品的开发、升级周期。(2)通过提高数控系统的插补运算速度和精度,处理好CAM软件生成的微小直线段间的自动加减速控制,提高控制速度的平稳性,实现高速高精度雕刻加工。(3)模块化设计,将雕刻机从软、硬件结构上按功能划分模块,各功能模块相对独立,可以分别研究、发展和完善或者引用,通过标准接口组成系统。(4)柔性化设计,提高产品应用功能的灵活性,适应用户多样化的需求,根据最终用户的要求,进行定制或现场方案解决。1.3.2 本课题的内容安排本课题主要研究内容是:固高GT系列运动控制器的有关性能参数的分析与研究;雕刻机数控系统的总体方案设计与规划;研究一个功能强大、人机界面友好的数控系统控制软件;实现开放式数控系统程序界面。本论文的总体安排如下:第一章 绪论第二章 数控雕刻机系统的总体结构第三章 数控雕刻机系统控制软件的模块设计第四章 数控系统软件开放式功能的实现第五章 运动控制系统的研究及程序图形界面的实现2 数控雕刻机系统的总体结构数控雕刻机作为一种专用的数控机床,尽管有多种类型,但从工作原理和控制功能上与数控铣床极为相似,同样,雕刻机数控系统的原理和功能也类似于铣床数控系统。但由于雕刻加工通常采用单点成形,成形面积小、效率低,导致加工刀轨很长。因此,为提高加工效率,对机床的运动快速性要求更高。由此可见,雕刻机数控系统在控制性能上对控制精度和运动快速性较一般铣床控制具有更高的要求5。21 系统方案设计2.1.1 系统设计要求针对数控雕刻机的加工特点和国内外同类产品的特点,围绕市场调研提出的雕刻机数控系统的性能要求,在充分论证的基础上,对雕刻机数控系统的硬、软件总体方案进行设计、规划。对开放的雕刻机数控系统归纳出如下功能、性能要求:(1)运动控制 本控制系统采用直角三坐标数控雕刻机,基本控制功能是实现X、Y、Z三个坐标轴的运动控制,具体包括X、Y、Z三轴联动直线插补运动和其中任意两轴的圆弧插补运动控制。(2)速度控制 运动的快速性是评价雕刻机数控系统性能优劣的关键指标之一。因为数控雕刻机的加工特点是加工面积小、累计运动轨迹长、启停频繁,不仅要求指令运动速度高,而且要求快加速,以提高雕刻加工的平均运动速度,提高加工效率。(3)数控雕刻程序的输入和预处理 完成数控雕刻程序的读入和预处理,提取出数控加工所需的有用信息。输入为数控雕刻的代码文件,输出为雕刻代码文件经分析以后得到的命令集和数据集。(4)主轴控制 主轴通过变频调速,转速可在042000rpm范围任意调节。较宽的调速范围便于使用户根据不同的情况和加工切削深度对主轴转速进行调节。一般,高主轴转速可提供较高的刀具切削速度,有利于改善雕刻刀具的切削能力,获得较好的零件表面光洁度;但有时受加工零件的材质、刀具等因素限制,只能采用低速加工,避免影响刀具寿命。(5)控制精度 为了使系统能够具有较高的性价比,满足该型雕刻机高速高精度的控制需求,驱动控制系统采用交流伺服控制,规划定位精度为0.0lmm,重复定位精度为0.005mm。(6)指令格式 雕刻机加工控制程序指令格式最常用的有HPGL和GM两种。为使系统能具有广泛的适应性,必须能够兼容以上两种指令格式,即能自动识别和解释HPGL和GM两种格式的加工文件。(7)PLC功能 为提高雕刻机的辅助控制功能,控制系统需具有PLC功能,通过开关量I/O实现辅助功能的输入和输出操作控制,如S、M功能控制、冷却液开关控制、气动卡具控制等。(8)经济性 为使雕刻机系统具有较好的性价比和市场竞争力,控制系统的硬、软成本应尽可能低,且系统功能强大、性能稳定、加工效率高、质量好6。2.1.2 系统总体方案设计本雕刻机系统总体方案设计的任务是围绕系统的设计目标,拟定系统的硬件、软件体系结构、确定系统的硬软件划分和开发策略。总体方案制定得合理与否不仅将直接影响到系统是否能够达到预期的性能指标,还将影响到系统的工作可靠性、开发周期与成本以及系统的后续可维护性、可扩展性等诸多方面。分析本系统的设计指标可知,其目标是要设计开发一套性价比较高的高速高精度的数控雕刻机系统。为此,本系统首先需从速度方面入手,重点要解决好运动的快速性问题,同时兼顾系统的制造成本,使硬件造价控制在预期的范围内。根据现有数控技术的发展水平,目前提高数控系统处理速度的途径有以下几种:(1)由高性能通用CPU,如X86、Pentium等组成的工控板,该方案往往采用实时操作系统,可以直接控制底层硬件,所以具有相应速度快、多轴联动和同步性好等优点,因此可以获得较好的系统性能。但系统中的底层功能模块必须自行开发,工作量大,开发周期长。另外,控制板价格也较贵,存在性价比的问题。(2)高速运动控制芯片,该方案利用高速控制芯片完成插补、升降速等高速处理,读写即可。但其缺陷在于,开发人员无法针对实际系统需求更改、选用合适的插补等控制算法;而且高速运动控制芯片价格昂贵,所以应用尚不太广泛。(3)采用DSP等高性能单片机替代高速运动控制芯片,利用DSP的高速处理能力,开发合适的功能软件,完成高速运动控制所需的各种运算和控制任务。虽然该方案比方案二的开发难度有所增加,但有利于增强系统开发的灵活性,易于多轴联动控制、实现专用PLC的功能,还可以提高技术的保密性。另外,此类芯片属于通用芯片,价格比较合适,性价比也不错,但采用此种方案须在运动控制所需的各种运算和控制任务方面投入大量的精力,必会增加更多成本。(4)PC十高速运动控制卡,此方式采用通用PC机来完成系统实时性要求不高的任务,而插补计算、速度控制、位置控制等实时控制要求高的任务由高速运动控制卡完成,因此解决了方案三的开发难度问题。由于PC机的软、硬件资源非常丰富,各种应用功能不断升级和加强,所以此种方案可以有效地提高系统处理速度,而且开发过程简便。目前运动控制卡价格也不是很贵,种类也很多,可根据设计要求进行选配,国产运动控制卡近几年发展也很快,性能也稳定,性价比较高。通过对以上高速数控方案的性能、实现难度、工作量和成本的综合比较,本系统采用“PC+高速运动控制卡”研究高性价比的雕刻机数控系统。结合雕刻机的功能需求和运动控制卡的资源与性能,拟定了雕刻机数控系统的总体控制系统框图(图2-1所示)。它主要由PC机、基于DSP+FPGA的高速运动控制卡(PCI总线)和交流伺服驱动系统三部分组成的控制系统。在整个控制系统中,运动控制卡是数控系统的核心(作为下位机)用来完成数控系统中的插补运算、输出脉冲的分配,发挥DSP高速计算性能,解决雕刻机运动控制过程中的高速、实时信息问题。另外,基于DSP+FPGA的运动控制卡还需对外部控制信号不断查询,如机床各轴的限位信号、控制主轴和进给速度的模拟信号等,并根据不同的外部信号完成相应的控制操作。人机交互界面是机床和操作人员的一个纽带,主要在PC/IPC(作为上位机)中实现,利用PC机的各种软硬件资源,开发出界面友好的雕刻机控制软件,完成雕刻机的各种参数的设置、加工状态显示、刀路轨迹图形显示等有关信息。交流伺服驱动系统,用来接受运动控制卡发送过来的有效脉冲信息或模拟电压信号,然后驱动伺服电机的旋转带动滚蛛丝杆,进而驱动雕刻机的机械滑台,完成相应的差补、控制、加工等动作。22 数控雕刻机的控制原理 雕刻机数控系统的控制原理结构,如图2-2所示。研究开放式数控系统的主要目的之一是解决变换频繁的需求与封闭控制系统之间的矛盾,从而建立统一的、可重构的系统平台,增强数控系统的柔性,降低再次开发的难度。长期以来,ONC产生三种结构类型:专用数控系统中简单嵌入PC技术,即NC+PC型,属于初步开放的数控系统,开放性受到限制,这类系统一般功能强大,但结构复杂、价格昂贵;采用PC机为硬件平台的数控系统,由PC机加上开放体系结构运动控制器构成,即PC+NC型,能够充分保证系统性能,软件通用性强,编程处理灵活;SOFT型开放式数控系统是一种最新开放体系结构,它提供给用户最大的选择性和灵活性,它的CNC软件部装在PC中,而硬件部分仅是PC与伺服驱动和外部I/O之间的标准化通用接口,用户可以在PC多种操作系统平台上,利用开放的CNC内核,开发所需的各种功能,构成各种类型的高性能数控系统,与前两种数控系统相比,SOFT型数控系统具有高的性价比,因而具有生命力,但由于系统庞大复杂,目前大多都处于研制开发阶段7。 本雕刻机数控系统采用的是“PC+NC“结构。PC为上位机,由最终用户通过人机交互界面进行操作控制;NC采用的是基于数字信号处理器(DSP)和大规模逻辑可编程器件(FPGA)为基础的固高GT400SVPCI运动控制器为下位机,它接受来自上位机的应用程序指令,按照设定的运动模式,完成相应的实时运动规划和向驱动器发出相应的运动指令。这样将PC机的开放性和信息处理能力与运动控制器的运动轨迹控制能力有机地结合在一起,具有信息处理能力强、开放程度高、运动轨迹控制准确、通用性好的特点,而且还可以利用第三方软件资源完成用户应用程序的开发,将生成的应用程序指令通过PC总线传输给运动控制器。所有这些还在很大程度上提高了现有加工制造的精度、柔性,缩短新产品的研发周期和应付市场需求变化的能力。23 固高GT系列运动控制器2.3.1 简介固高科技(深圳)有限公司生产的GT系列运动控制器,最多可以同步控制四个运动轴,实现多轴协调运动。其核心由ADSP2181数字信号处理器和FPGA组成,可以实现高性能的控制计算。它适用于广泛的应用领域,包括机器人、数控机床、木工机械、印刷机械、装配生产线、电子加工设备、激光加工设备以及PCB钻铣设备等8。GT系列运功控制器以IBMPC及其兼容机为主机,提供标准的ISA总线和PCI总线两个系列的产品。作为选件,在任何一款产品上可以提供RS232串行通信和PC104通信接口,方便用户配置系统。运动控制器提供C语言函数库和Windows动态链接库,实现复杂的控制功能。用户能够将这些控制函数与自己控制系统所需的数据处理、界面显示、用户接口等应用程序模块集成在一齐,建造符合特定应用要求的控制系统,以适应各种应用领域的要求。2.3.2 电机控制的基本组成基本电机控制系统有以下部分组成:运动控制器;具有ISA/PCI/PC104接口的PC主机;具有增量式编码器的伺服电机或步进电机;驱动器;驱动器电源;+l2V/+24V直流电源(用于接口板电源);原点开关、正/负限位开关。制伺服电机既可以选择交流伺服电机也可以选择直流伺服电机。控制伺服电机时,控制器输出+/-10V模拟电压控制信号。选择伺服电机时,应选配其相应的伺服驱动器及配件。对于控制步进电机,运动控制器提供两种不同的控制信号:正脉冲/负脉冲、脉冲+方向。这样,控制器可以与目前任何类型步进电机驱动器配套使用。在控制步进电机时,控制模式为开环控制,不需要编码器。2.3.3 GT400SV运动控制卡的功能固高公司生产的GT400SVPCI可以同步控制4个轴,实现多轴协调运动。其核心由ADSP2181数字信号处理器和FPGA组成,可以实现高性能的控制计算。控制卡同时提供了C语言函数库和Windows下的动态链接库,刻实现复杂的控制功能。主要功能如下:(1)PCI总线,即插即用;(2)可编程伺服采用周期,4轴最小插补周期为200us,单轴点位运动最小控制周期为25us;(3)4路16位分辨率模拟电压输出信号或脉冲输出信号,模拟量输出范围:-10+10V,每路可独立控制,互不影响;(4) 4路四倍频增量编码器输入,作为各轴反馈信号输入,互不影响;(5) 四轴协调运动,24轴直线插补,任意2轴圆弧插补,具有连续插补功能;(6) 每轴2路限位开关信号、1路原点信号及1路驱动报警信号输入;(7) 没轴1路驱动使能信号、1路驱动复位信号输出;(8) 运动方式:单轴点位运动、直线插补、圆弧插补、速度控制模式;(9)PID(比例积分微分)数字滤波器,带速度和加速度前馈,带积分限值、偏差补偿和低通滤波器;(10)支持DOS、Windows操作系统,提供底层函数库,可用DOS、VC、VB等进行软件开发。控制卡结构及与端子板的接口如图2-3和表2-1所示。表2-1 GT-X00-SV 端子板接口定义接 口 端 子功 能CN1运动控制器连接接口CN2运动控制器连接接口CN312/24V电源接口CN5,CN6,CN7控制轴接口CN8,CN9空CN10辅助编码器接口CN12专用IO 信号输入接口CN13通用IO 输入接口CN14通用IO 输出接口3 数控雕刻机系统控制软件的模块设计31 控制软件的开发环境3.1.1 硬件平台本课题所研究的对象是高速高精度的开放式数控雕刻机系统,我们采用运动控制器(GT-400-SV-PCI)+PC机(或IPC)的方案。其中,GT-400-SV是固高科技(深圳)有限公司自主研发的基于DSP+FPGA的运动控制器,它采用PCI总线,最多可以实现四轴联动运动控制。驱动部分选用交流伺服系统,执行机构选用直角三坐标运动机构。3.1.2 软件平台1. 操作系统平台操作系统平台既是雕刻机控制软件的开发环境,又是它的运行环境,它不仅影响到软件开发的难易程度,而且直接关系到数控系统的性能及它的应用范围。本系统选用Windows XP作为软件开发平台,主要是出于以下几点考虑9:(1)Windows XP操作系统在工业控制领域十分普及,应用广泛;(2)Windows XP的兼容性比Windows98/NT/2000要好,系统限制较少;(3)Windows XP支持的开发工具及帮助系统十分丰富;(4)Windows XP的界面制作方便,人机交互性好。2. 软件开发工具本系统选用Python作为开发工具,用Python语言进行系统开发,这是因为10:(1)Python是一种面向对象的解释性语言。它是一种高级编程语言,也就是说它尽可能将用户与底层操作系统隔离。(2)Python是免费的软件开发工具。虽然这不是独一无二的,但是这意味着人们可以不用购买任何软件,而且不用担心版权问题就可以编写、发布Python程序。(3)Python是可移值的。许多操作系统平台都支持Python,Python对Windows和 MacOS提供编译好的格式,还包含Tk扩展,因此人们可以开发用户接口。(4)Python的功能是强大的。几乎没有Python办不到的事情,Python的核心很小,但它提供足够的基本构建块,允许程序员设计大多数的应用程序。(5)Python是可扩展的。因为Python是用C编写的(有些扩展是C+编写的),而且可以访问其源代码,因此可以对Python进行扩展。(6)Python是一种简单的语言。只要理解了Python的基本原理,学习其他内容就会很容易。语言的核心很小,语义和样式非常简单。所有其他组件和扩展使用相同的语法和结构,因此人们很快就可以像专家一样用Python进行编程。32 系统控制程序的总体设计GT-400-SV控制卡具有良好的开放性,用户可以在Python、VC、VB、Delphi、Dos等环境下进行开发。本系统是在Windows XP平台下利用Python调用DLL动态链接库(由Visual C+生成)的MFC以面向对象方式进行编程。控制卡在Windows下开发的底层动态库包括头文件GT400.h,GT400.lib和GT400.dll11。在Python开发环境下通过ctypes外函数库可以提供或转换成与C兼容的数据类型,从而调用dll动态链接库。运动控制卡接收PC机上发出的操作命令和运动控制系统反馈回的信息,并根据其进行实时的运动操作,直接控制伺服驱动器。控制卡控制直流电动机的过程可分为:打开控制卡并初始化,设置运动参数,执行运动程序,关闭卡。控制系统流程图(如图3-1所示)。33 控制软件主界面的设计图3-3 数控系统控制软件主界面基于PYGTK,用Glade定制界面,实现界面和代码分离,基本实现Axis的功能。主要界面功能分析如下:仿真加工:本模块提供一种不经数控设备,直接在电脑上模拟仿真数控显示界面的运行环境,以检验设计的界面是否有效、友好,若不符合要求可返回屏幕设计模块继续编辑。系统当前信息:在此界面上主要显示机床运行中的绝对坐标值、建立工件坐标系后的相对坐标值、主轴转速值与加工进给速度、加工的数控代码等。参数设置:在此界面中,通过功能参数和运动参数的设置来满足不同的雕刻机和加工控制需求。本系统中的系统参数包括机床运动参数、机床本体参数等参数。机床运动参数包括 X、Y、Z轴各自空行程运动的最大速度、加工速度以及电机速度等方面的参数。这些参数直接决定着系统的控制性能,确保了雕刻机机电系统的安全性。机床本体参数由雕刻机生产厂家设定,它给出了目前本系统所控制的雕刻机的基本机床参数,包括主轴最大转速、运动方向、电机控制信号的输入方式等参数。自动加工:自动界面与系统信息界面相关联,这个界面并不是独立存在的,而是由系统信息界面作一定修改得到。用户在进入自动加工界面时,系统进入系统信息界面,将软键更换为自动界面下相应的功能。手动运行:本文的数控雕刻系统中手动功能主要包括机床点动或连续运动,主要用于加工原点的设定等操作。手动界面下主要包括机床手动方式中点动或连续运动的切换,机床点动步长的调节等功能,用户可以在手动界面下输入具体参数,系统会对输入值进行判断提示输入值的正确性和具体范围。MDI:MDI主要负责手动直接输入代码,可编译执行单段程序,可用于数控系统调试等情况。34 控制软件的功能模块划分以及模块功能介绍3.4.1 控制软件的功能模块划分本系统控制软件是在WindowsXP环境下基于GTK+和GT运动控制器提供的Windows动态链接库进行开发,软件采用模块化和面向对象的程序设计思想,应用SDI结构,构建一个界面友好、功能强大的数控系统控制软件,软件的基本功能模块划分如下图3-2所示。3.4.2 控制软件的功能模块介绍初始化模块:包括运动控制器的初始化和控制轴的初始化。初始化过程在系统控制程序主界面窗口启动过程中在后台执行完成,主要进行固高GT4OOSV运动控制卡的参数预设、控制轴伺服驱动器和电机的参数预设更新和上下位机通讯的建立。若初始化失败,系统会弹出相应的出错提示代码,用户可以根据出错提示来检查硬件连接或软件设置。参数设置模块:包括机床参数和系统参数两个子模块。机床参数设置通过对工作台行程、电机参数、回零的速度方向方式、系统电平和系统速度限制等参数的设定,可以改善机床的安全性能,通过速度规划使机床工作效率进一步提高。系统参数主要是对加工空程速度、手动速度、加工速度和Z轴下/抬刀速度进行设置,速度的值的大小一般依据刀具和被加工材料确定,所设定速度值直接经过程序转化为脉冲数传给伺服驱动器,来控制电机的转速,我们采用联轴器将伺服电机和丝杠直接相连,因而电机的旋转速度直接反映了各轴的移动速度。此外,还有系统加速度、加加速度和最大加速度等各加速度值的设置。系统的伺服参数包括PID参数也应赋予适当的值,来提高机床的加工精度和性能,但是对PID等伺服参数的设置是一个比较复杂的过程而又需要靠经验和试验来验证。加工模块:包括自动、手动加工。手动加工实际上是“JOG”方式下的加工,让主轴开启运行,通过主界面面板上的JOG按钮来控制XYZ各轴的运动,进而可对工件进行所需加工。自动加工和手动加工方式实现了互锁,系统不能同时工作于两种方式下,在机床运行期间,方式选择无效,方式选择之前使用条件判断语句确定机床是否处于程序运动状态,若是,则屏蔽方式选择操作。自动加工方式时,首先将标准NC程序代码经过G、M代码翻译后读入运动控制器缓冲区,其次启动缓冲区连续轨迹运动,用户轨迹指令被顺序执行。与此同时NC程序被读入缓冲区后,可以在主界面图形视窗显示刀路轨迹和零件轮廓,还可通过OpenGL方式实现三维仿真图形预览。自动加工过程中可以暂停和停止加工,并记录刀具的实时位置,以备换刀装卡等操作。模块功能介绍:图形显示模块采用一个封装类CCutSimulator,并采用OpenGL方式来实时显示读入缓冲区的NC程序所规划的刀路轨迹,有二维和三维图形显示模式,其实三维显示的也是加工工件的刀路信息,只是采用OpenGL方式,并定义了一些快捷键来控制视图的不同方位的旋转,因而可以看到空间的刀路信息。在自动加工,刀路轨迹跟踪是应用了固高GT运动控制器库函数Short GT_GetPrfPnt(double*point)指令调用该指令读取连续轨迹运动中所有控制轴的规划位置值;Short GT_GetAtlPos (unsigned axis,long*pos)调用该指令读取指定控制轴的实际位置。对比两个函数值,为使两差值最小,并实时给予补偿,达到刀具按预定规划路径运动。机床状态、系统状态监测模块:关于机床的状态监测,机床外部I/O还在扩展中,外部传感器还未安装完全,目前只有少量的辅助功能如:主轴的开启/关闭/调速、冷却液开关的开启/关闭、气动卡具的开启关闭等,该模块预留扩展空间,以备其他专用传感器的输入。系统状态监测,实际上是对运动控制器的状态监测,用到的运动控制器库函数指令有:GT_GetSts读取指定控制轴状态;GT_GetCrdSts读取连续轨迹运动状态;GT_ClrSts清除指定控制轴状态;GT_RstSts清除指定控制轴的指定状态。运动控制器为每一个控制轴提供一个状态寄存器,GT400SV的控制轴状态寄存器为16bit,另外SV卡还提供一个专门的寄存器来记录连续轨迹运动状态,该寄存器由运动控制器统一管理,用户程序只能读取,不能直接清除和设置该寄存器状态。通过对各寄存器状态位的数据读取/判断,就可以实时监测运动控制器工作状态,进而可以显示和管理系统状态。4 数控系统软件开放式功能的实现41 动态链接库(DLL)的基本情况4.1.1 动态链接函数库基本概况DLL是动态链接函数库(Dynamic Link Libraries)的简称,是组成Windows系统的最重要的元素。Windows将构成其系统的大部分程序代码、数据以及经常用到的资源以二进制文件(类似于可执行文件)的形式,存储在磁盘里。DLL就是允许用户应用程序共享代码和资源的可执行模块,这种分享能力存在于应用程序模块之间或不同的应用程序之间,同一个动态链接库里的同一个函数可同时被不同应用程序调用。Windows系统核心的绝大部分代码、数据、资源及大量的设备驱动程序等均以动态链接库的形式存在,DLL实质上是Windows环境下的一个特殊的可执行模块,它内含一系列的函数或资源,供一般的应用程序或动态链接库调用。它有不同的文件后缀,如:.EXE、.DLL、.DRV、.SYS和.FON等。DLL和Windows应用程序最大的区别是它不能作为单独任务执行,而应由Windows应用程序调用。简单的说,DLL是Windows和Windows应用程序可以使用的资源库,这些资源是共享的12。4.1.2 动态链接库与静态链接库的区别DLL节约内存、减少交换文件、节约磁盘空间、容易升级、提供售后服务支持及提供扩展MFC类库的机制、支持多种语言程序设计和容易创建国标化版本。DOS下的LINK程序主要任务是把源程序中所使用的库函数代码从库中提取出来加入到链接生成的可执行文件中,该文件包含了运行时所需要的全部代码,这种链接方式称为静态链接。而在Windows这样的多任务环境下,应用系统共享内存资源。如果也采用静态链接方式,当多个程序都调用相同的函数时,每个应用程序的链接都要将函数拷贝给应用程序,结果应用程序运行时,在内存生成同一函数多个拷贝,浪费了宝贵的内存资源。而动态链接是所调用的函数代码并没有被链接程序拷贝到应用程序的可执行文件中去,而是在其中加入了所调用函数的描述信息(往往是一些定位信息)。仅当应用程序被装入内存开始运行时,在Windows的管理下,才在应用程序与相应的DLL之间建立链接关系。当要执行所调用的DLL中的函数时,根据链接时产生的重定位信息,Windows转去执行DLL中相应的函数代码,而不是简单的复制或提取。4.1.3 使用DLL的优势使用DLL,特别是在大应用程序中使用DLL有4个明显的优点,这些优点是静态链接库所没有的。一是明显减少应用程序的磁盘空间;二是减少应用程序所需的内存;三是修改应用程序更容易,四是这种函数库可以被Windows下的多种编程语言调用,使系统具有更强的适应性和柔性。4.2 DLL中调用约定和名称修饰 4.2.1 调用约定(calling convention)调用约定:决定函数参数传送时入栈和出栈的顺序,由调用者还是被调用者把参数弹出栈,以及编译器用来识别函数名字的修饰约定。函数调用约定有多种:(1)_stdcall调用约定相当于16位动态库中经常使用的PASCAL调用约定。在32位的VC+5.0中PASCAL调用约定不再被支持(实际上它已被定义为_stdcall。除了_pascal外,_fortran和_syscall也不被支持),取而代之的是_stdcall调用约定。两者实质上是一致的,即函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(关于函数名的修饰部分在后面将详细说明)。 _stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上和参数的字节数。 (2)C调用约定(即用_cdecl关键字说明)按从右至左的顺序压参数入栈,由调用者把参数弹出栈。对于传送参数的内存栈是由调用者来维护的(正因为如此,实现可变参数的函数只能使用该调用约定)。另外,在函数名修饰约定方面也有所不同。 _cdecl是C和C+程序的缺省调用方式。每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall函数的大。函数采用从右到左的压栈方式。VC将函数编译后会在函数名前面加上下划线前缀。是MFC缺省调用约定。 (3)_fastcall调用约定是“人”如其名,它的主要特点就是快,因为它是通过寄存器来传送参数的(实际上,它用ECX和EDX传送前两个双字(DWORD)或更小的参数,剩下的参数仍旧自右向左压栈传送,被调用的函数在返回前清理传送参数的内存栈),在函数名修饰约定方面,它和前两者均不同。 _fastcall方式的函数采用寄存器传递参数,VC将函数编译后会在函数名前面加上“”前缀,在函数名后加上“”和参数的字节数。 (4)thiscall仅仅应用于“C+”成员函数。this指针存放于CX寄存器,参数从右到左压。thiscall不是关键词,因此不能被程序员指定。 (5)naked call采用上面的调用约定时,如果必要的话,进入函数时编译器会产生代码来保存ESI,EDI,EBX,EBP寄存器,退出函数时则产生代码恢复这些寄存器的内容,naked call不产生这样的代码。naked call不是类型修饰符,故必须和_declspec共同使用。关键字_stdcall、_cdecl和_fastcall可以直接加在要输出的函数前,也可以在编译环境的Setting./C/C+/Code Generation项选择。当加在输出函数前的关键字与编译环境中的选择不同时,直接加在输出函数前的关键字有效。它们对应的命令行参数分别为/Gz、/Gd和/Gr。缺省状态为/Gd,即_cdecl。 要完全模仿PASCAL调用约定首先必须使用_stdcall调用约定,至于函数名修饰约定,可以通过其它方法模仿。还有一个值得一提的是WINAPI宏,Windows.h支持该宏,它可以将出函数翻译成适当的调用约定,在WIN32中,它被定义为_stdcall。使用WINAPI宏可以创建自己的APIS。4.2.2 名称修饰(Name Decoration)C或C+函数在内部(编译和链接)通过修饰名(Decoration Name)识别。函数的修饰名是编译器在编译函数定义或者原型时生成的字符串。编译器在创建.obj文件时对函数名称进行修饰。有些情况下使用函数的修饰名是必要的,如在模块定义文件里头指定输出C+重载函数、构造函数、析构函数,又如在汇编代码里调用C或C+函数等。 在VC+中,函数修饰名由编译类型(C或C+)、函数名、类名、调用约定、返回类型、参数等多种因素共同决定。下面分C编译、C+编译(非类成员函数)和C+类及其成员函数编译三种情况说明:1. C编译时函数名称修饰 当函数使用_cdecl调用约定时,编译器仅在原函数名前加上一个下划线前缀,格式为_functionname。例如:函数int_cdecl Add(int a, int b),输出后为:_Add。当函数使用_stdcall调用约定时,编译器在原函数名前加上一个下划线前缀,后面加上一个符号和函数参数的字节数,格式为_functionnamenumber。例如:函数int _stdcall Add(int a, int b),输出后为:_Add8。当函数是用_fastcall调用约定时,编译器在原函数名前加上一个符号,后面是加一个符号和函数参数的字节数,格式为functionnamenumber。例如:函数int _fastcall Add(int a, int b),输出后为:Add8。以上改变均不会改变原函数名中的字符大小写。2. C+编译时函数(非类成员函数)名称修饰当函数使用_cdecl调用约定时,编译器进行以下工作:(1)以?标识函数名的开始,后跟函数名;(2)函数名后面以YA标识开始,后跟返回值和参数表;(3)当函数的返回值或者参数与C+类无关的时候,返回值和参数表以下列代号表示:表 4-1B:constD:charE:unsigned charF:shortG:unsigned shortH:intI:unsigned intJ:longK:unsigned longM:floatN:double_N:boolPA:指针(*,后面的代号表明指针类型,如果相同类型的指针连续出现,以0代替,一个0代表一次重复)PB:const指针AA:引用(&)AB:const引用U:类或结构体V:Interface(接口)W4:enumX:void(4)YA标识之后紧跟的是该函数的返回值类型,其后依次为参数的数据类型,指针标识在其所指数据类型前。当函数的返回值或者参数与C+类无关的时候,其处理符合本条规则,否则按照下面的5、6规则处理; (5)当函数返回值为某个类或带有const性质的类的时候,返回值的命名为:?A/?B+V+ 类名+(不带加号)。当函数返回值为某个类的指针/引用或者带有const性质的类的指针/引用的时候,返回值的命名为:PA/AA或者PB/AB+V+类名+(不带加号); (6)函数参数为某个类的时候,并且该参数所使用的类曾经出现过的话(也就是与函数返回值所使用的类相同或者与前一个参数使用的类相同),则该参数类型格式为:V+1+(不带加号)。如果该参数所使用的类没有出现过的话,则该参数类型格式为:V+类名+(不带加号)。函数参数为某个类的指针/引用或者带有const性质指针/引用的时候,则该参数类型格式是在上述格式的基础上在V前面加上代表指针/引用类型或者带有const性质指针/引用类型的标识(PA/AA或PB/AB); (7)参数表后以Z标识整个名字的结束,如果该函数无参数,则以Z标识结束。当函数使用_stdcall调用约定时,编译器所做工作的规则同上面的_cdecl调用约定,只是参数表的开始标识由上面的YA变为YG。当函数用_fastca

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论