为机床工具企业提供深度市场分析                     

用户名:   密码:         免费注册  |   点击 进入企业管理  |   申请VIP  |   退出登录  |  

English  |   German  |   Japanese  |   添加收藏  |  

车床 铣床 钻床 数控系统 加工中心 锻压机床 刨插拉床 螺纹加工机床 齿轮加工
磨床 镗床 刀具 功能部件 配件附件 检验测量 机床电器 特种加工 机器人

TPI
搜索
热门关键字:

数控机床

 | 数控车床 | 数控系统 | 滚齿机 | 数控铣床 | 铣刀 | 主轴 | 立式加工中心 | 机器人
      用户频道:    应用案例 |  汽车 |  模具 |  船舶 |  电工电力 |  工程机械 |  航空航天 |  仪器仪表 |  通用机械 |  轨道交通 |  发动机加工 |  齿轮加工 |  汽轮机加工
您现在的位置:数控机床市场网> 专题>五轴加工中心设计与工艺
模拟机训练系统操作模块研究
2016-8-2  来源:天津职业技术师范大学  作者:岳刚

  
 
      4.1 模拟训练系统的需求分析
  
      数控编程技术类课程是大中专院校数控机械专业必修的一类专业课[57]。它作为一项侧重动手能力培养的课程,在实际授课中必须穿插一定的试验实训课程来使学生充分理解和掌握课程的精髓。数控程序的编写和现场机床实践是授课的一个必需环节[58]。但是由于资金不足、场地匮乏等限制条件,当前大中专院校机床配备明显不足,甚至会出现同一专业学生不能在同一学期进行数控实训的现象,这就违背了理论结合实践的初衷[59],无法使理论与实践相互印证。因此,面对五轴数控机床配备不足的实情展开了模拟训练系统研究。
  
      该系统主要用于教学及培训,专门为职业院校以及工科大学数控类课程实践打造,以解决大规模数控实训与培养学生动手操作能力的难题,同时也解决了机床数量与学生数量不匹配的供需矛盾[60]。使用模拟训练系统能够让加工制造类企业方便的实现加工代码的编写和检验,为真实机床的使用节省了时间,提高了生产效率[61]。此模拟训练系统以西门子840D 为蓝本,所研发的模拟训练系统需要拥有此机床的主要功能,模拟训练系统需要满足以下几点要求:
  
      (l)该机床的一比一立体模型可以在模拟训练系统中实现与实体机床相同的各种运动及切削效果。
  
      (2)支持实时的手动输入加工代码、能够支持各种 CAD/CAM  软件编写而生成的加工代码。
  
      (3)拥有反馈能力:可以针对刀具、零件、床身的相互碰撞做出变色发声等警告和反馈;具有欠切、过切反馈功能;能给虚拟机床各轴设置行程限制,超出时发出警告;有一定的加工代码差错功能等。
  
      (4)可以完成五轴数控机床各种加工辅助的模拟,比如三色光状态显示灯,切屑,切削声音等,令模拟器更加接近真实机床。
  
      (5)通过立体模型运动模拟工件切削过程,并且能够对立体模型进行局部放大或缩小、调整视角等操作。
  
      (6)拥有人性化的后台及前台人机交互页面,使操作者体验到与真实机床相同的感受。具有一定的帮助信息,具有五轴数控机床二次开发功能及实训功能。
  
      4.2 仿真系统的功能模型
  
      由上一节模拟器系统总体需求分析可以推出模拟机训练系统必须拥有以下功能:
  
      1.模拟切削场景功能
  
      对于模拟机训练系统立体仿真的要求,此系统需要支持立体模型导入,用专业绘图软
