虚拟数控车削加工系统探讨

上传人:沈*** 文档编号:101998242 上传时间:2022-06-06 格式:DOC 页数:78 大小:483KB
收藏 版权申诉 举报 下载
虚拟数控车削加工系统探讨_第1页
第1页 / 共78页
虚拟数控车削加工系统探讨_第2页
第2页 / 共78页
虚拟数控车削加工系统探讨_第3页
第3页 / 共78页
资源描述:

《虚拟数控车削加工系统探讨》由会员分享,可在线阅读,更多相关《虚拟数控车削加工系统探讨(78页珍藏版)》请在装配图网上搜索。

1、 . 中文摘要虚拟加工是应用虚拟现实技术实现对加工过程的动态仿真,其目标是实现加工过程在计算机上的真实再现。目前数控机床已经在制造业中得到广泛应用,为了减少由于试切造成的浪费,需要对数控加工过程进行仿真,以虚拟加工的形式在计算机上完成对数控程序的检验;同时采用虚拟加工技术在对数控机床用户进行培训与数控类课程的教学中也能大大提高教学效果。本文以研制高品质虚拟加工系统为目标,对数控车削加工的二维与三维仿真方法进行了深入研究,针对FANUC0-TD数控系统机床在Windows2000/XP平台上运用VisualC+6.0工具开发了初步的虚拟数控车削加工系统。本文主要完成了以下容:1.运用软件工程方法

2、完成对虚拟数控车削加工系统的总体分析和框架设计,开发了简洁、友好的用户界面。2.分析数控语言结构,借鉴一般计算机高级语言编译技术,对数控程序进行词法分析、语法分析、语义分析,系统地完成对数控程序各种错误的检验。3.采用代码驱动的方式,开发出基于多线程技术的数控加工过程仿真模块,能够对数控程序进行二维和三维加工的动态仿真。二维动画过程采用了异或动画方法,三维仿真过程基于OpenGL图形库,运用其双缓存技术得以实现。4.开发出基于RS232C的串口通信模块,能够实现该系统与实际机床的通信。5.开发了帮助模块,对该系统现有功能和使用方法做出说明。以上研究成果已经全部集成到本人独立开发的虚拟数控车削加

3、工系统之中,其良好的仿真效果、简洁的用户接口和机床通信功能不仅会给数控加工的教学培训带来方便,也将可以运用于生产实践,具有很好的应用前景。关键词:虚拟现实代码翻译OpenGL串口通信数控车削数控指令ABSTRACTVirtual cutting is a technology which can implement the cutting processes on the computer. Virtual reality used to achieve the dynamic simulation of cutting processes. Nowadays, CNC machine too

4、ls are used widely in manufacturing. In order to reduce the cost of test cuts, the simulation of CNC processes is needed, CNC codes are checked on the computer in virtual cutting. On the other hand, it can also improve greatly the effect of teaching and training of CNC machine tools. The methods of

5、CNC turning simulation in 2D and 3D are discussed in this paper. A high quality virtual CNC turning system has been developed on the platform of Windows2000/XP OS and VC+6.0. This project has been accomplished as follows:1. The structure of virtual CNC turning system is analyzed and designed by usin

6、g modern software engineering, succinct and friendly system interface is developed.2. CNC code structure is analyzed and all kinds of errors in programming can be checked by using lexical analysis, syntax analysis and semantic analysis.3. The simulation module which used multithreading technology is

7、 developed. By using the code driving method, the processes of CNC turning can be simulated. The 2D process is implemented in the methods of XOR and draw-erase. The 3D simulation is based on OpenGL and implemented by double buffer technology.4. The serial communication module is designed to achieve

8、the real time communication between this system and the CNC machine tool.5. The help system module is designed for users easily getting system helps. With its successful simulation, interface and communication functions, this system will bring great convenience not only in CNC teaching but also in p

9、ractice use. Key words:Virtual Reality Code translationOpenGL Serial communication CNC cutting CNC instruction code71 / 78目 录第1章 绪论11.1虚拟制造技术概述11.2虚拟加工技术的发展与现状51.3课题来源、研究容与意义7第2章 系统总体框架92.1 系统总体设计92.2 系统主要类介绍102.3 系统界面122.4 系统开发平台132.4.1 Win32多线程技术132.4.2 VC+6.0编程方法152.4.3 OpenGL简介152.4.4 MFC模式下Open

10、GL编程关键技术162.4.5 系统帮助的开发182.5 本章小结19第3章 数控代码分析203.1 数控语言结构与其特点203.2 数控程序翻译213.2.1词法分析233.2.2语法分析263.2.2语义分析313.2.3执行翻译323.3 本章小结34第4章 虚拟加工过程实现354.1 几何建模技术354.1.1 三维实体建模354.1.2 基于图像空间建模364.1.3 离散矢量建模374.2 插补算法384.2.1逐点比较直线插补394.2.2逐点比较圆弧插补404.3 二维仿真434.3.1 MFC图形编程方法434.3.2 二维动画仿真方法454.4 三维仿真474.4.1建模方

