数控编程开发范例6篇

前言:中文期刊网精心挑选了数控编程开发范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

数控编程开发

数控编程开发范文1

数控自动编程的软件很多,一般的CAD都有这样的自动编程功能,例如现在PRO-E、MASTERCAM、UG、solidworks等软件都有这样的自动编程功能,他们的结构庞大,软件的学习上也很复杂,并且在价格上也很昂贵。假如仅仅用于数控车床的自动编程上,真是大材小用了,很是浪费。使用简洁,操作方便,专用于数控车床加工的小软件,这样的软件专业性和专一性很强。既节省人力又节省物力。而AutoCAD因其灵活性和接口的多样性被广泛的使用在机械设计领域中。在其能够生成的文件格式中有一个二进制的文件,文件中包含着轮廓线的线型和坐标的信息。使用二维功能强大的AutoCAD软件绘制轴承类的零件的外轮廓显然是一件非常容易的事情。

Auto CAD作为一个完整的绘图编辑器,可以独立使用,并可完成用户的很多设计工作,但要完成零部件从设计到制造的全过程的工作,仍然力不从心,如零件设计完后要做有限元分析,要制定工艺规程,要生成NC代码,这些工作AutoCAD都不能胜任,这些必须借助其他应用软件,而所用的软件都在不同程度上要求得到Auto CAD的图形信息支持,因此需要Auto CAD提供一个便于外界接受的文件格式输出图形信息。另外,用户在设计过程中还会根据工作的需要开发一些自己的应用程序,以便做计算、分析或其它之用,处理后的数据希望传给AutoCAD,用于自动生成图形,这时用户传递这些数据最好的办法就是写成Auto CAD可直接接受的数据文件,为了解决AutoCAD和其他程序间图形数据的交换问题,定义了图形交换文件规范。

