⑴ 现在国外数控编程主要是哪种
1数控编程及其发展
数控编程是目前CAD/CAPP/CAM系统中最能明显发挥效益的环节之一,其在实现设计加工自动化、提高加工精度和加工质量、缩短产品研制周期等方面发挥着重要作用。在诸如航空工业、汽车工业等领域有着大量的应用。由于生产实际的强烈需求,国内外都对数控编程技术进行了广泛的研究,并取得了丰硕成果。下面就对数控编程及其发展作一些介绍。
1.1数控编程的基本概念
数控编程是从零件图纸到获得数控加工程序的全过程。它的主要任务是计算加工走刀中的刀位点(cutterlocationpoint简称CL点)。刀位点一般取为刀具轴线与刀具表面的交点,多轴加工中还要给出刀轴矢量。
1.2数控编程技术的发展概况
为了解决数控加工中的程序编制问题,50年代,MIT设计了一种专门用于机械零件数控加工程序编制的语言,称为APT(AutomaticallyProgrammedTool)。其后,APT几经发展,形成了诸如APTII、APTIII(立体切削用)、APT(算法改进,增加多坐标曲面加工编程功能)、APTAC(Advancedcontouring)(增加切削数据库管理系统)和APT/SS(SculpturedSurface)(增加雕塑曲面加工编程功能)等先进版。
采用APT语言编制数控程序具有程序简炼,走刀控制灵活等优点,使数控加工编程从面向机床指令的“汇编语言”级,上升到面向几何元素.APT仍有许多不便之处:采用语言定义零件几何形状,难以描述复杂的几何形状,缺乏几何直观性;缺少对零件形状、刀具运动轨迹的直观图形显示和刀具轨迹的验证手段;难以和CAD数据库和CAPP系统有效连接;不容易作到高度的自动化,集成化。
针对APT语言的缺点,1978年,法国达索飞机公司开始开发集三维设计、分析、NC加工一体化的系统,称为为CATIA。随后很快出现了象EUCLID,UGII,INTERGRAPH,Pro/Engineering,MasterCAM及NPU/GNCP等系统,这些系统都有效的解决了几何造型、零件几何形状的显示,交互设计、修改及刀具轨迹生成,走刀过程的仿真显示、验证等问题,推动了CAD和CAM向一体化方向发展。到了80年代,在CAD/CAM一体化概念的基础上,逐步形成了计算机集成制造系统(CIMS)及并行工程(CE)的概念。目前,为了适应CIMS及CE发展的需要,数控编程系统正向集成化和智能化夫发展。
在集成化方面,以开发符合STEP()标准的参数化特征造型系统为主,目前已进行了大量卓有成效的工作,是国内外开发的热点;在智能化方面,工作刚刚开始,还有待我们去努力。
2 NC刀具轨迹生成方法研究发展现状
数控编程的核心工作是生成刀具轨迹,然后将其离散成刀位点,经后置处理产生数控加工程序。下面就刀具轨迹产生方法作一些介绍。
2.1基于点、线、面和体的NC刀轨生成方法
CAD技术从二维绘图起步,经历了三维线框、曲面和实体造型发展阶段,一直到现在的参数化特征造型。在二维绘图与三维线框阶段,数控加工主要以点、线为驱动对象,如孔加工,轮廓加工,平面区域加工等。这种加工要求操作人员的水平较高,交互复杂。在曲面和实体造型发展阶段,出现了基于实体的加工。实体加工的加工对象是一个实体(一般为CSG和BREP混合表示的),它由一些基本体素经集合运算(并、交、差运算)而得。实体加工不仅可用于零件的粗加工和半精加工,大面积切削掉余量,提高加工效率,而且可用于基于特征的数控编程系统的研究与开发,是特征加工的基础。
实体加工一般有实体轮廓加工和实体区域加工两种。实体加工的实现方法为层切法(SLICE),即用一组水平面去切被加工实体,然后对得到的交线产生等距线作为走刀轨迹。本文从系统需要角度出发,在ACIS几何造型平台上实现了这种基于点、线、面和实体的数控加工。
2.2基于特征的NC刀轨生成方法
参数化特征造型已有了一定的发展时期,但基于特征的刀具轨迹生成方法的研究才刚刚开始。特征加工使数控编程人员不在对那些低层次的几何信息(如:点、线、面、实体)进行操作,而转变为直接对符合工程技术人员习惯的特征进行数控编程,大大提高了编程效率。
W.R.Mail和A.J.Mcleod在他们的研究中给出了一个基于特征的NC代码生成子系统,这个系统的工作原理是:零件的每个加工过程都可以看成对组成该零件的形状特征组进行加工的总和。那么对整个形状特征或形状特征组分别加工后即完成了零件的加工。而每一形状特征或形状特征组的NC代码可自动生成。目前开发的系统只适用于2.5D零件的加工。
LeeandChang开发了一种用虚拟边界的方法自动产生凸自由曲面特征刀具轨迹的系统。这个系统的工作原理是:在凸自由曲面内嵌入一个最小的长方块,这样凸自由曲面特征就被转换成一个凹特征。最小的长方块与最终产品模型的合并就构成了被称为虚拟模型的一种间接产品模型。刀具轨迹的生成方法分成三步完成:(1)、切削多面体特征;(2)、切削自由曲面特征;(3)、切削相交特征。
JongYunJung研究了基于特征的非切削刀具轨迹生成问题。文章把基于特征的加工轨迹分成轮廓加工和内区域加工两类,并定义了这两类加工的切削方向,通过减少切削刀具轨迹达到整体优化刀具轨迹的目的。文章主要针对几种基本特征(孔、内凹、台阶、槽),讨论了这些基本特征的典型走刀路径、刀具选择和加工顺序等,并通过IP(InterProgramming)技术避免重复走刀,以优化非切削刀具轨迹。另外,JongYunJong还在他1991年的博士论文中研究了制造特征提取和基于特征的刀具及刀具路径。
特征加工的基础是实体加工,当然也可认为是更高级的实体加工。但特征加工不同于实体加工,实体加工有它自身的局限性。特征加工与实体加工主要有以下几点不同:
从概念上讲,特征是组成零件的功能要素,符合工程技术人员的操作习惯,为工程技术人员所熟知;实体是低层的几何对象,是经过一系列布尔运算而得到的一个几何体,不带有任何功能语义信息;实体加工往往是对整个零件(实体)的一次性加工。但实际上一个零件不太可能仅用一把刀一次加工完,往往要经过粗加工、半精加工、精加工等一系列工步,零件不同的部位一般要用不同的刀具进行加工;有时一个零件既要用到车削,也要用到铣削。因此实体加工主要用于零件的粗加工及半精加工。而特征加工则从本质上解决了上述问题;特征加工具有更多的智能。对于特定的特征可规定某几种固定的加工方法,特别是那些已在STEP标准规定的特征更是如此。如果我们对所有的标准特征都制定了特定的加工方法,那么对那些由标准特征够成的零件的加工其方便性就可想而知了。倘若CAPP系统能提供相应的工艺特征,那么NCP系统就可以大大减少交互输入,具有更多的智能。而这些实体加工是无法实现的;
特征加工有利于实现从CAD、CAPP、NCP及CNC系统的全面集成,实现信息的双向流动,为CIMS乃至并行工程(CE)奠定良好的基础;而实体加工对这些是无能为力的。
2.3现役几个主要CAD/CAM系统中的NC刀轨生成方法分析
现役CAM的构成及主要功能
目前比较成熟的CAM系统主要以两种形式实现CAD/CAM系统集成:一体化的CAD/CAM系统(如:UGII、Euclid、Pro/ENGINEER等)和相对独立的CAM系统(如:Mastercam、Surfcam等)。前者以内部统一的数据格式直接从CAD系统获取产品几何模型,而后者主要通过中性文件从其它CAD系统获取产品几何模型。然而,无论是哪种形式的CAM系统,都由五个模块组成,即交互工艺参数输入模块、刀具轨迹生成模块、刀具轨迹编辑模块、三维加工动态仿真模块和后置处理模块。下面仅就一些著名的CAD/CAM系统的NC加工方法进行讨论。
UGII加工方法分析
一般认为UGII是业界中最好,最具代表性的数控软件。其最具特点的是其功能强大的刀具轨迹生成方法。包括车削、铣削、线切割等完善的加工方法。其中铣削主要有以下功能:
、PointtoPoint:完成各种孔加工;
、PanarMill:平面铣削。包括单向行切,双向行切,环切以及轮廓加工等;
、FixedContour:固定多轴投影加工。用投影方法控制刀具在单张曲面上或多张曲面上的移动,控制刀具移动的可以是已生成的刀具轨迹,一系列点或一组曲线;
、VariableContour:可变轴投影加工;
、Parameterline:等参数线加工。可对单张曲面或多张曲面连续加工;
、ZigZagSurface:裁剪面加工;
、RoughtoDepth:粗加工。将毛坯粗加工到指定深度;
、CavityMill:多级深度型腔加工。特别适用于凸模和凹模的粗加工;
、SequentialSurface:曲面交加工。按照零件面、导动面和检查面的思路对刀具的移动提供最大程度的控制。
EDSUnigraphics还包括大量的其它方面的功能,这里就不一一列举了。
STRATA加工方法分析
STRATA是一个数控编程系统开发环境,它是建立在ACIS几何建模平台上的。
它为用户提供两种编程开发环境,即NC命令语言接口和NC操作C++类库。它可支持三轴铣削,车削和线切割NC加工,并可支持线框、曲面和实体几何建模。其NC刀具轨迹生成方法是基于实体模型。STRATA基于实体的NC刀具轨迹生成类库提供的加工方法包括:
ProfileToolpath:轮廓加工;
AreaClearToolpath:平面区域加工;
SolidProfileToolpath:实体轮廓加工;
SolidAreaClearToolpath:实体平面区域加工;
SolidFaceToolPath:实体表面加工;
SolidSliceToolPath:实体截平面加工;
LanguagebasedToolpath:基于语言的刀具轨迹生成。
其它的CAD/CAM软件,如Euclid,Cimitron,CV,CATIA等的NC功能各有千秋,但其基本内容大同小异,没有本质区别。
2.4现役CAM系统刀轨生成方法的主要问题
按照传统的CAD/CAM系统和CNC系统的工作方式,CAM系统以直接或间接(通过中性文件)的方式从CAD系统获取产品的几何数据模型。CAM系统以三维几何模型中的点、线、面、或实体为驱动对象,生成加工刀具轨迹,并以刀具定位文件的形式经后置处理,以NC代码的形式提供给CNC机床,在整个CAD/CAM及CNC系统的运行过程中存在以下几方面的问题:
CAM系统只能从CAD系统获取产品的低层几何信息,无法自动捕捉产品的几何形状信息和产品高层的功能和语义信息。因此,整个CAM过程必须在经验丰富的制造工程师的参与下,通过图形交互来完成。如:制造工程师必须选择加工对象(点、线、面或实体)、约束条件(装夹、干涉和碰撞等)、刀具、加工参数(切削方向、切深、进给量、进给速度等)。整个系统的自动化程度较低。
在CAM系统生成的刀具轨迹中,同样也只包含低层的几何信息(直线和圆弧的几何定位信息),以及少量的过程控制信息(如进给率、主轴转速、换刀等)。因此,下游的CNC系统既无法获取更高层的设计要求(如公差、表面光洁度等),也无法得到与生成刀具轨迹有关的加工工艺参数。
CAM系统各个模块之间的产品数据不统一,各模块相对独立。例如刀具定位文件只记录刀具轨迹而不记录相应的加工工艺参数,三维动态仿真只记录刀具轨迹的干涉与碰撞,而不记录与其发生干涉和碰撞的加工对象及相关的加工工艺参数。
CAM系统是一个独立的系统。CAD系统与CAM系统之间没有统一的产品数据模型,即使是在一体化的集成CAD/CAM系统中,信息的共享也只是单向的和单一的。CAM系统不能充分理解和利用CAD系统有关产品的全部信息,尤其是与加工有关的特征信息,同样CAD系统也无法获取CAM系统产生的加工数据信息。这就给并行工程的实施带来了困难 。
3数控仿真技术
3.1计算机仿真的概念及应用
从工程的角度来看,仿真就是通过对系统模型的实验去研究一个已有的或设计中的系统。分析复杂的动态对象,仿真是一种有效的方法,可以减少风险,缩短设计和制造的周期,并节约投资。计算机仿真就是借助计算机,利用系统模型对实际系统进行实验研究的过程。它随着计算机技术的发展而迅速地发展,在仿真中占有越来越重要的地位。计算机仿真的过程可通过图1所示的要素间的三个基本活动来描述:
建模活动是通过对实际系统的观测或检测,在忽略次要因素及不可检测变量的基础上,用物理或数学的方法进行描述,从而获得实际系统的简化近似模型。这里的模型同实际系统的功能与参数之间应具有相似性和对应性。
仿真模型是对系统的数学模型(简化模型)进行一定的算法处理,使其成为合适的形式(如将数值积分变为迭代运算模型)之后,成为能被计算机接受的“可计算模型”。仿真模型对实际系统来讲是一个二次简化的模型。
仿真实验是指将系统的仿真模型在计算机上运行的过程。仿真是通过实验来研究实际系统的一种技术,通过仿真技术可以弄清系统内在结构变量和环境条件的影响。
计算机仿真技术的发展趋势主要表现在两个方面:应用领域的扩大和仿真计算机的智能化。计算机仿真技术不仅在传统的工程技术领域(航空、航天、化工等方面)继续发展,而且扩大到社会经济、生物等许多非工程领域,此外,并行处理、人工智能、知识库和专家系统等技术的发展正影响着仿真计算机的发展。
数控加工仿真利用计算机来模拟实际的加工过程,是验证数控加工程序的可靠性和预测切削过程的有力工具,以减少工件的试切,提高生产效率。
3.2数控仿真技术的研究现状
数控机床加工零件是靠数控指令程序控制完成的。为确保数控程序的正确性,防止加工过程中干涉和碰撞的发生,在实际生产中,常采用试切的方法进行检验。但这种方法费工费料,代价昂贵,使生产成本上升,增加了产品加工时间和生产周期。后来又采用轨迹显示法,即以划针或笔代替刀具,以着色板或纸代替工件来仿真刀具运动轨迹的二维图形(也可以显示二维半的加工轨迹),有相当大的局限性。对于工件的三维和多维加工,也有用易切削的材料代替工件(如,石蜡、木料、改性树脂和塑料等)来检验加工的切削轨迹。但是,试切要占用数控机床和加工现场。为此,人们一直在研究能逐步代替试切的计算机仿真方法,并在试切环境的模型化、仿真计算和图形显示等方面取得了重要的进展,目前正向提高模型的精确度、仿真计算实时化和改善图形显示的真实感等方向发展。
从试切环境的模型特点来看,目前NC切削过程仿真分几何仿真和力学仿真两个方面。几何仿真不考虑切削参数、切削力及其它物理因素的影响,只仿真刀具工件几何体的运动,以验证NC程序的正确性。它可以减少或消除因程序错误而导致的机床损伤、夹具破坏或刀具折断、零件报废等问题;同时可以减少从产品设计到制造的时间,降低生产成本。切削过程的力学仿真属于物理仿真范畴,它通过仿真切削过程的动态力学特性来预测刀具破损、刀具振动、控制切削参数,从而达到优化切削过程的目的。
几何仿真技术的发展是随着几何建模技术的发展而发展的,包括定性图形显示和定量干涉验证两方面。目前常用的方法有直接实体造型法,基于图像空间的方法和离散矢量求交法。
3.3直接实体造型法
这种方法是指工件体与刀具运动所形成的包络体进行实体布尔差运算,工件体的三维模型随着切削过程被不断更新。
Sungurtekin和Velcker开发了一个铣床的模拟系统。该系统采用CSG法来记录毛坯的三维模型,利用一些基本图元如长方体、圆柱体、圆锥体等,和集合运算,特别是并运算,将毛坯和一系列刀具扫描过的区域记录下来,然后应用集合差运算从毛坯中顺序除去扫描过的区域。所谓被扫过的区域是指切削刀具沿某一轨迹运动时所走过的区域。在扫描了每段NC代码后显示变化了的毛坯形状。
Kawashima等的接合树法将毛坯和切削区域用接合树(graftree)表示,即除了空和满两种结点,边界结点也作为八叉树(octtree)的叶结点。边界结点包含半空间,结点物体利用在这些半空间上的CSG操作来表示。接合树细分的层次由边界结点允许的半空间个数决定。逐步的切削仿真利用毛坯和切削区域的差运算来实现。毛坯的显示采用了深度缓冲区算法,将毛坯划分为多边形实现毛坯的可视化。
用基于实体造型的方法实现连续更新的毛坯的实时可视化,耗时太长,于是一些基于观察的方法被提出来。
3.4基于图像空间的方法
这种方法用图像空间的消隐算法来实现实体布尔运算。VanHook采用图象空间离散法实现了加工过程的动态图形仿真。他使用类似图形消隐的zbuffer思想,沿视线方向将毛坯和刀具离散,在每个屏幕象素上毛坯和刀具表示为沿z轴的一个长方体,称为Dexel结构。刀具切削毛坯的过程简化为沿视线方向上的一维布尔运算,见图3,切削过程就变成两者Dexel结构的比较:
CASE1:只有毛坯,显示毛坯,break;
CASE2:毛坯完全在刀具之后,显示刀具,break;
CASE3:刀具切削毛坯前部,更新毛坯的dexel结构,显示刀具,break;
CASE4:刀具切削毛坯内部,删除毛坯的dexel结构,显示刀具,break;
CASE5:刀具切削毛坯内部,创建新的毛坯dexel结构,显示毛坯,break;
CASE6:刀具切削毛坯后部,更新毛坯的dexel结构,显示毛坯,break;
CASE7:刀具完全在毛坯之后,显示毛坯,break;
CASE8:只有刀具,显示刀具,break。
这种方法将实体布尔运算和图形显示过程合为一体,使仿真图形显示有很好的实时性。
Hsu和Yang提出了一种有效的三轴铣削的实时仿真方法。他们使用zmap作为基本数据结构,记录一个二维网格的每个方块处的毛坯高度,即z向值。这种数据结构只适用于刀轴z向的三轴铣削仿真。对每个铣削操作通过改变刀具运动每一点的深度值,很容易更新zmap值,并更新工件的图形显示。
3.5离散矢量求交法
由于现有的实体造型技术未涉及公差和曲面的偏置表示,而像素空间布尔运算并不精确,使仿真验证有很大的局限性。为此Chappel提出了一种基于曲面技术的“点矢量”(pointvector)法。这种方法将曲面按一定精度离散,用这些离散点来表示该曲面。以每个离散点的法矢为该点的矢量方向,延长与工件的外表面相交。通过仿真刀具的切削过程,计算各个离散点沿法矢到刀具的距离s。
设sg和sm分别为曲面加工的内、外偏差,如果sg< S < SM说明加工处在误差范围内,S < SG则过切,S>sm则漏切。该方法分为被切削曲面的离散(discretization)、检测点的定位(location)和离散点矢量与工件实体的求交(intersection)三个过程。采用图像映射的方法显示加工误差图形;零件表面的加工误差可以精确地描写出来。
总体来说,基于实体造型的方法中几何模型的表达与实际加工过程相一致,使得仿真的最终结果与设计产品间的精确比较成为可能;但实体造型的技术要求高,计算量大,在目前的计算机实用环境下较难应用于实时检测和动态模拟。基于图像空间的方法速度快得多,能够实现实时仿真,但由于原始数据都已转化为像素值,不易进行精确的检测。离散矢量求交法基于零件的表面处理,能精确描述零件面的加工误差,主要用于曲面加工的误差检测。
⑵ 开发环境指的是什么工业软件的内涵和发展趋势
「 1.工业应用软件的内涵」
工业软件主要包括工业应用软件和嵌入式工业软件。工业应用软件主要分三大类,包含范畴如图1所示。
图1 工业应用软件包含的范畴
(1)产品创新数字化软件领域:支持工业企业进行研发创新的工具类和平台类软件。具体包括:计算机辅助设计(CAD,主要包括计算机辅助机械MCAD和电气设计ECAD)、工程仿真(CAE)、计算机辅助制造(CAM,主要指数控编程软件)、计算机辅助工艺规划(CAPP)、电子设计自动化(EDA)、数字化制造(digital manufacturing)、产品数据管理/产品全生命周期管理(PDM/PLM,涵盖了产品研发与制造、产品使用和报废回收再利用三个阶段),以及相关的专用软件。例如公差分析、软件代码管理或应用生命周期管理(CASE/ALM)、大修维护管理(MRO)、三维浏览器、试验数据管理、设计成本管理、设计质量管理、三维模型检查、可制造性分析等。AEC行业(建筑与施工行业)也广泛应用CAD、CAE软件。CAD软件还包括工厂设计、船舶设计,以及焊接CAD、模具设计等专用软件,CAD软件经历了从二维工程图甩图板,到转向三维特征建模,进而实现基于模型的产品定义(model based definition,MBD)的过程。数字化制造主要包括工厂的设备布局仿真、物流仿真、人因工程仿真等功能。CAE软件包含的门类很多,可以从多个维度进行划分,主要包括运动仿真、结构仿真、动力学仿真、流体力学仿真、热力学仿真、电磁场仿真、工艺仿真(涵盖铸造、注塑、焊接、增材制造、复合材料等多种制造工艺)、振动仿真、碰撞仿真、疲劳仿真、声学仿真、爆炸仿真等,以及设计优化、拓扑优化、多物理场仿真等软件,另外还有仿真数据、仿真流程和仿真知识管理软件。近年来,在三维建模技术、三维可视化技术、虚拟仿真技术和工业物联网技术的发展与交叉融合的背景下,数字孪生技术(digital twin)应运而生,成为当前学术界和工业界关注的热点。创成式设计(genrative design)则因引入全新的设计方式,融合人工智能技术,也成为了业界关注的热点。
(2)管理软件领域:支持企业业务运营的各类管理软件。具体包括:企业资源计划(ERP)、制造执行系统(MES)、客户关系管理(CRM)、供应链管理(SCM)、供应商关系管理(SRM)、企业资产管理(EAM)、人力资产管理(HCM)、商业智能(BI)、高级计划与排程/先进生产排程(APS)、质量管理系统(QMS)、项目管理(PM)、能源管理(EMS)、主数据管理(MDM)、实验室管理(LIMS)、业务流程管理(BPM)、协同办公与企业门户等。ERP是从物料需求计划(MRP)、制造资源计划(MRPII)发展起来的。CRM、HCM、BI、PM、协同办公和企业门户应用于各行各业,但工业企业对这些系统有特定的功能需求。例如,人力资产管理具体包括人力资源管理、人才管理和劳动力管理,其中,工业企业对劳动力管理有特定需求。随着移动通信技术的普及,越来越多的管理软件支持手机APP、基于角色分配权限、集成位置信息,能够将相关信息推送到不同类型的用户。
(3)工控软件领域:支持对设备和自动化产线进行管控、数据采集和安全运行的软件。具体包括:先进过程控制(APC)、集散控制系统(DCS)、可编程逻辑控制器(PLC)、数据采集与监视控制系统(SCADA)、组态软件、分布式数控与机器数据采集(DNC/MDC),以及工业网络安全软件等。其中,DCS、PLC和SCADA的控制软件与硬件设备紧密集成,是工业物联网应用的基础。
工业应用软件的特质是包含复杂的算法和逻辑、融合工程实践的Know-how、与硬件系统和设备集成、具有鲜明的行业特点、能够满足客户的个性化需求、提供二次开发平台、实现端到端的集成应用才能发挥预期价值等。因此,很多工业软件企业将软件进行配置,形成行业解决方案,以便缩短实施与交付周期。
「 2.工业软件的发展趋势」
工业软件具有鲜明的行业特质,不同行业、不同生产模式、不同产品类型的制造企业,对工业软件的需求差异很大。因此,工业软件需要很强的可配置性,并具备二次开发的能力。工业软件蕴含着业务流程和工艺流程,包含诸多算法,因此,需要结合企业的实际需求进行实施和落地。制造企业需要应用的工业软件类型众多,要取得实效,需要实现工业软件的集成,构建集成平台。
工业软件正在从以下7个方面进行演进:
1)工业软件正在重塑制造业
工业软件的重要程度不断提升,软件成为体现产品差异化的关键。例如,70%的汽车创新来自汽车电子,而60%的汽车电子创新属于软件创新;智能手机的核心差异化主要体现在操作系统和应用软件,直接影响用户体验。另外,工业互联网的应用也涉及到诸多工业软件,为工业设备插上了智慧的翅膀。
“软件定义”成为业界共识,如软件定义的产品、软件定义的机器(图2)、软件定义的数据中心、软件定义的网络,软件定义的业务流程,数据驱动智能决策等。对工业软件的开发与应用效果和掌控程度,已成为制造企业体现差异化竞争优势的关键。工业软件的应用贯穿企业的整个价值链,从研发、工艺、采购、制造、营销、物流供应链到服务,打通数字主线(digital thread);从车间层的生产控制到企业运营,再到决策,建立产品、设备、产线到工厂的数字孪生模型(digital twin);从企业内部到外部,实现与客户、供应商和合作伙伴的互联和供应链协同,企业所有的经营活动都离不开工业软件的全面应用。因此,工业软件正在重塑制造业,成为制造业的数字神经系统。
图2 软件定义的机器(来源:GE)
2)工业软件的应用模式走向云端和设备端
工业软件的应用模式已经从单机应用、客户端/服务器(C/S)、浏览器/服务器(B/S),逐渐发展到走向云端部署和边缘端部署(嵌入式软件)。早期的工业软件是基于PC的单机应用,很多软件带有“加密狗”。后来,软件应用出现了网络版。ERP、SCM等管理软件的应用是基于C/S的应用模式,需要在客户机和服务器都安装软件,在服务器安装数据库。随着互联网的兴起,越来越多的工业软件转向B/S架构,不再需要在客户端安装软件,直接在浏览器上输入网址即可登录,这使得软件升级和迁移变得更加便捷。服务器虚拟化、桌面虚拟化等技术则可以帮助企业更好地利用服务器资源。
此外,很多智能装备,例如无线通信基站和程控交换机内部,部署了诸多嵌入式的控制、检测、计算、通讯等软件。近年来,设备端的边缘计算能力迅速增强,一些原来PC上部署的软件也移植到设备端,实现边缘计算,更高效地进行数据处理和分析。
3)工业软件的部署方式从企业内部转移到外部
工业软件的部署模式从企业内部部署(on premise)转向私有云、公有云以及混合云。云计算技术的发展,使得企业可以更高效、安全地管理自己的计算能力和存储资源,建立私有云平台;中小企业可以直接应用公有云服务,不再自行维护服务器;大型企业则可以将涉及关键业务和数据的应用系统放在私有云,而将其他面向客户、供应商及合作伙伴,以及安全级别要求不高的应用系统放在外部的数据中心,实现混合云应用。
国外管理软件公司纷纷加速向云部署转型,并购基于公有云的应用系统。向云服务转型,成为众多管理软件公司最大的增长点。如Salesforce提供完全基于公有云的CRM系统,取得了巨大的成功;原SolidWorks创业团队创建的Onshape(图3)是一个完全基于公有云的三维CAD系统,可以在任何终端进行三维设计,方便地进行协作,已累计获得1.69亿美元的融资,2019年被PTC公司以4.7亿美元并购;甲骨文公司已提供支持多租户的数据库,能够确保运行在公有云平台的应用系统能够彼此独立。另外,已有很多软件公司支持软件的灵活部署,可以在On Premise、私有云、公有云和混合云的模式之间动态调整。
随着云应用的不断深入,越来越多的企业用户开始接受基于公有云的部署方式,将复杂的IT运维工作交给大型的互联网IT公司,例如亚马逊云(AWS)、微软Azure云平台等,其最大的优势是管理专业且方便。我国的阿里云、华为云、腾讯云、京东云以及三大电信运营商也都提供了多种形式的云服务。有的公司还推出了托管服务(managed service),帮助制造企业管理部署在企业内部的应用系统。
图3 完全基于公有云平台的三维设计软件Onshape
4)工具类软件从销售许可证转向订阅模式
工具类软件的销售方式从销售许可证(license)转向订阅模式(subscription)。例如,Autodesk公司的CAD软件已经不再销售License,只支持订阅方式;PTC的Creo软件也在大力转向订阅模式。订阅模式的软件并不一定都是基于云部署,可以仍然是在企业内部安装,但是通过订阅模式定期获得授权密码。
订阅模式是一种对于用户企业和软件公司而言双赢的模式。用户企业可以根据应用需求,灵活地增减用户数,还可以即时获得最新的软件版本。而对于软件公司,则可以确保用户产生持续的现金流。虽然当期某个用户企业带来的收入可能减少,但是几年下来,订阅服务的收入通常会超过销售固定License的营收。同时,由于用户企业已经产生了大量数据,也不可能轻易更换软件。正因为如此,有的软件企业在向订阅模式转型的过程中,尽管有几年时间营业收入下降,甚至出现亏损,但股票价格却反而节节攀升。
5)工业软件走向平台化、组件化,解构为工业APP
工业软件的架构从紧耦合转向松耦合,呈现出组件化、平台化、服务化,PaaS+SaaS的特点。早期的工业软件是固化的整体,牵一发动全身,修改起来很麻烦。后来出现了面向对象的开发语言,进而产生了面向服务的架构(SOA),软件的功能模块演化为Web Service组件,通过对组件进行配置,将多个组件连接起来,完成业务功能。
互联网的浪潮催生了应用服务提供商(application service provider,ASP),后来演化为SaaS服务。然而,单纯将软件服务化并不能满足企业客户差异化的需求,只有将软件开发的平台也迁移到互联网平台,才能授之以渔。PaaS平台是否强大,成为工业软件能否向云模式成功转型的关键。
近年来,又出现了微服务架构,每个微服务可以用不同的开发工具开发,独立进行运行和维护,通过轻量化的通信机制将微服务组合起来,完成特定功能。管理软件,尤其是电商平台在前台和后台之间,增加了中台系统,以便能够及时处理海量的并发需求和数据。
工业软件正在解构为运行于工业云平台或者工业互联网平台上的工业APP(其参考模型见图4),可以实现即插即用,操作简便易用,随需而变。工业APP蕴含了工业技术和Know-how。随着工业PaaS的标准不断完善,不同企业开发的工业APP将可以实现互操作,从而催生工业APP Store,方便地进行交易和应用。
图4 工业APP参考模型(来源:工业互联网APP白皮书,工业技术软件化联盟,2018.4)
6)工业软件的开发环境转向开放、开源
工业软件的开发环境已从封闭、专用的平台走向开放和开源的平台。Linux操作系统的广泛应用显著降低了企业的IT成本;Java以其跨平台应用的特点,得到了工业软件开发商的青睐;在人工智能领域,Google推出了Tensorflow开源引擎,使得企业可以快速开展相关应用;智能机器人领域的开源操作系统ROS,使得IT专家能够快速开发机器人应用;ARM公司发布了开源的物联网操作系统Mbed OS。在CAD软件领域,Intellicad Technology Consortium(ITC组织)提供了一个类似AutoCAD的CAD开源平台,也在全球吸引了很多软件开发商。
7)工业软件的运行平台从PC转向移动端
工业软件的运行平台从以PC为主,走向支持多种移动操作系统(安卓、苹果、微信小程序等)。如果要开发支持多个移动操作系统的APP,对于工业软件开发商而言,无疑需要并行维护多套系统。因此,很多工业软件开发商选择了基于HTML5来开发适应Windows和多种移动操作系统的软件。
⑶ 机器人编程的IML语言
IML也是一种着眼于末端执行器的动作级语言,由日本九州大学开发而成。IML语言的特点是编程简单,能人机对话,适合于现场操作,许多复杂动作可由简单的指令来实现,易被操作者掌握。
IML用 直角坐标系描述机器人和目标物的位置和姿态。坐标系分两种,一种是机座坐标系,一种是固连在机器人作业空间上的工作坐标系。语言以指令形式编程,可以表示 机器人的工作点、运动轨迹、目标物的位置及姿态等信息,从而可以直接编程。往返作业可不用循环语句描述,示教的轨迹能定义成指令插到语句中,还能完成某些 力的施加。
IML语言的主要指令有:运动指令MOVE、速度指令SPEED、停止指令STOP、手指开合指令OPEN及CLOSE、坐标系定义指令COORD、轨迹定义命令TRAJ、位置定义命令HERE、程序控制指令IF…THEN、FOR EACH语句、CASE语句及DEFINE等。
任务程序员能够指挥机器人系统去完成的分立单一动作就是基本程序功能。例如,把工具移动至某一指定位置,操作末端执行装置,或者从传感器或手调输入装置读个数等。机器人工作站的系统程序员,他的责任是选用一套对作业程序员工作最有用的基本功能。这些基本功能包括运算、决策、通讯、机械手运动、工具指令以及传感器数据处理等。许多正在运行的机器人系统,只提供机械手运动和工具指令以及某些简单的传感数据处理功能。
1. 运算
在作业过程中执行的规定运算能力是机器人控制系统最重要的能力之一。
如果机器人未装有任何传感器,那么就可能不需要对机器人程序规定什么运算。没有传感器的机器人只不过是一台适于编程的数控机器。
装有传感器的机器人所进行的一些最有用的运算是解析几何计算。这些运算结果能使机器人自行做出决定,在下一步把工具或夹手置于何处。
2. 决策
机器人系统能够根据传感器输入信息做出决策,而不必执行任何运算。按照未处理的传感器数据计算得到的结果,是做出下一步该干什么这类决策的基础。这种决策能力使机器人控制系统的功能更强有力。
3. 通讯
机器人系统与操作人员之间的通讯能力,允许机器人要求操作人员提供信息、告诉操作者下一步该干什么,以及让操作者知道机器人打算干什么。人和机器能够通过许多不同方式进行通讯。
4. 机械手运动
可用许多不同方法来规定机械手的运动。最简单的方法是向各关节伺服装置提供一组关节位置,然后等待伺服装置到达这些规定位置。比较复杂的方法是在机械手工作空间内插入一些中间位置。这种程序使所有关节同时开始运动和同时停止运动。用与机械手的形状无关的坐标来表示工具位置是更先进的方法,而且(除X-Y-Z机械手外)需要用一台计算机对解答进行计算。在笛卡儿空间内插入工具位置能使工具端点沿着路径跟随轨迹平滑运动。引入一个参考坐标系,用以描述工具位置,然后让该坐标系运动。这对许多情况是很方便的。
5.工具指令
一个工具控制指令通常是由闭合某个开关或继电器而开始触发的,而继电器又可能把电源接通或断开,以直接控制工具运动,或者送出一个小功率信号给电子控制器,让后者去控制工具。直接控制是最简单的方法,而且对控制系统的要求也较少。可以用传感器来感受工具运动及其功能的执行情况。
6. 传感数据处理
用于机械手控制的通用计算机只有与传感器连接起来,才能发挥其全部效用。我们已经知道,传感器具有多种形式。此外,我们按照功能,把传感器概括如下:
(1) 内体感受器用于感受机械手或其它由计算机控制的关节式机构的位置。
(2) 触觉传感器用于感受工具与物体(工件)间的实际接触。
(3) 接近度或距离传感器用于感受工具至工件或障碍物的距离。
(4) 力和力矩传感器用于感受装配(如把销钉插入孔内)时所产生的力和力矩。
(5) 视觉传感器用于“看见”工作空间内的物体,确定物体的位置或(和)识别它们的形状等。传感数据处理是许多机器人程序编制的十分重要而又复杂的组成部分。
⑷ 1、编程计算图形的面积。程序可以计算圆形,长方形,正方形的面积,运行时先提示用户选择图形的类型,然后
2种方法
第一种:写计算圆形,长方形,正方形的函数3个
float calculate1();
float calculate2();
float calculate3();
在你的主程序你做一个switch case判断 就行了
第2种是写一个虚基类calculate然后分别写3个继承自这个基类的计算圆形类,计算长方形类,计算正方形类 在主函数中调用就行了
⑸ 在数控编程(用于机械加工中心的]时,怎样对后置处理文件修改
).对后处理文件及其设定方法作一般性介绍.此部分内容一般都不用更改.
以下是截取的部分注释注释前都带#号,系统在执行代码处理时是不会读取前面带#号的语句的.)
# Post Name : MPFAN
# Proct : MILL
# Machine Name : GENERIC FANUC
# Control Name : GENERIC FANUC
# Description : GENERIC FANUC MILL POST
# Associated Post : NONE
# Mill/Turn : NO
# 4-axis/Axis subs. : YES
# 5-axis : NO
# Subprograms : YES
# Executable : MP v9.0
#
# WARNING: THIS POST IS GENERIC AND IS INTENDED FOR MODIFICATION TO
# THE MACHINE TOOL REQUIREMENTS AND PERSONAL PREFERENCE.
2) Debugging and Factory Set Program Switches (系统程序规划).此部分是MASTERCAM版本的后处理系统规划,每个版本都大同小异,一般不需更改.以下截取的是9.0版的)
m_one : -1 #Define constant
zero : 0 #Define constant
one : 1 #Define constant
two : 2 #Define constant
three : 3 #Define constant
four : 4 #Define constant
five : 5 #Define constant
c9k : 999 #Define constant
fastmode : yes #Enable Quick Post Processing, (set to no for debug)
bug1 : 2 #0=No display, 1=Generic list box, 2=Editor
bug2 : 40 #Append postline labels, non-zero is column position?
bug3 : 0 #Append whatline no. to each NC line?
bug4 : 1 #Append NCI line no. to each NC line?
whatno : yes #Do not perform whatline branches? (leave as yes)
get_1004 : 1 #Find gcode 1004 with getnextop?
rpd_typ_v7 : 0 #Use Version 7 style contour flags/processing?
strtool_v7 : 2 #Use Version 7 toolname?
tlchng_aft : 2 #Delay call to toolchange until move line
cant_tlchng : 1 #Ignore cantext entry on move with tlchng_aft
newglobal : 1 #Error checking for global variables
getnextop : 0 #Build the next variable table
3) General Output Settings(常规后处理设定).此部分可视情况更改,以适合机台或个人使用.以下截取的是9.0版的一些常规设定.冒号前面的是变量,冒号后面的是设定值,#号后面是注解(一般是说明0代表什么,1代表什么,2代表什么,yes或no应该不用翻译了吧?!)英文后面的中文注解是我加进去的,翻译的不是很详细,但相信大家能看懂.没有翻译的就表示我根本不会或此设定不常用....嘿嘿...
sub_level : 1 #Enable automatic subprogram support(启用自动支持子程式)
breakarcs : 2 #Break arcs, 0 = no, 1 = quadrants, 2 = 180deg. max arcs(打断圆弧方式)
arcoutput : 1 #0 = IJK, 1 = R no sign, 2 = R signed neg. over 180(转出圆弧方式)
arctype : 2 #Arc center 1=abs, 2=St-Ctr, 3=Ctr-St, 4=unsigned inc.
do_full_arc : 0 #Allow full circle output? 0=no, 1=no (是否转成整圆方式)
helix_arc : 0 #Support helix arc output, 0=no, 1=all planes,2=XY plane only(是否转成螺旋弧)
arccheck : 1 #Check for small arcs, convert to linear(是否检测小圆弧并将其转成线)
atol : .01 #Angularity tolerance for arccheck = 2(圆弧角度公差)
ltol : .002 #Length tolerance for arccheck = 1(圆弧长度公差)
vtol : .1 #System tolerance(系统公差)
maxfeedpm : 500 #Limit for feed in inch/min(最大进给-英制)
ltol_m : .05 #Length tolerance for arccheck = 1, metric(圆弧长度公差-公制)
vtol_m : .0025 #System tolerance, metric(系统公差-公制)
maxfeedpm_m : 10000 #Limit for feed in mm/min(最大进给-公制)
force_wcs : no #Force WCS output at every toolchange?(换刀时是否转出WCS坐标)
spaces : 0 #Number of spaces to add between fields(两行之间是否加入空格)
omitseq : yes #Omit sequence numbers?(是否省略序列号)
seqmax : 9999 #Max. sequence number(最大序列号)
stagetool : 0 #0 = Do not pre-stage tools, 1 = Stage tools(是否沿用刀具)
use_gear : 0 #Output gear selection code, 0=no, 1=no (是否转成齿轮代码)
max_speed : 10000 #Maximum spindle speed(最大转速)
min_speed : 50 #Minimum spindle speed(最小转速)
nobrk : no #Omit breakup of x, y & z rapid moves
progname : 0 #Use uppercase for program name (sprogname)(程式名称是否使用大写)
4) 中间还有一些例如:Common User-defined(指令设定),Format statements(格式报告),definitions for NC output(NC代码限定),Error messages(出错信息),Toolchange / NC output Variable Formats(刀具变量)等基本上都是系统固定格式,不需要更改.在此就不再详述.当然,我也不建议你更改这些项目,如果你改错的话,系统很可能不执行或机台报警......
5) Start of File and Toolchange Setup(文本内容和换刀设定).此部分内容很重要,很多使用者都从这里着手把程式改成自己需要的格式.以下截取的是9.0版的部分内容,其中有些是我根据自己需要更改的,中文是我加的注解.引号内是可以更改的内容.
"%", e(程式开头的百分号)
*progno, e(程式号码)
comment(注解,可有可无,如不需要则删除此句)
"(PROGRAM NAME - ", sprogname, ")", e(程式名称,可有可无)
"(", *tnote, *toffnote, *tlngnote, *tldia, ")", e(刀具直径及补正参数显示,如不需要则把此整句删除)
"(DATE=DD-MM-YY - ", date, " TIME=HH:MM - ", time, ")", e(程式日期显示,可有可无)
pbld, n, *"/M99", e (我自己加的一句,如不需要则整句删除,而不是只删除引号内的内容)
pbld, n, *"G90", "G92","X0.Y0.Z10.", e(定义加工原点,也可以改为G54坐标)
sav_absinc = absinc (绝对坐标系)
......
(中间省略的部分是系统根据刀路自动转出的程式,一般不必改)
......
(以下几句是出现在程式尾,可以根据需要添加或删除)
n, "Z10.", e (加工完成后提刀至安全高度)
n, "X0.Y0.", e (归零)
n, "G91", e (转用相对坐标)
n, "M99", e (回到主程式)
mergesub(此四句为程式结尾固定语句,不必理它)
clearsub
mergeaux
clearaux
"%", e(程式尾) 『::好就好::中国权威模具网』