11、法474.4.2双缓存动画技术514.4.3三维仿真算法524.5 加工实例与效果分析534.6 本章小结55第5章 通信功能实现565.1 数控系统的通信565.1.1串口通信基本概念565.1.2数控系统常用串口通信接口标准575.2 串口通信编程方法595.3 虚拟加工系统通信功能实现605.3.1串口通信类605.3.2通信线路连接615.3.3通信协议设置625.3.4通信程序实现635.4 本章小结67第6章 总结与展望686.1 全文总结686.2 展望69参考文献70攻读硕士学位期间发表的论文73致74第1章 绪论虚拟现实(Virtual Reality,简称VR)是随着科学和

12、技术的进步、军事和经济的发展而兴起的一门由多学科支撑的新技术,它是计算机图形学、人工智能、计算机网络、信息处理等多种技术综合发展的产物。从本质上讲,虚拟现实是一种先进的计算机用户接口,它通过给用户提供诸如视觉、听觉、触觉等各种直观而又自然的实时感知交换手段,最大限度地方便用户操作,从而减轻用户的负担,提高整个系统的工作效率。虚拟现实技术具有多感知性、临场感、交互性、自主性等重要特征。21世纪制造业面临市场全球化、需求多样化、环保意识增强等方面的挑战,虚拟现实技术的发展为解决这些问题提供了新的模式。随着虚拟现实技术在制造业中的广泛应用,虚拟设计、虚拟制造、虚拟装配等方面都得到不断深入的研究。虚拟

13、数控加工技术是虚拟制造领域重要的研究方向,通过对数控加工过程的仿真,以虚拟加工的形式在计算机上完成对数控程序的检验,从而替代或减少实际的试切工作,能有效降低产品制造成本。总之运用虚拟现实等现代信息技术对传统制造业进行改造,能大大提升我国制造业信息化程度,对增强我国产品国际竞争力有重要意义。1.1虚拟制造技术概述1.1.1 虚拟制造的概念“虚拟制造”是20世纪90年代初由美国首先提出的一种全新概念,1993年日本学者Onosato、Iwata、Kimura等人对虚拟制造系统进行了进一步描述1,2。 虚拟制造的出现,是现代科学技术和生产技术发展的必然结果,也是各种现代制造技术与系统发展的必然趋势。

14、但目前虚拟制造技术仍然处于探索阶段,研究人员虽然也开展了不少关于其涵、体系结构和关键技术的探讨,但国际上还没有对“虚拟制造”概念做出一个统一的定义。不同的研究人员从不同角度出发,给出了各具特点的描述,其中有代表性的包括以下几种3:定义1虚拟制造是这样一个概念,即与实际一样在计算机上执行制造过程,其中虚拟模型是在实际制造之前用于对产品的功能与可制造性的潜在问题进行预测。(Gloria J.Wiens,University of Florida)定义2虚拟制造是仿真、建模和分析技术与工具的综合应用,以增强各层制造设计和生产决策与控制。(US Air Force Wright Lab)定义3虚拟制造

15、是一个用于增强各级决策与控制的一体化的、综合性的制造环境。(Edward Lin etc,University of Maryland)定义4虚拟制造是利用虚拟现实技术将各种与制造相关的技术集成起来的研究领域,其围包括从各种设计子功能,如绘图、有限元分析以与原型生成的集成到企业的各种功能,如计划、加工、控制的集成。(Chetan Sgukla etal.,Department of industrial&system engineering,Florda International University,1996)定义5虚拟制造是提供“在计算机上制造”的能力。本质上,虚拟制造最终将提供建模与仿

16、真环境,其能力足以使任何产品的加工/装配,包括有关的制造过程,可在计算机上仿真。(Lawrence Associate Inc.)通过以上观点可以看出,虚拟制造涉与到多个学科领域,是对这些领域知识的综合集成与应用。可以认为,虚拟制造是利用仿真与虚拟现实技术,在高性能计算机与高速网络的支持下,采用群组协同工作,通过模型来模拟和预估产品功能、性能与可加工性能等各方面可能存在的问题,实现产品制造的本质过程,包括产品的设计、工艺规划、加工制造、性能分析、质量检验,并进行过程管理与控制。1.1.2 虚拟制造的特点虚拟制造不消耗现实资源和能量,也不生产产品,而只是对产品的设计、开发和实现过程进行仿真,它具

17、有以下特点4,5:(1)以模型为核心虚拟制造技术本质上属于仿真技术,离不开对模型的依赖,其涉与到的模型有产品模型、过程模型、活动模型、资源模型。产品模型是产品信息在计算机上的表示,是产品信息的载体;过程模型是产品开发过程的计算机表示;活动模型主要针对企业生产组织与经营活动建立模型;资源模型是对企业的人力物力等信息的描述。(2)以模型信息集成为根本虚拟制造对单项仿真技术的依赖决定了它所面临的是众多的适应各单项仿真技术的异构模型,如何合理地集成这些模型就成为虚拟制造成功的基础。这不仅包括产品模型、过程模型、活动模型和资源模型之间的信息集成,还包括它们各自不同领域模型之间的信息集成,如产品设计模型与

18、分析模型之间的信息集成,以与不同建模语言描述的分析模型的集成。(3)以高逼真度仿真为特色包括两方面的含义:仿真结果的高可信度,以与人与这个虚拟制造环境的交互的自然化。模型结果的可信度主要是依靠模型的VVA技术(Verification,Validation and Accreditation),虚拟现实技术或动画技术是改善人机交互自然化的普遍认可的途径。1.1.3 虚拟制造的分类虚拟制造既涉与到与产品开发制造有关的工程活动,又包含与企业组织经营有关的管理活动。根据目前虚拟制造研究中出现的不同侧重点,Lawrence Associates Inc提出将虚拟制造分成三类6,即以设计为中心的虚拟制造