一个完整的自动编程系统,必须包括前处理程序(Maln Processorl和后置处理程序(Post Processor)两部分。

一、前处理程序设计

前处理程序用以对源程序进行翻译并计算刀具中心轨迹,或通过处理图形数据文件而得到刀具中心轨迹,这一部分完全独立于具体的数控机床,前处理程序的输出一般为刀位数据(Cut Loca―tion Datal,但这种刀位数据不能直接用作数控装置的控制指令,因此必须要有一个后置处理模块,后置处理程序是自动编程系统中的一个重要组成部分,它是按数控机床的功能及数控加工程序格式的要求而编写的一个计算程序。它将主处理程序产生的位置数据和功能信息转换成能被某种数控机床控制单元所需要的数控加工程序代码,以便用于控制机床并产生各种加工功能和加工运动。由于各种数控机床的输人格式各不相同,因而为了适应各种机床的不同要求,后置处理程序也是各不一样的。

二、后处理程序设计

后置处理的目的是形成数控指令文件。由于各种机床使用的控制系统不同,所以所用的数控指令文件的代码及格式也有所不同。为解决这个问题,每个自动编程软件通常有自己专用的后置处理程序。

本系统采用的数控机床的指令有以下几种:

1.坐标功能指令:x,z,I,K。

2.准备功能指令:G00一快速进给;G01一直线插补;G02一顺时针方向圆弧插补:G03一逆时针方向圆弧擂补;G33一等螺距螺纹加32;G54一坐标设定指令。

3.速度功能指令:主轴转速S;进给速度F。

4.换刀功能指令:刀号选择T01-T04。

5.刀具补偿指令:G41-在工件轮廓左边刀补有效;G42-在工件轮廓右边刀补。

6.辅助功能指令:M02一程序结束;M03一主轴正转;M04一主轴反转:M05一主轴停止。

在生成数控程序时,首先打开前面生成的刀具中心轨迹文件,从最外层向内逐层生成加工程序,在把刀具中心轨迹文件的数据转化为数控程序时,逐行读人数据,根据线形确定所采用的刀具以及相应的G指令,并把坐标值X,Z,I,K赋给对应的变量。再根据所输入的主轴转速和进给量,使所有的数据转换成字符串,然后与字母G,T,S,F,X,Z,I,K组合成数控指令。最后加上程序号和必要的M指令组成程序段,在每一层切削完成后或换刀时,添加一个必要的程序段使刀具回到换刀位置,在程序结束时加上辅助指令M0 2以表示程序结束,最后将程序以文件的形式存盘。

数控编程开发范文2

【关键词】虚拟操作;数控车床;Virtools

一、引言

近年来,虚拟现实与计算机仿真技术已在煤矿[1-2]、石油等领域取得了较好的应用。虚拟机床是随着虚拟现实和机床技术不断发展而提出的一个新研究领域,运用三维虚拟交互技术进行数控机床内部结构拆装与仿真是虚拟机床系统的一个重要组成部分,它能全方位表达和展示机床结构及其工作原理。本文首先对虚拟拆装系统的开发流程进行了阐述,给出了系统的技术路线和开发环境,从构建机床三维模型和管理模型数据、人机交互原理与实现、运动控制与实现、碰撞检测等方面对拆装与仿真系统进行详细研究。最后在Virtools环境下完成了数控车床内部结构的虚拟拆装与仿真系统,效果良好。

二、系统开发平台与技术流程

系统开发在WindowsXP平台下进行,运用三维交互图形软件Virtools进行虚拟拆装的交互设计与仿真,利用VisualStudioC++编程工具进行软件系统整合设计。系统技术路线如图1所示。

Virtools是法国达索公司开发的一套虚拟现实仿真软件[3],该软件具备丰富的互动行为模块,可以开发出许多不同用途的3D产品,如计算机游戏、多媒体、建筑设计、交互式电视、教育训练、仿真与产品展示等。

仿真系统的开发流程是:

(1)运用三维建模软件对机床内部各结构进行几何建模,然后通过数据优化软件对模型数据进行约减,将模型转换成三角网格的格式,再导入虚拟交互软件Virtools中进行交互拆装开发。

(2)导入Virtools以后,需要对模型数据进行管理,设置机床各部件的层次关系,将各个模块分类进行管理,同时对光照、材质、纹理、行为模块等数据类型进行分类管理。为后续的程序开发奠定基础。

(3)根据数据车床内部结构的拆装脚本和顺序,运用运动控制行为模块对各部件进行人机交互控制开发。在开发过程中,主要涉及运动控制、模型显隐、动画控制、实时渲染等。

三、数控车床拆装系统开发过程

1.三维模型的构建与管理

数控车床三维模型的构建是系统开发的基础,采用Pro/e三维建模软件对CK6140数控车床进行三维建模。将机床分为:X轴系统、Z轴系统、六工位刀架、四工位刀架、尾座等几个大部分。对这几部分的各个零部件进行详细测绘与建模,形成装配体。最后汇总进行装配,形成整装配体。装配体如图2所示。为了提高渲染速度,降低模型数据量,需要对模型几何数据进行优化处理[4]。

为了便于虚拟场景的管理和模型运动控制,需要对三维模型数据型层次管理,对机床各部件进行父子级关系设置,对灯光位置、材质和纹理映射、交互传感器等资源进行分类管理。如图3所示。

2.人机交互的实现

在Virtools环境下,人机交互的实现过程是通过鼠标、键盘或其他输入设备首先发起一个交互事件,虚拟环境中的虚拟传感器监听到事件后响应的对应事件,控制响应的行为模块动作来响应输入事件,直到事件完成后再返回。在人机交互编程中,可以采用Virtools自带的BB进行行为编程,也可以用Script脚本节点进行编程,考虑交互过程中各个动作之间是一个有序的紧密的衔接过程,在这里采用消息驱动机制来链接每个行为模块。

任何一个模块设计都需要对参数进行设置。在每个行为模块中,模块参数由名字(pName)、类型(pType)和数值(pvalue)三部分组成。输入参数通过BB、BG或者paramOp顶部的小三角来表示。参数输入特别是本地参数有一个源点,作为它的pValue。输出参数通过BB,BG,或一个paramOp底部的小三角来表示。参数输出能够有一个或者更多个目的地,目的地在参数值改变时立即被更新。

行为模块之间动作的输出和输入端用直线相连接,这条连线称之为bLink,bLink表达了模块间的运行顺序。当行为模块被触发激活时,就会执行它的功能,显示它的效果。行为模块的输入端接收以事件为基础的讯号,负责触发该行为模块。当行为模块完成它所负责的任务后,就会输出一个事件讯号,再作为另外一个行为模块的输入,触发下一行为模块进行动作,直到整个事件完成为止。图4为键盘控制事件的行为模块图。

3.运动的控制

三维虚拟模型的实时控制是通过对机床部件的无干涉运动路线进行分析后,确定各运动部件的自由度,再运用位置控制模块对三维虚拟模型的六个自由度来进行控制。在虚拟环境中,将模型定义为X、Y、Z、H、P、R六个运动类型。其中XYZ分别表示选着XYZ移动,HPR表示绕XYZ转动。对于模型之间存在关联运动的部件,系统采用矩阵换算和基于旋转角度的方法来进行求解运算。系统采用Translate、Rotate、Script等行为模块来进行联合编程开发。实现对虚拟零部件的拆装控制。

在Virtools软件平台中,对物理进行运动控制的行为模块BB主要有TranslateBB和RotateBB。其中TranslateBB有四个输入参数,第一个参数Targete是目标参数,用来指定该BB所要控制的物体,参数的类型是三维实体;第二个参数TranslateVector是三维向量参数,该参数有三个值,分别是X、Y、Z,三个值分别用来控制三个方向上的运动矢量;第三个参数Referential是一个参考值,即在移动时所参考的物体,因此也是一个三维实体类型的参数,第四个参数是一个用来设置是否在移动时影响该物体的子级物体。

RotateBB有五个参数,第一个参数Targate为目标参数用法与TranslateBB中的该参数相同;第二个参数AxisofRotation是一个三维向量参数,因此也有三个参数需要设置,分别是X、Y、Z,它们的作用是来控制物体将要绕着哪个轴转动,第三个参数是AngleOfRotation是一个角度参数,用来设置旋转的角度,其他参数跟TranslateBB中的参数用法相同。

4.碰撞检测

在虚拟环境中,由于人机交互和物体的运动,数控机床各部件间经常发生碰撞反应。碰撞检测是数控行为仿真中的一个难点,它需要具有实时性和精确性两个特点。

本系统采用基于层次包围盒的方法对机床部件进行碰撞检测。借助一个耗费函数来分析碰撞检测算法的合理性[5]。

其中T是碰撞检测的总耗费时间。Nv是参与重叠测试的包围盒的对数,Cv是为一对包围盒做重叠测试的耗费,Np是参与求交测试的几何元的对数,Cp是为一对几何元做求交测试的耗费,Nu是物体运动后其包围盒层次中需要修改的结点的个数,Cu是修改一个结点的耗费。

在Virtools软件中,碰撞检测模块有三个模式:Automatic、BoudingBox和Faces。每个模式的碰撞检测的精度不同,其中Automatic模式在碰撞检测中各物体采用自身的精度;BoudingBox模式采用六面体的包围盒;Face模式是在面与面之间进行的碰撞检测,这种精度最大。

四、系统实现

采用Pro/e进行三维几何建模和整体模型装配,然后通过RightHemisphere进行三维模型数据的分类管理,进行数据转换后通过Virtools控件将模型数据导入虚拟环境中,运用行为模块对交互事件进行编程开发,最后用VC++打包完成系统开发。系统界面如图5所示,图6为数控车床中四工位刀架的拆装图。

五、结束语

从机床三维建模与模型数据管理、人机交互与运动控制、碰撞检测等方面对机床内部结构虚拟拆装系统的开发进行了阐述。基于Virtools开发的虚拟机床拆装可以进行网络,因此,也适合在网络上传播,系统可以全方位任意视角对机床内部结构进行展示,可以人工进行虚拟拆装,非常适合于数控机床原理与结构的教学。

参考文献

[1]王长平,张志强,张晓强.基于Virtools 以及WinCC的采煤机远程监控平台构建[J].煤矿机械,2009,30(12):202-204.

[2]张文磊,郑晓雯,陈宝峰等.基于虚拟现实的液压支架工作状态研究[J].煤矿机械,2012,33(10):72-74.

[3]徐英欣,杨建文,张安鹏.Virtools虚拟互动设计实例解析[M].北京航空航天大学出版社,2012.

数控编程开发范文3

关键词:PMAC 并联机器人 开放式结构 控制软件设计 Visual C++

中图分类号:TP242 文献标识码:A 文章编号:1007-9416(2013)01-0160-02

1 引言

通用性和开放性作为一项重要指标业已渗透到工业生产与科学研究的各个领域中, 而传统的运动控制系统主要存在体系独立和结构封闭的缺陷。设计者一般采用专用计算机、专用编程语言与操作系统、专用微处理器的封闭式体系结构。这种结构存在制造和使用成本高,开发周期长,升级换代困难,无法添加系统的新功能等一系列缺点[4]。因此,如何构建开放式运动控制系统的软硬件系统成为工业界和学术界所研究的一大热点。

近年来,机器人系统在各类工业生产中得到了广泛运用,对提高生产效率与自动化程度发挥出重要作用。而并联机器人作为一类全新的机器人与传统的串联机器人在概念和用途上形成了互补,并且该机构能够实现运动轨迹、运动速度、定位以及重复定位的高精度精确控制的要求,故在精密加工和制造业中具有举足轻重的作用,因此已成为控制科学领域与精密加工应用领域中一个很有意义的研究方向。本 文所研究的控制系统以六自由度并联机构本体为对象,采用PC/104总线工控机为上位机,PMAC2A-PC104运动控制器作为下位机,以VC++开发工具实现机器人各控制模块的软件设计,从而完成控制目标任务的要求。因此本文将基于本系统的硬件体系结构,按开放性和系统稳定性要求开发出控制软件来实现高精度精密加工的目标。

2 并联机器人系统硬件结构

本机器人系统采用两级计算机系统的结构,系统结构如图1所示。其硬件配置为:

上位机采用研华嵌入式PC/104工控机(IPC),下位机采用Delta Tau的开放式可编程多轴运动控制器PMAC。PMAC是一种非常灵活的高性能运动控制器,具有实时性强、稳定性好、效率高等优点,用来与上下层系统进行数据通信和控制信号的交互。它是整个控制系统的核心。而工控机具有运行速度快、存储量大、应用灵活的优点[4]。正是由于采用了两级计算机控制系统,故就能充分利用各自的特点,发挥出各自的优越性来协调系统的整体稳定性。

并联机器人控制系统的体系结构中,上位机的主要作用是:基于人机交互,完成目标任务相关的数据输入、参数设定、路径规划、任务指定以及任务决策等工作。PMAC运动控制器主要用于对伺服更新的在线计算以及目标轨迹的生成,反映出并联机器人各轴电机的实时状态,响应上位机的执行命令。

3 并联机器人控制软件设计

3.1 软件设计总体方案

由于本系统软件是建立在Windows操作系统之上,故具备了多线程协调处理的能力,能及时应对并联机器人在运行中出现的各种状况,并对出现的状况作出相应的处理。作为上层软件的可执行32位Windows应用程序,通过调用PMAC自带的通讯模块PComm32与PMAC的内核程序进行通讯,再由上位机软件灵活调用运动控制的各种函数,以此来监控机器人的各种工况。PComm32是一个非常有效的开发工具,几乎囊括了所有与PMAC通讯的方法,并且与VC++开发软件有很好的兼容性。它由PMAC.DLL、PMAC.SYS和PMAC.VXD 3个文件组成,共包含了250多个函数[3]。上位机与运动控制器的内核驱动程序的关系如图2所示。

开放式控制软件系统一般采用模块化的思想来设计,在此以典型的运动轨迹和基本的机械加工功能要求来编制软件。软件开发中主要用到VC++的动态链接库以及多线程的编程方法来实现。软件的整体设计框架为图3所示。

3.2 控制软件的具体设计[3]

3.2.1 编程准备

(1)首先将运动控制器插入工控机的PCI插槽中并安装好驱动程序。

(2)安装运动控制器的测试程序并且调试坐标系中各轴伺服电机。具体调试界面如图4所示。

3.2.2 PMAC内核程序设计

在成功安装了运动器后,就需编写与控制目标和任务相应的PMAC内核运动程序。PMAC能够支持多达256个运动程序[3],这体现了PMAC强大的伺服功能。首先按PMAC的指令设置坐标系,PMAC中的坐标系是指一个或者一组为了同步的目的而组织起来的电机,然后通过轴定义语句为电机分配轴来建立坐标系。坐标系在任何时候都可以按要求执行程序中的任意一个。其次根据所需运动要求来选择适当的运动指令,然后按照PMAC语法编写运动程序,下载到PMAC内存后运行。并联机器人的PMAC运动程序如下:

控制系统功能设置(Setting up and Definition)[6]

COLSE //确保所有缓存关闭

&1 //设置坐标系1,以角度定义轴

#1->1024X //匹配轴1电机,1024cts/度

#2->2000Y //匹配轴2电机,2000cts/度

#3->2000Z //匹配轴3电机,2000cts/度

#4->5000A //匹配轴4电机,5000cts/度

#5->512B //匹配轴5电机, 512cts/度

#6->277.7787C

//匹配轴6电机,277.7787cts/度

M70->F:$D200 //DPROM中的32位浮点

M71->F:$D201 //浮点运算变量

M72->F:$D202 //给PMAC传送关节位置

M73->F:$D203 //主机发送用指针变量

M74->F:$D204 //写入数据

M75->F:$D205

M113->X:$C000,13,1 //中断位设置下一点

————运动程序部分(Motion Program)

OPEN PROG1 CLEAR //打开程序缓冲区

SPLINE1 //三次样条运动模式

TA5 //设置样条部分时间为5ms

INC //增量模式

X0 Y0 Z0 A0 B0 C0 //初始零距离运动

X0 Y0 B0 A0 Z0 C0 // 第二次零距离运动

ABS //进一步的运动取绝对值

WHILE (P1>0) //主机设置P1来退出

X (M70)Y(M71)Z(M72)A(M73)B(M74)C(M75)

M113 = 1

END WHILE //循环结束

CLOSE //关闭程序

当设置好了运动程序后,就须利用PMAC的在线命令语句来设置运功程序所要求的各种变量参数。可在图4所示软件中反复调试Ix30-Ix35(x=1~6轴),Ix87-Ix88(x=1~6轴)的参数来精确调节机器人各轴电机的运动效果。调试界面如图4所示。

3.2.3 相关运动控制器接口函数的说明

开放式运动控制器最大的优点是该运动控制器为用户提供了相关不同分类的接口函数,用户在软件编制过程中可以依据相关要求灵活调用。本系统中用到的常用函数为

(1)BOOL OpenPmacDevice(DWORD dwDevice)

此函数为应用程序使用PMAC打开了一个通道。应用的前提是已经安装调试好动态链接库,并且PMAC已经在这个操作环境下注册完毕,能够有效地寻址。其参数dwDevice为希望打开的设备号,一般为0。返回值为TRUE则表示连接成功。

(2)BOOL ClosePmacDevice(DWORD dwDevice)

当程序运行完毕,必须关闭所打开的通道,此函数就是实现这个功能。参数及返回值意义与打开通道函数OpenPmacDevice()相同,且必须与OpenPmacDevice()配对使用。

(3)BOOL PmacConfigure(HWNDhwnd,DWORDdwDevice)

该函数可以设置PMAC与上位机的通讯方式:总线通讯或者串行口通讯。当第一次安装PMAC或者PMAC跳线地址发生改变的时候,必须调用该函数设置PMAC的通讯方式和总线地址。

(4)PmacSendLine (LPCTSTR outstr)

该函数作用是给PMAC发送指令,参数Outstr为发送给PMAC的指令字符串。

(5)PmacGetResponse(DWORD dwDevice, LPTSTR s, UINT maxchar, LPCTSTR outstr)

该函数的作用为向PMAC卡发送请求/命令,并接收PMAC的响应放入用户响应缓冲区。参数意义为:dwDevice是设备号;s为响应缓冲区;maxchar代表接收最大字符数;outstr是发送给PMAC的指令字符串。

4 控制软件的实验及其分析

上文已建立了坐标系,设置了坐标系内的轴以及匹配好了各轴的电机,亦依据目标任务编写好了PMAC运动程序。就可以依据相关的要求编写上位机程序来实现并联机器人作业的目的。在此以机械制造中斜面加工的实验来证实此控制软件设计的实用性。

(1)利用VC++中MFC的类库设计加工要求所需的用户界面。将PMAC运动控制器所提供的基本运动函数类以及动态链接库函数隐式调用到软件工程中,将config.ini,mac2ssp2v101.dll,config.pmc等文件与本文所编写的ParallelRobot.dll文件放在同一目录下。

(2)在建立好了主程序工程后,再在VC集成环境中点击“/project/settings...”菜单弹出“project settings”对话框。选“Link”选项卡,在“object/library modules”栏中导入刚生成的链接库函数文件名ParallelRobot.lib后,再在主工程实现文件中添加头文件ParallelRobot.h该头文件是运动控制器的相关运动函数的声明。

(3)软件程序中对运动控制器的初始化:在程序的开始必须调用运动控制器的初始化函数,只有在调用初始化函数成功后才能进行卡内封装运动函数的调用。

在本实验中,由于斜面加工的实验中要保持并联机器人末端铣刀与垂直方向成角度的姿态(这里=30度),沿被加工物件的一个面方向运动,用旋转铣刀铣去金属零件的棱,这样就能铣出一个为30度的斜面。设计能够实现并联机器人控制的目的,能够达到斜面加工的作业要求。

5 结论

本文依据并联机器人开放式的硬件结构,充分利用上位工控机的多任务协调工作的性能和开放式运动控制器的强大运动功能,设计出符合要求的软件系统。实验证明所设计的软件具备良好的稳定性和广泛的应用性,能进行系统升级和移植,为开放式运动控制系统的运用提供了参考。

参考文献

[1]范永,谭民.机器人控制器的现状及展[J].机器人Robot,1999(21).