基于OpenGL ES的嵌入式数控雕刻系统加工仿真设计

2011-10-18 14:32唐善斌
制造技术与机床 2011年6期
关键词:词法像素点嵌入式

刘 俊 唐善斌 刘 洁 肖 文

(三一重工搅拌设备研究院,湖南长沙410100)

目前,市场上出现的嵌入式数控系统大都采用二维画图来实现加工轨迹仿真,实现三维加工轨迹仿真的很少。主要原因在于嵌入式处理器对OpenGL ES的支持不够。随着嵌入式技术和制造工艺的发展,ARM处理器的主频不断提升,对3D加速也提供了足够的支持,使得嵌入式数控系统轨迹加工的三维仿真成为可能。

本文介绍了一种嵌入式数控雕刻系统轨迹加工三维仿真的实现方法。嵌入式数控雕刻系统以WinCE6.0作为嵌入式操作系统,VS2005作为应用程序开发环境,采用三星公司的ARM处理器S3C6410作为CPU、NOVA公司的MCX314芯片作为运动控制芯片。通过本仿真软件,可以实现NC加工代码编译、雕刻图形的三维建模、以及加工轨迹的动态仿真。

1 OpenGL ES平台构建

OpenGL ES是针对嵌入式系统专门设计的跨平台的、功能完善的2D和3D图形应用程序接口API,它由桌面OpenGL子集组成[1]。针对硬件资源相对紧缺的嵌入式系统,OpenGL ES具有统一标准的操作系统平台接口层EGL,保留OpenGL最常用的API,并增加了新的特性:定点运算、字节匹配、调色板纹理[2]。目前OpenGL ES已经发展到2.0版本,其可编程流水线示意图如图1所示。

根据2.0版本的可编程流水线,OpenGL ES的初始化过程如图2所示,分六个步骤,分别是:获取Display、初始化 EGL、选择 Config、构造 Surface、创建 Context、显示。各个步骤对应的调用函数为:eglGetDisplay、eglInitialize、eglChooseConfig、eglCreateWindowSurface、eglCreateContext、eglSwapBuffers。OpenGL ES 简化了模型描述,取消了通过在glBegin/glEnd之间使用大量glVertex之类的调用来逐点描述模型[3],统一使用VertexArray(顶点数组)来绘图。

2 NC代码的编译

仿真程序首先要对NC文件进行编译,才能获得雕刻图形的加工信息,然后通过数学运算得到待仿真模型的像素点和灰度信息,进而才能进行三维建模。NC代码的编译流程包括:语法和词法检查、语义分析、生成可识别的中间数据。首先根据数控机床标准G代码(JB3208-83)设定规则库,根据规则进行词法、语法检查和语义分析,并设立出错信息表,方便用户查找错误和分析错误原因以及进行出错处理。词法语法检查包括:去除无效字符如注释信息、程序段中的空格、N指令等;根据NC代码的组词规则进行逐个检查,包括代码中的字符是否合法、代码的参数是否合理等[4]。语义分析主要的规则有:NC代码功能指令代码和坐标代码在每一行中只能出现一次;X、Y、Z、F 等代码的取值不能超过机床的设定范围;圆弧运动指令 G02、G03必须指定圆心坐标及半径;F指令只对 G01、G02、G03 有效,对G00无效等。

通过如图3所示的编译流程,得到中间代码,并将其保存到一个数据结构体中。定义如下:

}*pNCCodeData;根据NCCodeData结构体中的坐标信息和脉冲当量信息可以计算雕刻图形的像素和灰度(即加工深度),从而为三维建模和仿真提供数据源。

3 三维建模以及实时仿真

3.1 雕刻图形的三维建模

根据CCodeData提供的数据源,通过逐点比较的方法获得X轴和Y轴方向的最大最小值,从而确定待加工幅面的大小。通过坐标变换和比例变换将工件坐标转换为图形的像素点坐标。CAD/CAM软件处理图形时,需要设定加工深度h。灰度值gray可以根据加工深度和Z轴工件坐标计算得到。设g(x,y,z)表示工件坐标(x,y,z)处的像素点灰度值,图形灰度值为256时可由如下公式得到:

根据公式(1)得到的像素点坐标和灰度值以向量的形式保存,然后调用OpenGL ES的相关画图API函数(如glDrawArrays)构建雕刻图形的三维模型,再结合加工初始信息可以实现加工轨迹仿真(如图4所示)。

3.2 加工轨迹的实时仿真

加工轨迹实时仿真有两种方式:逐行扫描和轮廓跟踪扫描。本系统支持这两种扫描方式。当前加工的坐标数据的刷新由WINDOW的多线程技术实现,在自动加工过程中,建立一个加工监控线程,由其实时读取运动控制芯片MCX314返回的当前加工点的坐标数据。然后根据公式(1)获得当前加工点的像素点坐标和灰度值,在OpenGL ES平台中完成当前加工点的重绘。三维建模以及实际加工的效果图如图5所示。

4 结语

本仿真软件主要可以实现以下功能:(1)对NC文件进行词法语法检查以及语义分析;(2)对雕刻图形进行三维建模;(3)三维仿真雕刻图形的加工过程,并得到加工结果;(4)同步显示机床状态和加工时间;(5)在实际雕刻过程中实现与加工过程同步的动画效果,从而方便用户监控和观察雕刻加工过程。通过VS2005开发平台,本仿真软件已成功移植到嵌入式雕刻机的操作系统WinCE6.0中,目前已成功应用于中国地质大学机械与电子工程研究所研制的嵌入式数控木雕机系统。利用OpenGL ES技术在嵌入式数控系统中进行三维仿真,具有十分广阔的应用前景。

[1]史扬,吴金平.OpenGL ES图形标准在嵌入式系统中的应用[J].工业控制计算机,2008,21(3):27-29.

[2]Aaftab Munshi,Dan Ginsburg,Dave Shreiner.OpenGL ES 2.0 programming guide[M].New Jersey:Addison Wesloy,2008.

[3]Kari Pulli,Tomi Aarnio,Ville Miettinen,et al.Mobile 3D graphics with OpenGL ES and M3G[M].Amsterdan:Morgan Kaufmann Publishes,2007:170-193.

[4]刘冲,杨代华,张晓婷.基于工控机的G代码编译程序设计[J].机械设计与制造,2007(5):60-62.

[5]吴涛,杨代华,章文献,等.用 VC实现数控雕刻机加工过程仿真[J].机床与液压,2003(5):130-131.

猜你喜欢
词法像素点嵌入式
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
基于局部相似性的特征匹配筛选算法
TS系列红外传感器在嵌入式控制系统中的应用
基于5×5邻域像素点相关性的划痕修复算法
搭建基于Qt的嵌入式开发平台
基于canvas的前端数据加密
应用于词法分析器的算法分析优化
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
倍福 CX8091嵌入式控制器
语文学习方法之组词法浅谈