19、(Design-Centered VM),以生产为中心的虚拟制造(Production-Centered VM)和以控制为中心的虚拟制造(Control-Centered VM)。(1)以设计为中心的虚拟制造这类研究是将制造信息加入到产品设计与工艺设计过程中,并在计算机中进行数字化再“制造”,仿真多种制造方案,检验其可制造性或可装配性,预测产品性能和报价、成本,其主要目的是通过“制造仿真”来优化产品设计与工艺过程,尽早发现设计中的问题,从而使设计达到最优。(2)以生产为中心的虚拟制造这类研究将仿真能力加入到生产计划模型中,其目的是方便和快捷地评价多种生产计划,检验新工艺流程的可信度,产品的生产

20、效率,资源的需求状况,也即是在虚拟环境下模拟现实环境的一切活动与生产的全过程,对产品进行预测评价,从而实现制造过程的最优。(3)以控制为中心的虚拟制造这类研究是将仿真能力增加到控制模型中,提供对实际生产过程仿真的环境,其目的是在考虑车间控制行为的基础上,评估新的或改进的产品设计与车间生产相关的活动,从而优化制造过程,改进制造系统。以控制为中心的虚拟制造系统偏重于现实制造系统的状态、行为、控制模式和人机界面,通过全局最优决策的理论和技术,突破企业的有形界限和延伸制造企业的功能。1.1.4 虚拟制造技术研究现状虚拟制造技术因其诱人的应用前景成为近年国外研究的热点之一。国外工业发达国家的研究工作开始

21、较早,并已经出现了许多成功的应用例。美国是VM技术的发源地,美国VM技术的研究水平基本上代表了国际VM发展水平,已经形成由政府、产业界、大学组成的多层次、多方位综合研究开发力量。其中美国国家标准与技术局(NIST)的研究最具有代表性,其研究围覆盖了设计、加工、装配、过程建模与车间控制和调度等方面。另外美国波音麦道飞机制造公司、Maryland大学、Michigan大学等都开展了VM技术研究。欧洲的许多大学也联合企业进行了虚拟制造技术研究,如英国Bath大学机械工程系、Leeds大学、Loughborough大学等7。同国外发达国家相比,我国虚拟制造技术的研究还有一定的差距,但已经引起我国科技工

22、作者的高度重视。目前我国已经有多家科研机构、高等院校和企业正在开展虚拟制造技术方面的研究。清华大学CIMS工程技术中心虚拟制造研究室是国最早开展虚拟制造技术研究的机构之一,另外交大、工业大学、航空航天大学、航空航天大学等也都已经进行了相当深入的研究。目前国的研究主要集中在以下四个方面8:(1)虚拟制造基础研究虚拟制造涉与的技术领域与其广泛,从产品建模、过程建模、可交换数据模型到分布式仿真、离散事件仿真、面向对象方法、人工智能、虚拟现实技术与计算机网络等方面。这些技术构成了虚拟制造的技术基础。当然,有些技术并非虚拟制造所特有,相关研究已经展开和应用。在虚拟制造概念下,这些技术也具有了新的涵,虚拟

23、制造技术也不是各单项技术的简单组合,而是在相关理论和已积累知识的基础上对制造知识的系统化组织,需要进一步深化。清华大学CIMS中心提出了支持虚拟制造的产品元建模方法,为产品生命周期的各阶段分析与评价提供了可供操作的模型支持。(2)产品虚拟设计技术该项技术主要包括产品开发平台、虚拟测试、虚拟装配与机床、模具的虚拟设计实现等。其中清华大学开展了剑杆织机的虚拟产品开发,进行了剑杆织机的三维数字建模机产品性能分析、加工过程仿真、虚拟装配技术等的研究与应用,建立了具有相当共性的创新设计的虚拟产品开发环境。机械科学研究院则初步实现了立体停车库的虚拟现实下的参数化设计,可以直观地进行车库的布局、设计、分析和

24、运动模拟。(3)产品虚拟加工技术该项技术包括材料热加工工艺模拟、加工过程仿真、板材成型模拟、模具制造仿真等。北航、铸造研究所、工大、东北大学、交大等单位都在从事这方面仿真软件的研制。(4)虚拟制造系统该项研究主要包括虚拟制造技术的体系结构、技术支持、开发策略等。同济大学曙教授提出了分散网络化生产系统,交通大学友柏院士组建了异地网络化研究中心。清华大学CIMS工程技术研究中心提出了基于产品数据管理集成的VM体系结构,它包括虚拟加工平台、虚拟生产平台、虚拟企业平台,分别对产品的“可加工性”、“可生产性”和“可合作性”进行决策支持。交通大学提出了基于界面层、控制层、应用层、活动层、数据层5层协议的V