件来进行模型的构建,实现完善系统模拟性能,模拟场景有:
  
      1)机床结构模型的组建以及模拟背景组建
  
      2)毛坯的外形尺寸、夹具的外形尺寸定义。
  
      3)加工用刀具的构建。允许使用已构建的刀具库内的刀具信息来进行重定义,也允许直接指定刀具各部分外形和大小来构建新的刀具。
  
      2.模拟切削动作的功能
  
      需要拥有下列功能:
 
      1)五轴数控机床模拟训练机系统和西门子 840D 实体数控系统,在加工代码、零偏设定等方面保持一致。可以识别标准  G  代码加工程序。
 
      2)模拟功能。可以模拟五轴数控机床各轴、刀库、丝杠等组件的移动过程,动态化的再现五轴数控机床切削时刀具相对毛坯移动以及切屑掉落过程;可以利用色彩的改变,以及声音表示刀具与毛坯、刀具与机床的碰撞等事件。
  
      3)可以动态模拟五轴数控机床自动换刀的过程,并且能通过手轮完成加工偏置的测量与输入。
  
      4)可以针对五轴数控机床的多种附加功能做出模拟,例如三色光指示灯随加工状态的变化。
  
      3.检验分析的功能
  
      加工质量检验功能。能够将切削过程中或切削完成后的零件三维模型导出,然后测量零件尺寸以及观察零件形状是否符合预期标准。同时,具备一种对照功能,即比较加工后零件与预期零件之间的差别,根据有无差别以及差别大小,推算出工件加工过程中是否发生过切或欠切过程。
 
      4.完全模拟机床界面
 
      依据西门子 840D 机床界面构建软件前台界面,拥有当前坐标显示、加工偏置设定等辅助界面,并且完全开放可二次开发,能够依据自身需求进行定制。
 
      4.3.1 仿真系统开发环境的选择
   
      五轴数控模拟训练机系统是一台具有键盘面板手轮等硬件以及机床三维模型的教学仪器[62]。伴随着电子计算机显卡 CPU 等图像和数据处理硬件的飞速进步,以及三维建模仿真算法和软件快速发展,虚拟加工技术越来越完美的呈现出机床的实际加工运动状态,这给五轴数控模拟训练机系统的搭建提供了不同种类的研发环境和技术手段。通过大量阅读文献,以及网络调研,综合考虑研发目的以及应用环境,能够使用的技术方案如下:
 
 
      a:基于VC++以及三维绘图软件研发;
 
      b:基于VRML 技术的研发;
 
      c:基于 C#和 Open GL 的二次开发。
 
      虽然已经有许多技术人员基于 Open GL 做了机床模拟器的研发与运用领域的探索[63][64]。北航李军峰运用 Open GL 对数控机床进行了加工模拟仿真研究[63],不过他讨论的内容只是机床仿真系统的构建以及模拟工件切削过程,对添加硬件的完全型模拟数控技术研究以及专门为实训课程所开发的教学功能性数控系统研究较为浅显。缺乏适合于特殊用户的数控模拟教学及虚拟仿真系统,功能的深度开发与探索较为浅显[65]。
 
      本课题是在目前较为先进的数控机床基础上进行虚拟仿真器的构建以及模拟系统的开发。使用对象是广大学生以及培训工作人员,在 Open GL 上进行二次开发可以减少开发周期以及开发成本[66],同时基于 Open GL 的技术成熟度,数控仿真器的开发更加方便快捷。通过对比所提出各个方案的多种优点以及缺点,同时联合本论文的实际研究对象和研究方法,选择 Open GL 与 C#进行联合开发方案,作为五轴数控机床的模拟器控制系统的开发平台。
  
  
      4.3.2 Open GL 概述
 
      一般来说,数控加工模拟软件其最主要的部分就是仿真过程的显示,仿真模拟的外放过程决定了编制软件的水平层次,具备优秀的图像显示以及完备的人机交互功能是一个虚拟仿真软件必不可少的功能[67]。采用完备的图形技术标准作为模拟软件图形显示的主要技术支持非常有必要。基于图形标准在图像显示的重要作用,计算机技术的发展带动了图像显示领域的发展[68],目前,主要的图形显示标准有 Core、Hoop S、Open GL 等。在市场竞争与产品的更新换代下,Open GL 脱颖而出称为了目前国内外 3D 图形显示领域的基本标准,具有重要的领域地位。基于 Unix 平台的 PC 机下的 Open GL 已经得到了比较成熟的使用。以下是对 Open GL 图形库基本内容的简单介绍[69]。
 
      Open GL 全称为开放式图想编辑库(Open Garphics Library),计算机的发展以及人们对图形见面观赏效果的质量要求,推动了计算机图形库软件的发展,Open Garphics Library就是在这样一个环境下所诞生的产品[70]。该软件由上百个过程程序与函数共同构成,采用图形编辑库内部的图形编辑函数函数,使用人员可以构建出质量优越的三维模型,不需要操作人员具有专业的数学图像处理知识,只需要采用特定的方式,构建好自己所需要的图形编辑软件[71]。在 Open GL 编辑环境下,使用者能够采用较少的步骤构建具有较高质量的三维图像,在动画的制作上,Open GL 使用起来也能得心应手。Open GL的原型是 SGI 公司为了将客户从传统的计算机编程软件与硬件系统中解脱出来而开发的一款图形开发环境,主要是为图形工作站服务,它具有独立于窗口操作与计算机硬件环境等特点,进行图形编辑时不用花较多的时间去理解系统的主要结构和控制指令,采用固定格式进行应用程序的编制就可以在支持 Open GL 系统的平台进行软件的执行[73]。

        a)Open GL 的主要特点
 
      (1)工业标准:Open GL 的应用标准由专门研究 Open GL 构架的审查委员会进行技术指导,在审查委员会的监督下,Open GL 做到了行业开放、无商业利益牵连,兼容性优良的图形标准。
 
      (2)稳定性:Open GL 经过 10 多年各种平台的实际应用效果检验,器不断的优化与根性使其具备了良好的控制特性与编写规范,其软件具备向后兼容性,对于软件和硬件的跟新十分方便。
 
      (3)可扩展性:Open GL 中具有一种自动扩展的软件接口,即 API。采用该扩展程序,可以对图形编辑软件进行额外功能的扩展;
 
      (4)简单易用性:基于 Open GL 的优越控制结构,简单的设计以及完整的逻辑控制程序,使得用户在该图形编制界面下,可以采用较少的程序代码就可以得到完整的程序,同时 Open GL 内部刻录了系统硬件的相关信息,程序开发人员在进行程序编制时不用对硬件进行详细设计[73]。
 
      b)OPen GL 提供的基本功能
 
      (l)二维和三维造型:由于现实中的各种实际物体均能采用点、线、面进行三维描述,Open GL 具有完整的图形编辑命令,对实际物体的模拟绘制十分简单方便。
 

      (2)图形变换:由于复杂的图形可以通过基本单元经过不同的变换进行实现,Open GL中具备系列基本变换,因此可以对基本图形单元进行合理的控制变化,产生所需要的图形。
 
      (3)光照处理:为使所绘制的图形具有较为真实的视感,需要对三维图形进行光照处理和渲染。
 
      (4)着色:Open GL 内部具有多种模型的着色方式,其一是 RGB 颜色编辑模式,另一种是颜色索引模式。
 
      (5)反走样:Open GL 中主要采用位图模式进行图形的编制,而位图模式在绘图时会产生边界锯齿,该锯齿称为图形走样,为了降低和弱化这种图像边界锯齿,Open GL 内部具有多个点、线、面以及多边形的反走样函数程序,可以有效的对图像边界锯齿进行弱化和消除,达到清晰显示的目的。
 
      (6)融合:在 Open GL 中,为了使三维模型具有较高的实物视觉体验,对三维模型进行半透明或者透明处理是主要技术手段,而该手段实现需要采用图像融合技术进行模拟。
 
      (7)雾化:雾化效果在图形编辑中具有较高的使用频率,由于雾化可以模拟真实环境中雾的存在,在模型的构建时具有一定的使用意义,而 Open GL 软件包中的“fog”就可以对模型图形进行系统雾化效果实现。
 
      (8)纹理映射:计算机图形图像显示学中,所有具有颜色、值、光亮度等数据三维物体所构成的矩形数组被称为模型的纹理。三维模型的纹理映射就是把该物体所具有的纹理数组在模型表面进行投影,从而使该模型具有更加直观的表达效果。
 
      (9)动画效果:在 Open GL 中,动画的实现是该软件包的主要特点之一,Open GL 通过设置 RI 图形缓冲区区来实现动画的演示是目前主流的实现形式[74]。为了在虚拟软件中得到运动平滑的界面动画,模型的动态过程必须在被投影到屏幕前在系统内存中建立相应的界面帧,才能保证动画播放的流畅度。而 Open GL 通过运用双通道缓冲方式,在系统内存中了构建多个基本场景界面帧,屏幕对动画进行帧的播放时,后台内存中存储着下一界面的多个帧,该方式对运动动画的显示效果十分具有优势,对于高速运动的图像仍能快速处理。
  
      c)Open GL 的工作流程 
  
      首先,控制程序从左侧进入 Open GL 的软件程序包,通过其中包含有几何数据以及像素数据两者,经过求值器、像素操作,纹理映射、光栅化等多种图像处理方式,最后生产待显示的图像帧。在该处理过程中,基于的 Open GL 函数分析包,会将得到的数据储存在程序列表中,并按照一定的顺序进行解算处理,图像处理的求值过程是对所输入数据的求值多项式进行几何曲线以及曲面的拟合绘制;然后会对图像的各个定点以及微型图元进行对应的组合,同时采用特殊的变换方法对定点和光照进行有效处理,将图元进行修改和裁剪,从而得到适合实际视觉的大小[43]。而在后续的图像数据光栅化中,Open GL 主要采用对点、线、多边形进行二维数值描述的方法,生产对应的像素储存和图像帧的缓存地址;当所输入的处理对象是像素数据时,上述过程中的“求值器”将不再起作用,而会在像素值处理阶段进行处理,该阶段的处理结果可以储存为模型的纹理内存,从而在图像的光栅操作中进行分析时使用[35],同时也可以采用与几何模型数据相同的方式进行数据光栅化。
 
      d)Open GL 的动画技术
   
      数控加工模拟软件的动态显示是仿真系统的主要功能之一,采用基于 Open GL 开发包的仿真过程动画显示具有突出的技术优势。
  
      Open GL 开发包的数控仿真动画实现主要采用双重缓冲算法以及交互函数,双重缓冲区包含两个部分:前缓冲区域以及后缓冲区域[37]。双重缓冲作用方式是当前端缓冲区域画面得到显示时,后端缓冲区域同时处理下一阶段的缓冲内容,前缓冲区域的目标内容得到显示后,后缓冲区域的内容进行显示,显示的同时前缓冲区域对下一帧的内容进行处理,当后缓冲区域的内容显示结束后[43],再次显示前端缓冲区域所处理完成的内容;此过程进行重复运行,就会得到图形的连续显示效果。Open GL 所采用的双缓存显示技术,绘制图像的同时可以对上一帧的内容进行显示,十分方便的克服了模拟动画播放时屏幕闪烁的问题,可以对复杂的动画图像进行显示和处理,其主要缺点就是图像的显示速度会受制于图像的加工速度[42]。采用基于 Open GL 的双缓存技术,能够在数控仿真模拟软件中进行有效运用,实现对数控加工过程中的刚体运动、变形、模型变化、视觉效果的有效处理和实时显示。同时 Open GL 提供了基于 Windows 系统的 API 扩展函数:Sw Pa Bueffsr 可以对缓冲区的处理对象进行快速交换,功能十分完备可靠。
 
      e)系统的开发平台
 
      基于 Open GL 图形库的技术特点和应用优势,目前主流的系统程序编写软件,Visua1C++6.0、C++Builder 以及 C#等,都采用了 Open GL 图形库作为自身的扩展模块,用来加强系统编译软件对图形图像的分析及处理能力,而其中之一的 C#,是目前最为成熟的窗口可视化程序开发平台,其隶属于微软公司,也是目前软件开发领域中非常优秀的开发平台之一,其强大的功能以及相对简单的使用性,十分适合本系统的开发[49]。
 
      4.3.3 模型构建
 
      通过 Open GL 按实际比例进行机床模型的绘制,模拟各轴的运动,实现数控系统的手轮控制功能,构建模型如下图:
  
 
    
      图 4-2  虚拟机床模型
 
      4.3 机床手轮功能的实现
 
      本节研究了模拟数控系统的手轮操作实现方法。研究了一种利用 C#与 Open GL 完成实体手轮操作模拟数控系统的算法。使用 C#完成手轮操作处理程序,完成手轮的通讯,并进行转换,实现响应;利用 Open GL 模拟各轴的移动,完成模拟数控系统的实体手轮操作,并公开了核心部分的程序源代码[21]。通过这种方式,编写出的程序代码,具备很强的开放性和可移植性。
  
      手轮操作在数控机床操作中占据着非常主要的地位,在切削前对刀、机床各轴小范围移动等都要通过手轮完成[32]。手轮操作的实现难点是手轮大轮与选中轴移动的跟随性,跟随性能够分成两个部分,运动距离与运动速度。本章研究了一种利用 C#与 Open GL 完成实体手轮操作模拟数控系统的算法。
 
      4.3.1 硬件结构
 
      以手轮为控制机构,工控机为处理中枢,实现五轴数控机床模拟器中的虚拟机床与手轮的运动跟随。系统硬件连接如图 4-2 所示。系统连接框图如图 4-3 所示。
     
 
    
      图 4-2  系统硬件连接
 
   
      
    
      图 4-3  系统连接框图
  
      手轮通过串口将数据传输到工控机上,由工控机上的 C#语言编写的上位机软件(以后简称 C#软件)进行数据处理,区分不同的轴和倍率,以及使能是否按下。将处理后的数据通过 API 接口传输给Open GL,最终驱动虚拟数控机床相应轴的运动。
 
      4.3.2 手轮数据设定
 
      手轮通过串口发送给工控机的指令,由 C#软件存储在相应的变量中,手轮与 C#软件的通讯协议如表 4-1: 
  
      表 4-1  手轮通讯协议
    
      
     
      手轮利用RS485通讯协议与工控机相连接来实现数据交换。手轮的核心是旋转编码器,旋转手轮就能够生成一个表示当前位置的串码 A,手轮上的各个分度值都具有唯一的串码A。工控机接收到手轮发出的串码 A1 后,用 A1 和之前记录的串码 A0 求差,获得差值△,当△>0 就表示手轮正转,当△<0 就表示手轮反转。之后把|△|当做手轮移动距离。
 
      4.3.3 软件设计
 
      在操作界面能够实时显示 X、Y、Z、A、C 五个轴的相对位置或绝对位置,手轮当前位置,手轮旋转量,手轮倍率,手轮旋转速度。调试软件界面如图 4-4 所示:
 
         
    
      图 4-4  软件界面
 
      数控机床手轮功能的实现,是数控机床控制系统设计中的重要的一环,本文详细论述了利用 C#软件和 Open GL 实现手轮运动和速度跟随的方法,并通过实验论证了方法的有效性。
 
      4.4 机床多系统的实现
 
      本章详细的探究了多系统数控机床的设计过程,独创的提出了一种基于 C#和数控面板的方法,最终实现集多系统于五轴数控机床。通过 C#语言编写上位机软件,主要能够实现多系统界面切换和功能切换的功能,通过各机床的通用性,使多个系统共存在一个机床内,如果想完全换成别的机床系统,除了在软件界面上切换过来,还需要切换相应的面板,这样的话,在很大程度上提高了数控机床的利用率,特别适合用在学校的实训教学之中。
 
      在教学实践中,接触到的数控机床系统往往不止一种,国内外有多个厂家发布了数控机床系统,例如西门子、海德汉、华中数控、三菱和 FANUC 等。为提高学生的适应性,学校通常会同时采购多种数控机床,而这些机床通常床身的区别性不大,这样就造出来资源的冗余和浪费。因此,需要急需开发出一套能够融合多种数控系统的产品或者系统。
 
      4.4.1 实现原理
 
      实现对应的功能,需要的硬件主要有:工控机一台,西门子 840D、海德汉 530i 的数控面板。
 
      两种数控面板分别通过串口与工控机相连接并实现通讯。工控机将根据接收到的数控面板的键盘命令进行相应的运算和操作,通过 API 函数驱动 Open GL 中的虚拟机床进行相应的运动。由工控机处理 Open GL 反馈的运动坐标及其他参数数据,并实时控制数控面板上界面的切换和文字的显示,控制系统的流程图如图 4-5 所示:
  
     
     
         图 4-5  控制系统流程图
 

      4.4.2 工控机程序编写
 
      工控机作为多系统机床的核心,综合处理各组成部件间的信息,让数控面板、手轮、指示灯等硬件和虚拟数控机床有机的结合在一起,协调工作。软件的原理是将各系统的数控编程语言进行转化,转化成统一的程序代码。并且将需要显示的数据,如各轴坐标值、主轴转速、当前刀号等数据做为全局变量,实现数据处理的通用化;另外在更换系统时,可以直接提取相应的变量,实现数据显示的通用化。  
 
      程序的功能完全可由目前很成熟的、简单的 C#编程语言来实现。下面就代表性代码进行说明。
 
 
      首先是机床当前状态,机床当前状态是指在机床运行过程中所处的状态,比如切削状态、当前刀具偏置、当前倍率等数据。这些数据通过全局变量来存储可以实现各系统通用化的调用,下面是机床当前状态的申明:
 

      Public Bool  jc_xunhuan_start // 机床循环启停,循环启动为 1,循环停止为 0 

      Public Int  jc_m oshi// 机床模式。
 
      Public Bool  jc_wcs_mcs// 机床坐标状态,1 代表 wcs,0 代表 mcs 
   
      Public Int   bzw_开始读坐标//运行状态为 0  停止状态为 1 
  
      Public Double  jc_ 摆头偏置_x // 机床的摆头偏置 x Public Double  jc_ 摆头偏置_y  // 机床的摆头偏置 y 
  
      Public Double  jc_ 摆头偏置_z  // 机床的摆头偏置 z 
  
      Public Double  jc_ 已存偏置_x(16)//机床的已存偏置 x(相应轴对刀后)
 
      Public Double  jc_ 已存偏置_y(16)//机床的已存偏置 y(相应轴对刀后)
 
      Public Double  jc_ 已存偏置_z(16)//机床的已存偏置 z(相应轴对刀后)
 
      Public  String  jc_ 当前零点偏移//设置当前激活的零点偏移,如 G54 等,若为空则未激活任何零点偏移
 
      Public Double  jc_ 切削进给倍率//切削进给倍率
 
      Public Double  jc_ 快速进给倍率//切削进给倍率
 
      Public String  jc_ 手轮倍率 //手轮倍率
 
      Public String  jc_ 手轮轴 //当前手轮轴
 
      Public String  jc_ 手轮位置 //当前手轮大轮位置—之前
 
      Public String  jc_ 手轮位置_当前//当前手轮大轮当前位置
 
      Public Int   jc_手轮串口号//运行状态为 0  停止状态为 1 
  
      Public Int   jc_西门子键盘串口号
  
      Public Int   jc_海德汉键盘串口号
  
      Public Long  jc_ 开机延迟 //默认为 25000 
  
      研究了一种基于工控机和 C#实现多面板数控机床的方法,以 FANUC 系统的数控编程语言为例,详细说明了实现方法及思路。工控机界面通过 C#语言编写,同时工控机实现了对数据的分析和处理,集成了数控机床控编程系统,达到了节约了购置成本的效果。完全自主搭建好的多系统数控机床,已成功的应用在自主研发的五轴数控机床模拟训练机上,并且达到了理想效果。
 
        表 4-2  面板通讯协议
      
       
  
      4.5 机床面板功能的实现
 
      机床面板是用户与机床进行交互的主要输入装置,为了给用户提供真实的操作体验,机床面板采用采用物理面板。面板采用单片机加矩阵键盘的形式,键盘自主设计制作,采用双单片机并联模式,满足组合按键按下的需求。面板通讯协议如表4-2 所示。
 
      4.6 虚拟电机运动的实现
 
      五轴数控机床通过控制电机的转动,带动丝杠,进而实现各轴运动,在运动过程中有连续性;而虚拟机床通过改变各轴与机床的相对位置,来实现五个轴的运动,因此改变相对位置值之后,相应的轴会立即运动到指定位置,这就和实际机床运动有冲突了。
 
      为使虚拟机床运行达到与实际机床相同的视觉效果,特别设计了虚拟电机运动算法。
 
      参考 PLC 控制伺服电机的方法,有两种方式:
 
      第一种:一般的 PLC 都具备高速脉冲输出口,通常有两个。通过这两个高速脉冲输出口,就可以直接驱动伺服电机,电机运动的速度跟高速脉冲输出口的脉冲频率成正比,电机旋转的圈数跟高速脉冲输出口的脉冲个数成正比,如果需要反转,再通过一个 I/O 信号就行。第二种:有一些 PLC 是具备定位模块的,比如 GE,这种定位模块是通过读取 PLC中 CPU模块传过来的运行命令的数据,最终转换成能够驱动伺服电机的方向和脉冲。由于定位模块内部接口是为控制伺服而设计的,所以能够和伺服驱动器进行数据上的交换,能够读出伺服报警信号信号,伺服使能信号,伺服定位结束信号,还有其他的一些伺服电机控制方面的信号。
 
      伺服电机控制的方式一共可以分为两种,分别为脉冲控制和模拟电压控制。
 
      1、脉冲控制方式可以细分为位置控制模式和转矩控制模式;
 
      2、模拟电压模拟电压控制一般通过模拟量去控制伺服电机,可通过 PLC 的模拟量输出去控制伺服电机,同时也可通过定位模块去控制。
 
      所以为使虚拟电机能达到同样的连续运动效果,可以模拟电机的脉冲运动效果,将结果分段显示,将剩余移动位移转化为有限个小的位移,以脉冲的形式发送移动指令,这样就能达到把瞬间移动转化为多个瞬间移动,然后每个瞬间移动之间,插入一个小的延时,这样就可以得到连续的效果。
 
      理论上讲延时越小则观察到的连续性越好,但是对于程序来讲,延时越小发出的脉冲越多,过大的频率会导致系统卡顿,经测试,极限频率为 100Hz 左右,所以延时大于 10ms即可;而电影的播放速度为 24 帧每秒,即 42.6ms/帧,也就是延时应该小于 42.6ms,所以每帧的时间差可以取 Δt =40ms ,这样既可以骗过人眼,让使用者认为运动是连续的,又不至于影响系统的稳定性。
   
      然后是脉冲的个数 N,也就是完成一个运动需要的脉冲数量;每个脉冲移动的距离Δs ;还有最后一个脉冲移动的距离δs 。 
   
