基于宏程序的代码调试及仿真的方法和装置的制作方法

文档序号:6334252阅读:673来源:国知局
专利名称:基于宏程序的代码调试及仿真的方法和装置的制作方法
技术领域
本发明涉及的是一种数控加工代码程序调试和仿真方法和装置,特别涉及的是一 种基于宏程序的代码调试及仿真的方法和装置。
背景技术
随着全球竞争日益剧烈,数控加工作为保证产品质量、提高劳动生产率及实现自 动化的重要手段被广泛应用到汽车、航空、模具等各个制造领域。而数控机床是否能充分发 挥其作用,重要的一点在于其所使用的数控程序的效率和易用性。在实际生产中有很多结 构相似、尺寸不同的零件,如果每批零件都去编制数控加工程序,将浪费大量时间。充分利 用宏程序是解决这些问题非常有效的措施。包含有变量、转向、比较判断等功能的指令称为 宏指令,包含有宏指令的程序称为宏程序。对于反复进行同一切削动作的程序,可以使用宏 程序进行编制,简单的宏指令代表了复杂的加工动作。数控机床加工零件是靠数控指令程序控制完成的。为确保数控程序的正确性,防 止加工过程中干涉和碰撞的发生,在实际生产中,常采用试切的方法进行检验。但这种方法 费工费料,代价昂贵,使生产成本上升,增加了产品加工时间和生产周期。后来又采用轨迹 显示法,即以划针或笔代替刀具,以着色板或纸代替工件来仿真刀具运动轨迹的二维图形 (也可以显示二维半的加工轨迹),有相当大的局限性。对于工件的三维和多维加工,也有 用易切削的材料代替工件(如,石蜡、木料、改性树脂和塑料等)来检验加工的切削轨迹。但 是,试切要占用数控机床和加工现场。同时仍然存在以下问题1)编写宏程序,主要是采用手工编写加工代码,耗费时间较长,容易出现错误,无 法胜任复杂形状零件的编程。据国外资料统计,当采用手工编程时,一段程序的编写时间与 其在机床上运行加工的实际时间之比,平均约为30 1,而数控机床不能开动的原因中有 20% 30%是由于加工程序编制困难,编程时间较长。2)使用CAM软件进行自动编程,是解决了手工编写的问题,但生成的加工代码比 较长,不具有通用性,换一个类似的零件,还得需要重新生成程序代码。3)宏程序调试困难,无法显示变量的中间值,真实的模拟程序的运行、程序的跳 转。鉴于上述缺陷,本发明创作者经过长时间的研究和实践终于获得了本创作。

发明内容
本发明的目的在于,提供一种基于宏程序的代码调试及仿真的方法和装置,用以 克服现有技术中存在的缺陷。为实现上述目的,本发明采用的技术方案在于,首先提供一种基于宏程序的代码 调试及仿真的方法,其包括的步骤为步骤a 输入加工代码程序;
步骤b 以程序段为单位编译所述的代码程序,建立语句树;步骤c 遍历所述语句树,计算结果,生成轨迹数据;步骤d 选择进入调试和仿真环境;步骤e 进行单段执行或是断点设置执行到某一程序段。其中,所述的步骤b包括
步骤bl 建立所述语句树的头节点;步骤b2 判断正在编译的程序段是否有错误,如果有错误显示错误信息,执行下 述步骤b4 ;步骤b3:建立语句结点,并与所述语句树中对应的父节点建立连接,判断是否还有 程序段没有编译完成,是,则编译下一程序段并执行上述步骤b2,否,则执行下述步骤b4 ;步骤b4:完成。其中,所述的步骤e包括步骤el 在每一程序段,设置唯一标识的特征,作为断点执行或程序跳转的标识;步骤e2 建立一个变量表,存储变量信息;步骤e3 对语句树的每一结点进遍历;步骤e4 当变量信息中的变量值发生变化时,更新变量表中变量信息。其次提供一种基于宏程序的代码调试及仿真的装置,其包括—输入模块,其用以输入加工代码程序;一反读模块,以程序段为单位编译所述的代码程序,建立语句树;一执行模块,遍历所述语句树,计算结果,生成轨迹数据;一启动模块,用以选择进入调试和仿真环境;一调试和仿真模块,用以进行单段执行或是断点设置执行到某一程序段。较佳的,所述的反读模块中还设有判断单元,用以判断程序段解析是否有错误。较佳的,还包括一显示模块,其用以进行代码显示、图形显示、变量显示以及错误 提示。与现有技术比较本发明的有益效果在于,解决了宏程序的编辑与调试问题;降低 了操作难度和风险,增强了加工的安全性,提高了产品加工的合格率;减少加工准备时间, 提高了生产效率。节省了资金,降低了成本。