25、M系统结构。1.2虚拟加工技术的发展与现状虚拟加工是虚拟制造技术的重要组成部分,它应用虚拟现实技术实现加工过程的仿真,目的是实现加工过程在计算机上的真实再现。数控代码的计算机图形检验是虚拟加工的前身和基础,最初的图形仿真检验方法是基于APT的刀位描绘程序。到20世纪70年代以后,CAD技术的进步使人们可以借助图形显示来组织工艺流程,还可以通过在零件上动态显示刀具加工过程来观察刀具与工件之间的几何关系,对有一定经验的编程人员来说,这可以避免很多干涉错误和许多计算不稳定错误。到了80年代,实体造型技术带来了CAD/CAM/NC技术的突破,从而可以建立其有效真实的加工模拟和NC程序验证模型。90年代

26、随着计算机图形技术的进展与计算机仿真技术在制造业中的深入应用,虚拟加工环境应运而生,成为虚拟制造技术的有利支持工具。虚拟加工一直是国外CAD/CAM技术的一个研究热点,Kawabe等人最早利用刀具轨迹,采用边界表示法来获取刀具加工零件的框架图。因为该方法简单,容易实现,所以被早期大多数的CAD/CAM系统所采用,但是,因为工件形状越来越复杂,刀具轨迹包含的信息量也越来越多,导致图形形状混乱不清,于是研究开始向三维实体仿真算法方向发展,如:Anderson研究了三维碰撞检验算法,Cappel给出了利用向量来分析切削过程的算法,Sungurtkin等提出了特定造型设备上的数控仿真系统,K.K.Wa

27、ng研究了基于布尔运算的NC检验系统,J.H.Cliver提出了直接尺寸检验方法等9。随着虚拟加工技术的日臻成熟,目前国外已经出现了一批具有仿真加工模块的三维CAD/CAM软件系统,达到实用化、商品化的阶段,如:Pro/E、UG等。国针对虚拟加工技术的研究起步较晚,但随着一些高校和科研机构研究工作的开展与不断深入,现也已开发出具有加工仿真功能的商品化CAD/CAM软件系统。如:北航海尔软件的CAXA、红地技术的金银花系统(金银花V-CNC)等。目前虚拟加工技术的研究主要集中在以下几个方面:(1)虚拟加工环境的建立虚拟加工环境的建立主要包括设备建模、刀具建模和零件建模。建立零件几何模型一般以CS

28、G和B-rep表示或两者混合表示为基础,建模方法有平扫法、回转法、特征造型和参数化造型等方法。设备建模一般采用两种方法表示装配体中组成元件之间的相互关系:直接存储元件之间相互位置关系或只存储组件之间的配合、连接等装配信息。对数控机床的几何表示目前还没有一个比较准确的模型,对数控机床的仿真运动模型的描述研究更少。(2)数控程序的分析处理对数控程序的检验采用计算机语言的编译技术,通过对数控代码的词法分析、语法分析、语义分析查找错误。而后的译码工作通常有两种方式:一种是“解释”方式,另一种是“编译”方式,前者边解释边执行,后者需要先把数控程序翻译成目标程序再执行。目前的NC代码翻译器为专用翻译器,即

29、只适用于某一类型数控系统。(3)加工过程的图形仿真与碰撞检验CAD/CAM/NC系统中的图形检验方法根据NC代码形成的过程可以分为三种:编程过程中的图形检验、刀位驱动的切削过程图形仿真和NC驱动的加工过程仿真。加工过程中的碰撞检测与加工干涉是基于几何模型由连续的表面和形体的相交测试来实现的。目前的仿真方法主要基于几何模型,物理仿真多采用试验建模和理论建模相结合的方法进行,研究重点多在刀具变形、切削力预测等方面,由于对很多与加工过程密切相关的物理现象缺乏有效处理手段,所以实现加工过程在计算机上的较真实地再现仍很困难。虚拟加工系统以加工过程仿真技术为基础,更强调实际加工过程在计算机上的真实再现与参

30、与者的临境感,因此要开发完备的虚拟加工系统还需做出更深入的探索。1.3课题来源、研究容与意义1.3.1课题来源本课题来源于省教育厅自然科学基金项目(Q2117042) “适应性的人机一体化制造单元计算机控制技术的研究”(2004.06-2006.06),虚拟加工系统的研制是该项目的重要组成部分。1.3.2本课题研究容本课题的研究从底层出发,研制出了初步的虚拟数控车削加工系统,具体容如下:(1)运用现代软件工程方法完成对虚拟数控车削加工系统的总体分析和框架设计,开发了简洁、友好的用户界面。(2)分析数控语言结构,借鉴一般计算机高级语言编译技术,对数控程序进行词法分析、语法分析、语义分析,系统地完

31、成对数控代码错误的检验。(3)采用代码驱动的方式,开发出基于多线程技术的数控加工过程仿真模块,能够对数控程序进行二维和三维加工的动态仿真。二维动画过程采用了异或动画方法,三维仿真过程基于OpenGL图形库,运用其双缓存技术得以实现。(4)开发出基于RS232C的串口通信模块,能够实现该系统与实际机床的通信。(5)开发了帮助模块,对该系统现有功能和使用方法做出说明。1.3.3本课题研究的意义(1)制造类企业生产实践的需求目前数控机床已经在制造业中得到广泛应用,但实际加工过程中在正式加工之前一般要进行试切,不仅费工费时,而且安全性也难以保证。为降低产品制造成本,增加产品竞争力,需要对数控加工过程进