下面可以开始构建电机运动函数了,函数输入值为所选坐标轴 axis、位移 S 和速度 V(若 S>0 则正向移动,若 S<0 则反向移动),这样可以计算出移动用时 t。基于以上讨论,可以推导出如下公式:
 
     
  
      用这几个公式可以构成虚拟电机的运动主函数,把输入的位移和速度值分解为脉冲数、每个脉冲所走距离、最后一个脉冲所走距离,然后循环调用运动子函数。虚拟电机运动主函数构建伪代码如下:
  
      static void Dian Ji(Double S  ,Double V,Int axis)
   
      {Int N 
  
      Double d S  
  
      Double dd S 
   
      Int axis 
 
      Double t  
  
      t = S / V //计算总时间
 
      N = Math.Floor(t / 40)  + 1 //计算总脉冲次数
 
      d S = Math.Floor(S / N)  //计算每个脉冲所走距离
 
      dd S = S / N - d S //计算最后一次脉冲的剩余移动量
 
      XNDJ( N, d S,dd S,axis) //调用电机子函数} 然后构建虚拟电机的运动子函数:
 
      static void XNDJ(Int N,Double d S,Double dd S,Int axis  )
 
      {//虚拟电机函数,参数分别为脉冲数、每个脉冲所走距离、最后一个脉冲所走距离、所选坐标轴
   
      //其中调用的函数有
 
      //Move To(Int axis,Double s  )//(使选定轴 axis 移动距离 s)
 
      //Sleep YS(Int time  )//(使程序延时,单位 ms)
 
      //其中使用的全局变量有
 
      Int Stop XNDJ (用来停止相应轴的电机运动函数,0 为不停止,不为 0 则停止相应轴)
 
      If (N > 1)  
  
      {For(i = 2;i < N+1;i++) //完成前N-1 次脉冲
 
      {Move To(  axis,d S) //完成前 N-1 次脉冲中每次对应轴的移动
 
      I f (Stop XNDJ = = axis)  
  
      { return}//跳出循环条件Sleep YS  (40)//延时 40ms } 
 
   
      Move To  (axis,dd S) //完成最后一次脉冲的剩余移动量} 
  
 
      在虚拟电机的运动函数中,输入参数为脉冲数、每个脉冲所走距离、最后一个脉冲所走距离、所选坐标轴,每次调用可以完成相应轴的有限次的移动,直到移动结束;也可以响应中断,比如用户点击了循环停止按钮或改变了电机运动倍率。
 
      初期用的是系统的自带延时函数,发现使用时会使系统失去响应,用户无法进行其他操作,直到延时结束才能响应,所以虽然比较简单,但并不能应用在这里。新的延时函数,使用的是系统开机时间,先记录延时开始时的系统开机时间,再不断请求开机时间,将获取的新的开机时间与起始开机时间的差和延时长度对比,若差大于延时长度,则跳出循环。
 
      4.7 本章小结
  
      本章主要从五轴手数控机床模拟训练机的功能分析入手,分析和比较了三种虚拟机床的开发方案,选择基于 Open GL  以及C#  这两款工具来进行五轴数控机床模拟机的开发,并简单描述了Open GL  这款工具的主要特点,分析了Open GL 的功能优势。
 
      在上章中提到,五轴数控机床模拟器是基于 C#和 Open GL 进行二次开发,软件开发平台基于 Windows  系统,就需要将机床原有的伺服系统进行模拟,使原伺服系统及伺服电机可以在 Windows 中模拟出来,使模拟器中机床的运行符合真实机床的运行规律;同时可以驱动手轮、面板、键盘、指示灯等硬件,实现对用户输入的响应,包括键盘和手轮按键的触发,面板界面菜单的显示,指示灯的点亮和熄灭等。最终效果是使用户体验到操作真实五轴数控机床的感觉,最大程度的实现仿真教学的真实性。
 
    投稿箱:
        如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com
名企推荐
山特维克可乐满
哈斯自动数控机械(上海)有限公司
西门子(中国)有限公司
哈挺机床(上海)有限公司
北京阿奇夏米尔技术服务有限责任公司
陕西秦川机械发展股份有限公司