图1为本发明基于宏程序的代码调试及仿真的方法实施例的流程图;图2为本发明基于宏程序的代码调试及仿真的方法中宏程序的分类示意图;图3为本发明基于宏程序的代码调试及仿真的方法中语句树实施例的结构图;图4为本发明基于宏程序的代码调试及仿真的方法中调试的流程图;图5为本发明基于宏程序的代码调试及仿真的装置的较佳实施例的功能结构框 图。
具体实施例方式以下结合附图,对本发明上述的和另外的技术特征和优点作更详细的说明。
对于本具体实施方式
而言,加工代码程序理解为一个数控加工代码是由多个程 序段组成的,每个程序段执行一个加工步骤,而一个程序段又可以由若干个字组成,字是组 成程序段的基本元素,由字构成数控系统的指令。随着数控技术的发展,现在大多数数控系 统不仅能够处理一般的准备功能和辅助功能,而且能够处理宏程序。宏程序是数控编程的重要补充,其中变量的用途有运算、递增量或递减量、与一 个表达式比较后,决定是否实现跳转功能的条件分支、将变量值传递到零件程序中去;其中 运算又包括算术运算(赋值、加、减、乘、除、绝对值、四舍五入等);函数运算(正弦、余弦、 正切、反正切、平方根等);逻辑操作(与、或);比较操作(等于、大于、小于、大于或等于、小 于或等于、不等于)。请参阅图1所示,其为本发明基于宏程序的代码调试及仿真的方法实施例的流程 图;所述的基于宏程序的代码调试及仿真的方法,其包括的步骤为步骤a 输入加工代码程序;步骤b 以程序段为单位编译所述的代码程序,建立语句树;步骤c 遍历所述语句树,计算结果,生成轨迹数据; 步骤d 选择进入调试和仿真环境;步骤e 选择单段执行或设置断点执行到某一程序段。较佳的,上述步骤b包括步骤bl 建立所述语句树的头节点;步骤b2 判断正在编译的程序段是否有错误,如果有错误显示错误信息,执行下 述步骤b4 ;步骤b3 建立语句结点,并与所述语句树中对应的父节点建立连接,判断是否还 有程序段没有编译完成,是,则编译下一程序段并执行上述步骤b2,否,则执行下述步骤 b4 ;步骤b4:完成。上述步骤b2所述的错误原因通常分为两类,一类是解析时出错,主要是语法错 误,如语句的格式错误、字符串无法识别等;另一类是执行出错,如循环超过最大循环次数 限制,变量没有定义等错误。错误信息将告知编程人员哪一个程序段的哪里出错了,出了什 么问题,极大地提示编程人员,帮助其更快的解决程序中的错误。本发明基于宏程序的代码调试及仿真的方法中步骤b和步骤e尤为重要,参阅图2 所示,其为本发明基于宏程序的代码调试及仿真的方法中宏程序的分类示意图;根据加工 代码的特点,本发明将程序段语句分为G代码语句、循环定义语句、变量定义语句、变量赋 值语句、WHILE语句、IF语句、GOTO语句、子程序语句、模态调用语句等。每一种语句,均是 从“语句类”派生。如果加工代码解析没有错误时,则建立语句树。语句树由一系列的语句结点组成, 直观地表示了各个语句之间的关系,即父子关系与兄弟关系。请参阅图3所示,其为本发明基于宏程序的代码调试及仿真的方法中语句树实施 例的结构图;其是以下面一段程序语言为例建立的,并且建立语句树是实现本发明的一个 关键00001 ;
#1 = 0;#2=1;WHILE[#2 LE 10]DO 1 ;#1 = #l+#2 ;#2 = #2+1 ;END 1 ;M30 ;WHILE语句是宏程序中的一种,DO标志作用域开始,END标志作用域结束。作用域 内 的语句结点均为WHILE语句结点的子结点,也就是说WHILE是它们的父结点。每编译一 个程序段,如果没有错误,就生成一个语句结点,就联结到语句树的相应位置。请参阅图4所示,其为本发明基于宏程序的代码调试及仿真的方法中调试的流程 图;其是针对上述步骤e所述的进行单段执行或是断点设置执行到某一程序段,其实现的 步骤为步骤el 在每一程序段,设置唯一标识的特征,作为断点执行或程序跳转的标识;步骤e2 建立一个变量表,存储变量信息;步骤e3 对语句树的每一结点进遍历;步骤e4 当变量信息中的变量值发生变化时,更新变量表中变量信息。编程人员可以在变量watch窗口中,键入需要观察的变量名,以确定程序是否与 要求的一致。编程人员可以选择单步执行程序,或者断点执行到某一段。在调试与仿真过程中,通过实时显示变量、轨迹,通过观察代码、变量、轨迹三者相 互关系,可以简单地确定程序是否满足要求,哪里不合要求,需要怎么调整。利用此发明可以对多种数控系统的加工代码进行仿真与调试,支持宏程序的调试 与仿真,极大的方便了编程人员编写代码、检验代码。本发明可用于机床数控系统、CAM软件使用。基于上述的思想,本发明同时还提供一种基于宏程序的代码调试及仿真的装置。请参阅图5所示,其为本发明基于宏程序的代码调试及仿真的装置的较佳实施例 的功能结构框图,其包括一输入模块1,其用以输入加工代码程序;一反读模块2,以程序段为单位编译所述的代码程序,建立语句树,其首先设置所 述语句树的父节点;判断正在编译的程序段是否有错误,如果有错误显示错误信息,完成编 译;如果没有错误,则建立语句结点,并与所述语句树中对应的父节点建立连接,然后对下 一个程序段进行编译,直到所有的加工代码全部解析完成,此时对应的语句树就建立起来 了。一执行模块3,遍历所述语句树,计算结果,生成轨迹数据;一启动模块4,用以选择进入调试和仿真环境;一调试和仿真模块5,用以进行单段执行或是断点设置执行到某一程序段,其首先 在每一程序段,设置唯一标识的特征,作为断点执行或程序跳转的标识;然后建立一个变量 表,存储变量信息;对语句树的每一结点进遍历;当变量信息中的变量值发生变化时,更新变量表中变量信息。较佳的,所述的反读模块2中还设有判断单元21,用以判断程序段解析是否有错
误。
较佳的,还包括一显示模块6,其用以进行代码显示、图形显示、变量显示以及错 误提示。以上所述仅为本发明的较佳实施例,对本发明而言仅仅是说明性的,而非限制性 的。本专业技术人员理解,在本发明权利要求所限定的精神和范围内可对其进行许多改变, 修改,甚至等效,但都将落入本发明的保护范围内。
权利要求
一种基于宏程序的代码调试及仿真的方法,其特征在于,其包括的步骤为步骤a输入加工代码程序;步骤b以程序段为单位编译所述的代码程序,建立语句树;步骤c遍历所述语句树,计算结果,生成轨迹数据;步骤d选择进入调试和仿真环境;步骤e进行单段执行或是断点设置执行到某一程序段。
2.根据权利要求1所述的基于宏程序的代码调试及仿真的方法,其特征在于,所述的 步骤b包括步骤bl 建立所述语句树的头节点;步骤b2 判断正在编译的程序段是否有错误,如果有错误显示错误信息,执行下述步 骤b4 ;步骤b3:建立语句结点,并与所述语句树中对应的父节点建立连接,判断是否还有程 序段没有编译完成,是,则编译下一程序段并执行上述步骤b2,否,则执行下述步骤b4 ; 步骤b4:完成。
3.根据权利要求2所述的基于宏程序的代码调试及仿真的方法,其特征在于,所述的 步骤e包括步骤el 在每一程序段,设置唯一标识的特征,作为断点执行或程序跳转的标识; 步骤e2 建立一个变量表,存储变量信息; 步骤e3 对语句树的每一结点进遍历;步骤e4 当变量信息中的变量值发生变化时,更新变量表中变量信息。
4.一种基于宏程序的代码调试及仿真的装置,其特征在于其包括 一输入模块,其用以输入加工代码程序;一反读模块,以程序段为单位编译所述的代码程序,建立语句树; 一执行模块,遍历所述语句树,计算结果,生成轨迹数据; 一启动模块,用以选择进入调试和仿真环境;一调试和仿真模块,用以进行单段执行或是断点设置执行到某一程序段。
5.根据权利要求4所述的基于宏程序的代码调试及仿真的装置,其特征在于所述的 反读模块中还设有判断单元,用以判断程序段解析是否有错误。
6.根据权利要求5所述的基于宏程序的代码调试及仿真的装置,其特征在于还包括 一显示模块,其用以进行代码显示、图形显示、变量显示以及错误提示。
全文摘要
本发明为一种基于宏程序的代码调试及仿真的方法和装置,其中所述的方法包括的步骤为步骤a输入加工代码程序;步骤b以程序段为单位编译所述的代码程序,建立语句树;步骤c遍历所述语句树,计算结果,生成轨迹数据;步骤d选择进入调试和仿真环境;步骤e进行单段执行或是断点设置执行到某一程序段。
文档编号G06F11/36GK101968767SQ201010515758
公开日2011年2月9日 申请日期2010年10月15日 优先权日2010年10月15日
发明者白俊涛, 贾喜存, 高玉凤 申请人:北京数码大方科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1