32、行仿真,以虚拟加工的形式在计算机上完成对数控程序的检验,从而替代或减少实际的试切工作。(2)数控机床用户培训与数控类课程教学的需要厂家对数控机床用户进行培训一般使用实际机床进行,在初期培训阶段存在着成本高、效率低的特点,如果先在计算机上使用仿真软件进行培训,再操作实际机床,则可以达到更好效果。在数控机床课程的教学中,仅靠传统理论教学手段学生难以理解数控程序指令,但由于购买数控机床需要大量资金,且占用场地大,使用费用高,给众多院校的数控教学带来困难。而对数控加工过程进行仿真,能以虚拟加工的形式加深学生的理解,大大提高教学效果。近年来,我国已逐渐成为一个制造业大国,但要成为一个制造业强国,需要不断

33、提高产品竞争力,更需要培训大量的高素质技术工人。因此自主研制虚拟数控车削加工系统,对数控机床的教学培训与生产实践都有着积极的意义。第2章 系统总体框架虚拟加工系统的实现涉与到多个学科的专业知识,而且编程任务繁重,必须对整个开发过程进行规。考虑到本系统的规模和特点,根据软件工程方法进行了分析、设计,最后运用VC+6.0开发工具编程实现了完整系统功能。2.1 系统总体设计2.1.1 面向对象的程序设计方法传统的结构化程序设计方法是面向问题处理的过程。结构化程序设计从系统的功能入手,按照工程的标准和严格的规将系统分解为若干功能模块,系统是实现模块功能的函数和过程的集合。结构化程序设计方法存在着以下问

34、题:生产率提高的幅度远不能满足需要;软件重用程度很低;软件维护困难。面向对象的程序设计(Object Oriented Programming简称OOP)是以对象为基础,以消息驱动对象实现操作的一种全新的程序设计方法。它吸取了结构化程序设计的精华,以更接近人们通常思维的方式来处理问题,是一种全新的软件开发技术。面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。它把客观实体的功能与其使用的数据封装起来搭建系统,使软件重用性易于实现。本系统采用VC+编程语言,以面向对象的程序设计方法完成软件开发。2.1.2 系统分析与设计虚拟加工系统的开发涉与容广泛,而且要形成商品化的

35、软件也需要多年研究成果的积累,因此在系统设计之初就要考虑到以后的不断发展完善。在该系统设计时考虑了以下设计原则:(1)实用性:要求有较高的性能价格比,用户界面直观、友好,只需要简单培训即可上手;软件适用围广,不仅能进行数控教学,又能用于实际生产。(2)先进性:在系统设计开发时采用先进的技术手段,并借鉴现有研究成果。(3)可扩充性:使软件模块相互独立,方便进一步开发。(4)可移植性:尽量减少对硬件依赖,采用通用图形库进行图形开发。(5)可靠性:能系统检验数控代码错误,真实进行图形仿真。由于本系统的开发目标是建立较为完善的虚拟车削加工系统,因此必须具备以下的基本功能:(1)数控程序编辑功能。(2)

36、数控程序翻译功能。(3)加工过程仿真功能。(4)机床通信功能。(5)系统帮助功能。根据以上系统功能描述可见,整个系统可划分为数控程序翻译、虚拟加工过程、机床通信等几大功能模块。对数控程序进行分析首先要检验程序中有无错误,这是进一步仿真的基础,也是系统开发的主要目的之一;对数控语言的翻译是进行加工动态仿真的必要条件。虚拟加工过程的实现包括虚拟加工环境的建立和加工过程的仿真,本系统开发中进行了二维仿真和三维仿真的研究。机床通信功能是为了把通过仿真检验的数控程序直接传输给数控机床,是系统面向实际应用的手段之一,本系统采用了广泛使用的串口通信方式。系统的总体流程结构如图 2-1所示:数控手工编程CAD

37、/CAM软件 数控代码 程序检验 错误信息 执行翻译二维加工环境设置三维加工环境设置 加工过程仿真机床通信图2-1系统流程结构2.2 系统主要类介绍运用面向对象的程序设计方法实现上述系统功能,必须将要实现的功能抽象成类,建立类之间的联系,通过类之间的调用集成一个完整的系统中。2.2.1 主要类本系统采用VC+6.0完成全部开发工作,根据实际需要选用了单文档多视图的框架结构,用VC+的AppWizard生成基本的类框架,然后对基本类进行修改与扩充,并自定义了一些类添加到工程中。除了AppWizard自动生成的类以外,实现系统功能的主要类如下:(1) 数控程序编辑类实现文本编辑,具备一般编辑器打开

38、、新建、保存、另存为、复制、粘贴、剪切、撤消等功能。编辑类能方便进行手工数控编程与对错误之处进行修改。(2) 数控程序分析类该类对数控程序进行检验,通过词法分析、语法分析、语义分析达到系统检查数控程序中各种错误的功能。(3) 加工环境类建立虚拟加工所需要的环境,根据仿真模式的选择,初始化坐标系统与毛坯、刀具等相关信息。(4) 加工过程仿真类由代码驱动仿真加工过程的实现。首先要构建数控程序执行机制,从数控程序中提取指令与相应参数,然后实时改变毛坯模型,分别实现加工过程的二维和三维动画仿真。(5) 信息输出类该类主要用于显示数控程序翻译检查时的出错信息与系统中的其他提示信息。(6) 毛坯类根据需要

