的对象影射世界中的对象。对象的另一个特点是继承,继承是一个对象 可以获得另一个对象的机制,它支持层次分类这一概念。通过继承,低层的类只需定义特定于它的特征,而共享高层的类中的特征。
2.3.2面向对象的设计方法
面向对象技术的派生关系使我们可以直接从己有的类中获得大量现成的数据成员和属性,而它的多态属性又可以让我们在派生类实体中定义不同于基本实体的属性。用面向对象的方法分析、实现数控车床仿真,其核心和基本内容是抽象对象类,并建立对象类之间的关联。对象类的划分是否合理,对象类间联系是否恰当,一方面影响系统功能,另一方面也直接关系到系统实现起来的难易程度。对象类的设计是一个对客观世界抽象和提炼的过程。在面向对象的设计方法中,对象、类和消息是非常重要的概念。对象和传递消息分别是表现事物及事物间相互联系的概念,类和继承是适应人们一般思维方式的描述。方法是允许作用于该类对象上的各种操作。这种对象、类、消息和方法的程序设计方式的基本点在于对象的继承性和封装性。通过封装能将对象的定义和对象的实现分开,通过继承能体现类与类之间的关系,再辅之以向各对象设计所提供的重载特性以及由此带来的实体多态性,从而构成了面向对象的基本特征。 2.3.3面向对象类的建立
类是对属性和方法的封装,通过封装代码,可以隐藏程序内部实现细节,通过访问属性方法来控制对象。这样做能够使开发人员从程序的复杂逻辑中跳出来,而专注于软件的整体功能设计。由于代码的封装,在改错时可以方便地修改一处代码,便能达到修改所有调用该方法处的代码。所
14
以在开发系统的过程中,将各个功能模块分别建立成具体的类是十分必要的,如毛坯类、刀具类、用于显示的图形视图类、文件管理类等。 2.4仿真系统的开发平台
C语言是近年来国内外得到迅速推广和使用的一种现代语言。它语言功能丰富、表达能力强,使用灵活方便、应用面广、目标程序效率高、可移植性好,既有高级语言的优点,有具有低级语言的许多特点,因此特别适合于编写系统软件。而随着面向对象技术的发展,越来越多的语言也可视化了。VC++是C的可视化语言,它包括了综合的微软基本类库,这使得开发Windows应用程序变得简单而高效。 2.4.2 VisualC++编程的要点
Visual C++(以下简称VC)是一个功能强大的集成开发环境,其编程的主要的几个方面有:
(1)MFC类库MFC是 Microsoft Foundation Class Library,它是 VC的重要组成部分,编程过程中可直接使用MFC中的类定义对象或在其基础上派生新类。
(2)AppWizard App Wizard 是VC集成开发环境下的一个工具,实质上是一个高级的代码生成器,按照用户在其对话框中的设臵创建Windows应用的基本应用框架,该框架包括一些C++语言的头文件、源文件和资源文件,编译生成的可执行文件具有窗口系统的基本功能。对于不同层次应用的需求,只需在该框架的基础上进行修改。
(3)ClassWizard ClassWizard是VC中对类进行管理的工具,它创建的应用程序框架实际上由应用程序类、窗体类、文档类、视图类(从MFC
15
派生)以及这些类定义的对象组成。利用ClassWizard可以对这些类进行管理,例如增加或删除成员变量和成员函数,定义对键盘、鼠标和菜单响应的消息处理函数,重载MFC虚函数等。
(4)文档和视图结构典型的VC应用是文档和视图结构,每个窗口都可以看作由窗体、文档和视图组成,它们分别对应窗体类、文档类和视图类。在AppWizard创建的基本应用框架中,窗体类对象管理窗口的边框、标题和菜单,文档类对象负责窗口中内容的存取,视图类对象负责窗口中内容的显示。
(5)消息响应机制消息是人机交互的纽带,所有的键盘、鼠标、菜单事件都通过消息传递到应用程序中,然后再进行处理。窗体、文档和视图对象之间的联系也是通过消息的发送和响应来完成的。此外,窗口的创建和销毁过程中都有大量的消息生成。VC中,对消息的响应是由消息处理函数来完成,通过ClassWizard可以方便地添加对某一消息的消息处理函数。鉴于本论文开发的数控车床加工仿真系统各模块的功能要求,以及VC编程的特点,为了确保仿真图形达到更加逼真的效果,选择了以VisualC十十.NET为本系统的开发平台。
16
第三章 插补系统的设计与实现
3.1概述
在机床的实际加工中,被加工工件的轮廓形状千差万别,各式各样。严格说来,为了满足几何尺寸精度的要求,刀具中心轨迹应该准确地依照工件的轮廓形状来生成。然而,在CNC或MNC中,以软件(程序)完成插补或软、硬件结合实现插补,而在NC中有一个专门完成脉冲分配计算(即插补计算)的计算装臵一一插补器。无论是软件数控还是硬件数控,其插补的运算原理基本相同,其作用都是根据给定的信息进行数字计算,在计算过程中不断向各个坐标发出相互协调的进给脉冲,使被控机械部件按指定的路线移动。随着相关学科特别是计算机领域的迅速发展,插补算法也在不断地进行自我完善和更新;目前为止已涌现出了大量的插补算法,现将其归纳为两大类。 3.1.1脉冲增量插补算法
脉冲增量插补算法就是通过向各个运动轴分配脉冲,控制机床坐标轴作相互协调的运动,从而加工出一定形状零件轮廓的算法。显然,这类插补算法的输出是脉冲形式,并且每次仅产生一个单位的行程增量,故称之为脉冲增量插补。而每个单位脉冲对应坐标轴的位移量大小,称之为脉冲当量,一般用咨或BLU表示。脉冲当量是脉冲分配的基本单位,也是对应于内部数据处理的一个二进制位,它决定了数控机床的加精度,对于普通数控机床一般取占=0.0lmm,对于较为精密的数控机床一般取占=0.005mm、0.0025mm或0.00lmm等。
17
一般来讲,脉冲增量插补算法较适合于中等精度(如0.01mm)和中等速度(如1~3m/min)的机床CNC系统中。由于脉冲增量插补误差不大于一个脉冲当量,并且其输出的脉冲速率主要受插补程序所用时间的限制,所以,CNC系统精度与切削速度之间是相互影响的。譬如实现某脉冲增量插补算法大约需要40户:的处理时间,当系统脉冲当量为0.00lmm时,则可求得单个运动坐标轴的极限速度约为1sm/min。进一步当要求控制两个或两个以上坐标轴时,所获得的轮廓速度还将进一步降低。反之,如果将系统单轴极限速度提高到15m/m如,则要求将脉冲当量增大到0.01mm。可见,CNC系统中这种制约关系就限制了其精度和速度的提高。
3〃1.2数据采样插补算法
随着数控系统中计算机的引入,大大缓解了插补运算时间和计算复杂性之间的矛盾,特别是高性能直流伺服系统和交流伺服系统的研制成功,为提高现代数控系统的综合性能创造了充分条件。相应地,这些现代数控系统中采用的插补方法,就不再是最初硬件数控系统中所使用的脉冲增量法,而是结合了计算机采样思想的数据采样法。数据采样法实质上就是使用一系列首尾相连的微小直线段来逼近给定曲线。由于这些线段是按加工时间来进行分割的,所以,也称之为“时间分割法”。一般来讲,分割后得到的这些小线段相对于系统精度来讲仍是比较大的。为此,必须进一步进行数据点的密化工作。所以,也称微小直线段的分割过程是粗插补,而后须进一步的密化过程是精插补。通过两者的紧密配合即可实现高性能轮廓插补。
插补周期界是相邻两个微小直线段之间的插补时间间隔。位臵控制周
18