嵌入式数控系统G代码解释器的设计与实现.docx

嵌入式数控系统G代码解释器的设计与实现.docx

ID:56928182

大小:1.05 MB

页数:4页

时间:2020-07-23

嵌入式数控系统G代码解释器的设计与实现.docx_第1页
嵌入式数控系统G代码解释器的设计与实现.docx_第2页
嵌入式数控系统G代码解释器的设计与实现.docx_第3页
嵌入式数控系统G代码解释器的设计与实现.docx_第4页
资源描述:

《嵌入式数控系统G代码解释器的设计与实现.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、吴运金(中国船舶重工集团公司第七一○所湖北宜昌443003)摘要:本文在基于ARM+DSP的网络化嵌入式数控系统的基础上,设计出一种流水线处理方式的G代码解释方法,以流水线的方式对加工代码进行编译—解释,减少指令执行的时间,增强了嵌入式处理器的G代码处理能力。该G代码解释器在ADS1.2编译环境下调试通过,移植在S3C44B0芯片中,运行效果良好。关键词:数控系统代码解释器中图分类号:TP273.5流水线文献标识码:A文章编号:1674-098X(2008)11(b)-0037-021引言嵌入式系统是未来数控及运动控制产品发展的方向,它采用“量体裁衣”方式把所需功能嵌入到应用系

2、统中,可克服基于通用PC机数控系统结构在体积功耗方面的缺陷,它具有强大的外围资源和通信功能,可运行实时多任务Linux或者Windows操作系统,软件开发和移植容易,是当前数控系统精密化、网络化、智能化和集成化的发展方向[1]。本文提出的嵌入式数控系统的中央数控单元不是工业计算机或者PC机系统,而是采用ARM+DSP的结构,具有运算能力强、成本低的特点。嵌入式数控系统的其他单元,如伺服控制单元、PLC单元、通信单元、显示单元、数据键入单元,也在嵌入式系统的基础上搭建。完整的嵌入式数控系统包括以下模块:人机接口模块、网络接口模块、系统管理模块、仿真显示模块、G代码编译模块、插补模

3、块、刀具补偿模块、伺服控制模块、信号检测和故障诊断模块等。在嵌入式数控系统中,G代码解释模块是核心模块。用户输入G代码后,由代码解释器将代码翻译成数控系统能控制各个电机的指令,包括G指令、M指令、S指令和T指令等。当执行G指令时,系统调用插补算法模块、补偿模块和位置控制模块,直接控制进给电机的运动。G代码程序中的M指令、S指令和T指令等属于附加指令,是数控系统实施外部操作的重要功能,如控制主轴电机的起停、冷却液的开关、夹具的松夹、润滑的工作、防护门的开关等。当G代码解释器执行到附加指令时,它把控制代码送到PLC,由PLC译码辨别数控程序的操作要求,通过PLC程序控制外部电路执行

4、[2]。G代码解释器是在ARM芯片中用软件实现的。合大量程序加工和复杂的数据处理,但需要占用系统较多资源。在分析3种G代码解释器的基础上,本文提出的一种流水线处理方式的G代码解释方法,是以流水线的方式对加工代码进行编译—解释,减少指令执行的时间,从而增强了嵌入式处理器的处理能力[4]。这样,代码程序一段段读入,在“前置处理—数据转换—后置处理”过程中,数据缓冲区内不断得到处理,最后形成插补程序可以识别的数据结构,象一条流水线一样进行工作。在加工零件时,程序输入、译码、插补和位置控制4个过程在处理时间上是重叠的,同时在译码过程中,各个子过程在处理时间上也是重叠的。G代码解释器的工

5、作过程分为4个子过程:程序读入、语法检查、解释和刀具补偿。图1给出了编译扫描过程的流程。在考虑G代码程序的大小时,G代码程序是动态分配空间的,这是因为各个G代码程序的代码量差异很大,大程序可能达到几兆甚至是几十兆字节的空间,而有些小程序则只有几十个字节而已。如果按固定大小分配内存,为了满足大程序的需要,会浪费大量的空间,并且不能容纳大于所定空间的程序。对于控制信息,则分配固定的空间,其原因在于,控制结构一般不会出现在机器生成的程序中,而手工写的程序一般不会很大,其中的控制语句就不会太多;为它分配固定大小的空间,可以方便程序处理,减少内存中的碎片,加快程序执行速度。为了克服传统数

6、控系统程序组织方式的缺陷,采用了以下结构:每个文件可以包含多个程序,每个程序由多个程序块组成,程序在缓冲区中随机存放。程序被执行前,只需要将部分需要解释的代码下载到内存缓冲区中,因为对嵌入式数控系统而言,其存储空间有限,不允许全文下载,所以这里采用的策略是边传送边加工。在嵌入式数控系统中,ARM中移植了U-cos11实时多任务操作系统,在设计G代码结实程序时,将上面4个过程定义成4个任务,各任务之间通过邮箱进行消息传递,2嵌入式系统G代码解释器的实现方法G代码解释器的实现一般有3种方法,即解释法、编译法和编译解释法。解释法对零件加工程序逐条进行预解释、插补、控制,即在插补模块定

7、时中断进行插补的同时解释程序预解释下一条程序,当本条程序语句插补完成后,再将下条程序语句预解释的结果传递给插补模块。这种方法类似BASIC程序的执行,各模块间的控制是顺序的,加工效率低,易形成停顿与过切。编译法预先对需要加工的零件程序全部编译后,将结果放入缓冲区中,当开始加工时,直接启动插补中断程序,从缓冲区中取出编译好的零件程序进行计算并控制程序加工。这种方法加工速度快,但需要较大的内存,类似C语言程序的执行。编译解释法在文献[3]中提出,它并不像一般的编译系统那样直接生成可执行的二进制目

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。