39、设置毛坯的规格。(7) 刀具类根据需要选择刀具型号与起刀点位置。(8) 机床通信类实现该系统与数控机床的串口通信功能,把经过仿真检验的数控程序传输到数控机床上,从而实现与实际加工系统的集成。2.2.2 该项目主要类结构如图2-2所示:项目:NCTS机床通信类系统基本类主框架类应用程序类文档类About对话框类视图类 (编辑视图)加工环境相关类加工环境类毛坯类刀具类加工过程仿真类数控程序分析类信息输出类图2-2类结构图2.3 系统界面该系统界面如图2-3所示,界面由菜单栏、工具栏、状态栏与客户显示区域组成,容简单、操作方面。软件开发采用单文档多视图方式,借鉴了一些流行软件的界面风格,把客户区应用

40、窗口分为三部分。左上区域是数控程序编辑区,用户可以打开已有程序文件或编写新的数控程序,具备一般文本编辑软件的常用功能;右上区域是显示车削加工的动态仿真过程,默认为二维仿真环境,用户可通过菜单选项进行二、三维仿真的切换,系统还提供了默认的毛坯和刀具,用户可以通过“参数设置”菜单修改加工环境中的这些数据;下方区域是系统信息输出框,显示数控代码检验中的出错提示和其他交互信息。图2-3系统界面在完成上述界面过程中,采用了VC+开发中的单文档多视图方式,对默认视图进行了多次切割。具体做法是:在框架窗口中声明CSplitterWnd类对象,然后在框架窗口类的OnCreateClient()函数实现中进行创

41、建10。为在程序中加强对切割栏移动和锁定的控制,设计了CLockSplitter类,它派生自CSplitterWnd,并且在类中添加可移栏与锁栏功能。2.4 系统开发平台2.4.1 Win32多线程技术Windows2000/XP操作系统是一个多任务操作系统,其多任务实现机制有两种:多进程和多线程。其中的每一个应用程序都是一个进程,进程可以创建多个并发的线程,同时进程也以主线程的形式被系统调度。所谓的线程是系统调度的一个基本单位,在程序中线程是以函数的形式出现的,它的代码是进程代码的一部分,并与进程与其派生的其它线程共享进程的全局变量和文件打开表等公用信息。MFC(Microsoft Foun

42、dation Class)将线程分为两类:用户界面线程和工作者线程。前者包含一个消息泵,并关联一个主窗口,消息泵为其主窗口分发消息,进行消息驱动,从而主窗口可以响应用户的交互操作与其它系统事件;工作者线程则没有消息循环,也不能关联窗口。其实,应用程序的主执行线程CWinAPP对象就是一个用户界面线程,当应用程序启动时自动创建和启动,同样它的终止也意味着该程序的结束,进程终止。工作者线程用来执行程序的后台处理任务,比如计算、调度、对串口的读写操作等,它和用户界面线程的区别是它不用从CwinThread类派生来创建,对它来说最重要的是如何实现工作线程任务的运行控制函数。多线程程序的每一个线程间的操

43、作是并行的,各个线程可以访问进程中的公共变量,所以使用多线程的过程中需要注意的问题是如何防止两个或两个以上的线程同时访问同一个数据,以免破坏数据的完整性。保证各个线程可以在一起适当的协调工作称为线程之间的同步。Windows系统提供的主要同步机制有11:(1) Critical Section(临界区)。临界区是保证在某一个时间只有一个线程可以访问数据的方法。临界区对应着一个CcriticalSection对象,当线程需要访问保护数据时,调用临界区对象的Lock()成员函数;当对保护数据的操作完成之后,调用临界区对象的Unlock()成员函数释放对临界区对象的拥有权,以使另一个线程可以夺取临界

44、区对象并访问受保护的数据。(2) Semaphore(信号)。信号量可以同一时刻允许多个线程访问同一个资源,创建一个信号量需要用Csemaphore类声明一个对象,一旦创建了一个信号量对象,就可以用它来对资源的访问进行控制。(3) Event(事件)。利用事件对象的状态,控制线程对共享资源的访问。用ResetEvent函数设置事件对象状态为不允许线程通过;用SetEvent函数设置事件对象状态为可以允许线程通过(4) Mutex(互斥量)。互斥与临界区很相似,但是使用时相对复杂一些,它不仅可以在同一应用程序的线程间实现同步,还可以在不同的进程间实现同步,从而实现资源的安全共享。通常情况下,一个

45、次级线程要为主线程完成某种特定类型的任务,这就隐含着表示在主线程和次级线程之间需要建立一个通信的通道。实现线程间通讯有如下几种方法12:(1) 使用全局变量。这是一种简单的通讯方法,首先定义一些全局变量,通过其取值执行各个线程间的协调。(2) 使用自定义消息。当线程状态改变,需要其他线程进行响应时,就调用PostMessage()函数发出一个消息,并由另外一个线程的消息响应函数进行响应。(3) 使用事件对象。这是一种比较复杂的通讯方法,事件对象有两种状态:有信号状态和无信号状态,当事件对象的状态改变时,其他线程将觉察这种变化,然后进行响应操作。本系统的开发采用了多线程技术,除主线程外生成另外一

46、个用户界面线程,使其与仿真界面窗口关联,完成仿真加工过程。为防止加工过程中主线程对已设定数据的改变,采用了临界区来保证线程之间的同步,线程间的通讯采用了简单的定义全局变量通讯措施。多线程技术的采用,不仅使仿真过程中可以进行编辑、通讯等其他操作,而且还将可以对仿真过程进行控制13。2.4.2 VC+6.0编程方法Visual C+6.0是美国Microsoft公司1998年推出的4GL软件开发工具,目前已成为国应用最广泛的高级程序设计语言之一。运用VC+6.0开发Windows应用程序一般有以下两种方式:(1)一种是直接调用Windows提供的Win32 API函数开发Windows应用程序。(

47、2)另一种是使用VC+提供的MFC(Microsoft Foundation Class,微软基本类)库开发。由于MFC对Win32 API编程方式有极好的封装,再配合Visual C+提供的AppWizard、ClassWizard等工具可以大幅度加快开发进程。本系统的开发采用第二种方式。2.4.3 OpenGL简介OpenGL是近几年发展起来的一个性能卓越的三维图形标准,它是在SGI等多家世界闻名的计算机公司的倡导下,以SGI的GL三维图形库为基础制定的一个通用共享的开放式三维图形标准。OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便

48、地在各种平台间移植;OpenGL可以与Visual C+紧密接口,便于实现图形算法,能保证算法的正确性和可靠性。 OpenGL具有七大功能14:(1)建模OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(球、锥、多面体、茶壶等)以与复杂曲线和曲面(例如Bezier、Nurbs等曲线或曲面)绘制函数。 (2)变换OpenGL图形库的变换包括基本变换和投影变换。基本变换有平移、旋转、变比、镜像四种变换,投影变换有平行投影(又称正射投影)和透视投影两种变换。其变换方法与机器人运动学中的坐标变换方法完全一致,有利于减少算法的运行时间,提高三维图形的显示速度。 (3)颜

49、色模式设置OpenGL颜色模式有两种,即RGBA模式和颜色索引。 (4)光照和材质设置OpenGL光有辐射光、环境光、漫反射光和镜面光,材质是用光反射率来表示的。场景中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。 (5)纹理映射利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节。 (6)位图显示和图象增强图像功能除了基本的拷贝和像素读写外,还提供融合、反走样和雾的特殊图像效果处理。以上三条可使被仿真物更具真实感,增强图形显示的效果。 (7)双缓存动画双缓存即前台缓存和后台缓存,简而言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。

50、此外,利用OpenGL还能实现深度暗示、运动模糊等特殊效果。2.4.4 MFC模式下OpenGL编程关键技术OpenGL的绘图方式与Windows的一般绘图方式是不同的,它用绘制描述表(RC)绘图,而且要使用特殊的象素格式,因此运用VC+的MFC模式进行OpenGL编程需要通过特定的方式实现15: (1)设置窗口属性和风格在窗口PreCreateWindows()函数中添加:cs.style |=WS_CLIPCHILDREN | WS_CLIPSIBLINGS;OpenGL只对此种类型的窗口有效。(2)设置象素格式PIXELFORMATDESCRIPTOR pfd = sizeof(PIXE

51、LFORMATDESCRIPTOR), / pfd结构的大小 1, / 版本号 PFD_DRAW_TO_WINDOW | / 支持在窗口中绘图 PFD_SUPPORT_OPENGL | / 支持 OpenGL PFD_DOUBLEBUFFER, / 双缓存模式 PFD_TYPE_RGBA, / RGBA 颜色模式 24, / 24 位颜色深度 0, 0, 0, 0, 0, 0, / 忽略颜色位 0, / 没有非透明度缓存 0, / 忽略移位位 0, / 无累加缓存 0, 0, 0, 0, / 忽略累加位 32, / 32 位深度缓存 0, / 无模板缓存 0, / 无辅助缓存 PFD_MAIN

52、_PLANE, / 主层 0, / 保留 0, 0, 0 / 忽略层,可见性和损毁掩模 ; int pixelformat;pixelformat = :ChoosePixelFormat(m_pDC-GetSafeHdc(), &pfd);/选择像素格式:SetPixelFormat(m_pDC-GetSafeHdc(), pixelformat, &pfd);/设置像素格式(3)将获得的设备描述表DC与OpenGL绘制描述表RC联系起来通过以下函数完成操作:wglCreateContent();wglMakeCurrent();(4)改造OnSize函数当视图尺寸变化时,应与时将新的客户区

53、尺寸通知OpenGL,才能正确在窗口客户区显示场景,通过glViewPort()完成这些工作。(5)OpenGL进行图形绘制(6)退出时释放RC和DC:通过以下函数完成wglMakeCurrent();ReleaseDC();另外,在进行软件开发时还必须将OpenGL库添加到工程中,并添加头文件说明。2.4.5系统帮助的开发常见的软件帮助系统有两种:WinHelp和HTML Help16。在Windows98以前,Microsoft公司提供了创建帮助系统的工具Help Workshop,该工具创建.hlp格式的帮助文件,即Winhelp。在Windows98以后,Windows应用程序的帮助系

54、统已经从Winhelp转向基于HTML网页的HTML Help,文件格式.chm。同时Microsoft公司提供了创建HTML Help的软件工具HTML Help Workshop。HTML Help基于HTML网页技术,使用Microsoft Internet Explorer部件显示帮助容,支持HTML,ActiveX,Java程序和HTML格式图像,功能非常强大。本系统的帮助系统采用基于HTML网页的HTML Help,其开发步骤如下:(1) 使用FrontPage工具制作主题网页。(2) 使用HTML Help Workshop创建工程文件。(3) 创建目录文件,可以为帮助系统创建目

55、录列表。(4) 创建索引文件。(5) 编译帮助工程。(6) 调用帮助文件:if(!HtmlHelp(GetSafeHwnd(),nchelp.chm,HH_DISPLAY_TOC,NULL)MessageBox(找不到帮助文件!);帮助系统的开发,为用户熟悉和学习本系统的使用提供了方便。2.5 本章小结本章介绍系统的总体结构。首先分析和设计了系统的总体结构,并给出了利用面向对象编程方法进行开发的主要类结构,然后介绍系统的界面,最后对系统开发中用到的主要开发工具进行了介绍。第3章 数控代码分析对于虚拟数控加工系统来说,数控程序的编制关系到能否是得到正确的仿真结果。因此必须在仿真加工之前对数控程序

56、进行分析,检查出程序中的错误,并与时提示用户进行修改,而后翻译数控代码,驱动仿真加工的实现。本章借鉴一般计算机语言编译技术实现数控代码翻译器功能。3.1 数控语言结构与其特点3.1.1数控程序结构与格式数控机床每完成一个工件的加工,需要执行一个完整的程序,每个程序由程序开始部分和许多程序段组成。程序段格式是程序段书写的规则,分固定程序段格式和可变程序段格式,可变程序段格式又可分为使用地址符的可变程序段格式和使用分隔符的可变程序段格式。我国标准为3832-85,用可变程序段格式,零件程序段是由序号、若干字和结束符号组成,每个字又由字母和数字组成。下面是一个程序段的例子:N3 G00 X10 Z1

57、0 M3 S650 ;程序段结束符 辅助功能代码坐标轴移动字 准备功能代码 程序段序列号一段数控程序要包括如下三部分17:(1)程序标号字(N字) 用以识别和区分程序段的标号,也称之为程序段号。用地址码N和后面的若干位数字来表示。如:N008就表示该程序段的标号为008。(2)程序段的结束符合 这里用“;”号作为程序段的结束符号,有些系统使用“*”号或“LF”作结束符号。任何一个程序段都有结束符号,没有结束符号的语句是错误语句。(3)程序段的主体部分 一段程序中,除序号和结束符号外的其余部分是程序主体部分。主体部分规定了一段完整的加工过程,由一个以上功能字组成,包含了各种控制信息和数据。3.1

58、.2功能字(1)准备功能字(G功能字) G功能是使数控机床做各种操作的指令,用地址G和两位数字来表示,从G00-G99共100种。G代码按其生效期,分为模态和非模态代码。模态G代码一旦执行就一直保持有效,直到同一模态组的另一个G代码替代为止;非模态G代码只在它所在的程序段有效。(2)坐标字 坐标字由坐标名、带、符号的绝对坐标值(或增量坐标值)构成。坐标名有X、Y、Z、U、V、W、P、Q、R、A、B、C、I、J、K等。(3)进给功能字(F字) 它由地址码F和后面表示进给速度值的若干为数字构成。用它规定直线插补和圆弧插补方式下刀具中心的进给运动速度。(4)主轴转速功能字(S字) S字用来规定主轴转

59、速,它由S字母后面的若干位数字组成,这个值就是主轴的转速值,单位r/min。(5)刀具功能字(T字) T地址字后接若干位数值,数值是刀具编号。(6)辅助功能字(M字) 格式是M地址字后接3位数字,M00-M99共100种。每一个辅助功能字的执行顺序在数控机床的编程手册中都有明确的规定。3.1.3 数控代码的特点目前几乎各个数控机床生产厂家都有自己的一套数控代码系统,与国际标准有些出入,造成数控编程方法的多样性,但经过分析发现有以下共同特点:(1)数控程序语法规则简单,数量较少。(2)数控程序段为典型的上下文无关文法,即语法单位可完全独立于其可能出现的环境18。(3)G代码是数控代码中最主要的功

60、能,起着贯穿全局的作用,数控代码执行时系统一直处于四种状态的一种:G00(快速点定位),G01(直线插补),G02、G03(圆弧插补)和G81-G89(固定循环)。由于要实现通用数控代码翻译器尚有很大困难,因此本系统开发选用FANUC0-TD数控系统机床主要编程指令集为例进行研究,为进一步开发通用系统打下基础。3.2 数控程序翻译NC代码翻译器的主要工作概况起来有两个19:检错和翻译。检错,即按照数控系统的编程规定和有关数控加工的常识,对NC代码进行词法分析、语法分析、语义分析,从而检查出该NC代码的词法错误、语法错误、逻辑错误(其中包括数据不合理,加工状态不合理等),经过检错阶段,若NC代码未被查出错误,则进入翻译阶段。翻译,即从NC代码中提取控制机床部件运动的有关命令动作和状态信息,将运动的数据按照位移和速度的变化划分成一系列时间片段,计算出各时间片段的机床各坐标位移,从而驱动机床模型的运动,实现NC代码驱动的加工过程仿真。对一般的计算机高级语言,要将其翻译成目标程序后才运行,这个过程称为编译。编译过程一般包括:词法分析、语法分析、语义分析与中间代码生成、代码优化、目标代码生成。NC代码翻译器实

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!