《一种基于流程控制的运动控制代码解析方法.pdf》由会员分享,可在线阅读,更多相关《一种基于流程控制的运动控制代码解析方法.pdf(11页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104133421A43申请公布日20141105CN104133421A21申请号201410374960422申请日20140801G05B19/409720060171申请人南京埃斯顿自动化股份有限公司地址211100江苏省南京市江宁经济开发区将军大道155号申请人南京埃斯顿自动控制技术有限公司72发明人曾俊涵王明昕冯日月夏正仙徐正华74专利代理机构江苏圣典律师事务所32237代理人程化铭54发明名称一种基于流程控制的运动控制代码解析方法57摘要本发明公开了一种基于流程控制的运动控制代码解析方法,该方法包括包括以下步骤建立流程控制代码表以及配对规则表;从当前位置读取一段。
2、NC代码有效段到计算机内存;对读取到计算机内存中的NC代码有效段进行分析判断并做出处理如果NC代码有效段为一个流程控制段,转入流程控制处理模块进行处理,流程控制处理模块根据处理内容修改当前读取位置;如果当前NC代码有效段存在错误或读取到结束符,则结束解析,否则转入第二步继续执行。本发明方法涵盖了无条件转移流程、条件分支流程及循环流程的通用处理方法,具有很好的通用性。基于本方法的解析器可应用于任何加入流程控制类的运动控制代码解析,具有很好的开放性和可拓展性。51INTCL权利要求书1页说明书4页附图5页19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书4页附图5页10申请公布号。
3、CN104133421ACN104133421A1/1页21一种基于流程控制的运动控制代码解析方法,其特征在于包括以下步骤A建立流程控制代码表以及配对规则表,配对规则表指明流程控制码的配对方案,由用户根据需求自定义;B从当前位置读取一段NC代码有效段到计算机内存,有效段是一个NC代码程序段或者在流程控制代码表中能查到的字符段;C对读取到计算机内存中的NC代码有效段进行分析判断并做出处理如果NC代码有效段存在语法或词法错误,则转入错误处理模块进行处理;如果NC代码有效段为一个流程控制段,则转入流程控制处理模块进行处理,流程控制处理模块根据处理内容修改当前读取位置;如果NC代码有效段不是一个流程控。
4、制段,则判断当前读取模式是否为省略模式,如果当前读取模式为省略模式,则直接忽略,否则转入普通NC代码处理模块进行处理并输出处理结果,完成后将当前位置指向下一段起始处;D如果当前NC代码有效段存在错误或读取到结束符,则结束解析,否则转入步骤B继续执行。2根据权利要求1所述的基于流程控制的运动控制代码解析方法,其特征在于所述流程控制处理模块包括无条件转移模块、条件分支模块和循环模块。3根据权利要求2所述的基于流程控制的运动控制代码解析方法,其特征在于所述无条件转移模块的工作方法为分析流程控制段,获取流程控制码;如果流程控制码是跳转语句,则读取跳转标签,查找标签表,如果找到标签,则修改当前读取位置到。
5、该标签处,如果未找到标签,则将读取模式改为省略模式,完成后将当前位置指向下一段起始处;如果流程控制码是标签语句,则将标签名称和当前位置记录到标签表,将读取模式设置为普通模式,完成后将当前位置指向下一段起始处。4根据权利要求2所述的基于流程控制的运动控制代码解析方法,其特征在于所述条件分支模块的工作方法为分析流程控制段,获取流程控制码;如果流程控制码是条件开始语句,则读取条件表达式并计算其值,若条件为真,则将读取模式置为普通模式,否则为省略模式,完成后将当前位置指向下一段起始处;如果流程控制码是条件结束语句,则将读取模式置为普通模式,完成后将当前位置指向下一段起始处。5根据权利要求2所述的基于流。
6、程控制的运动控制代码解析方法,其特征在于所述循环模块的工作方法为分析流程控制段,获取流程控制码;如果流程控制码是循环开始语句,则读取条件表达式并计算其值,若条件为真,则将读取模式置为普通模式,否则为省略模式,记录当前循环起始位置,完成后将当前位置指向下一段起始处;如果流程控制码是循环结束语句,则判断之前循环开始语句处的条件,如果条件为真,则将当前读取位置指向循环起始处,否则将读取模式置为普通模式,完成后将当前位置指向下一段起始处。权利要求书CN104133421A1/4页3一种基于流程控制的运动控制代码解析方法技术领域0001本发明涉及运动控制代码解析方法,尤其涉及一种基于流程控制的运动控制代。
7、码解析方法,属于数控技术领域。背景技术0002数控加工是用数字信息控制机械设备运动而完成加工的方法,而数字信息存储在数控加工程序中,因此,数控加工程序的性能及执行效率将直接影响数控加工的质量。数控加工程序的一种标准形式是NC代码,即数控指令代码。它是由定义了一定功能的字母附上数据后组合而成的,一般每条指令完成一个动作,若干条指令按一定结构构成一段程序。在具体的数控加工程序中,一般使用各种准备功能的G代码和辅助功能的M代码来描述加工过程的各种运动特征和操作。NC代码作为数控加工程序的一种标准形式已经得到了广泛的应用,但传统的NC代码在处理批量、复杂的加工时表现出代码量庞大、效率低下、不灵活、不通。
8、用的缺点。随着数控技术的发展,一些先进的数控系统将计算机高级语言的一些流程设计方式引入到NC代码中,比如EMC2的O指令、FANUC及SIEMENS的宏程序等,这些方式提高了数控程序的柔性。但目前这一类嵌入流程控制的程序欠缺一种通用的解析方法,给希望自己定制数控系统的用户带来不便。0003中国发明专利“通用数控代码解析方法”(申请号为2006101613376)公开了一种通用数控代码解析方法,但是没有对流程扩展类的数控代码给出解析方案。王宇晗等人在文章“CNC系统用户宏程序功能的译码实现”(组合机床与自动化加工技术2004年第6期46页)中提出的CNC系统用户宏程序功能的译码实现,但该方法仅针。
9、对FANUC系统的宏指令进行了译码实现,缺乏通用性。0004另外,上述两种解析方案都需要对程序代码全部扫描一遍以数据链表形式存入内存中以后,再进行语义分析识别工作,这样会降低执行效率,也无法满足即时执行的要求(如用户逐行输入数控代码并即时执行);同时,如果一个加工程序的有效数据量超过内存容量,这类方法无法执行。发明内容0005本发明公开了一种基于流程控制的运动控制代码解析方法,解决了对加入流程控制的运动控制代码进行解析的问题。0006为实现上述发明目的,本发明采取的技术方案是一种基于流程控制的运动控制代码解析方法,包括以下步骤第一步建立流程控制代码表以及配对规则表,配对规则表指明流程控制码的配。
10、对方案,由用户根据需求自定义;第二步从当前位置读取一段NC代码有效段到计算机内存,有效段是一个NC代码程序段或者在流程控制代码表中能查到的字符段,程序段是NC代码的一行语句,由一个或多个程序字组成;说明书CN104133421A2/4页4第三步对读取到计算机内存中的NC代码有效段进行分析判断并做出处理如果NC代码有效段存在语法或词法错误,则转入错误处理模块进行处理;如果NC代码有效段为一个流程控制段,则转入流程控制处理模块进行处理,流程控制处理模块根据处理内容修改当前读取位置;如果NC代码有效段不是一个流程控制段,则判断当前读取模式是否为省略模式,如果当前读取模式为省略模式,则直接忽略,否则转。
11、入普通NC代码处理模块进行处理并输出处理结果,完成后将当前位置指向下一段起始处;第四步如果当前NC代码有效段存在错误或读取到结束符,则结束解析,否则转入第二步继续执行。0007所述流程控制处理模块包括无条件转移模块、条件分支模块和循环模块。0008所述无条件转移模块的工作方法为分析流程控制段,获取流程控制码;如果流程控制码是跳转语句,则读取跳转标签,查找标签表,如果找到标签,则修改当前读取位置到该标签处,如果未找到标签,则将读取模式改为省略模式,完成后将当前位置指向下一段起始处;如果流程控制码是标签语句,则将标签名称和当前位置记录到标签表,将读取模式设置为普通模式,完成后将当前位置指向下一段起。
12、始处。0009所述条件分支模块的工作方法为分析流程控制段,获取流程控制码;如果流程控制码是条件开始语句,则读取条件表达式并计算其值,若条件为真,则将读取模式置为普通模式,否则为省略模式,完成后将当前位置指向下一段起始处;如果流程控制码是条件结束语句,则将读取模式置为普通模式,完成后将当前位置指向下一段起始处。0010所述循环模块的工作方法为分析流程控制段,获取流程控制码;如果流程控制码是循环开始语句,则读取条件表达式并计算其值,若条件为真,则将读取模式置为普通模式,否则为省略模式,记录当前循环起始位置,完成后将当前位置指向下一段起始处;如果流程控制码是循环结束语句,则判断之前循环开始语句处的条。
13、件,如果条件为真,则将当前读取位置指向循环起始处,否则将读取模式置为普通模式,完成后将当前位置指向下一段起始处。0011本发明的解析方法不用对数控程序进行全部扫描一遍后再做语义分析,也不关心程序段来源,每获取一个有效段就可以解析并完成配置或输出结果,这在提高解析效率的同时也使得基于此方法的解析器在数控系统中具有更好的灵活性。本发明方法涵盖了无条件转移流程、条件分支流程及循环流程的通用处理方法,具有很好的通用性。本发明的解析方法采用可自由定制的“流程控制代码表”及“流程控制代码配对规则表”,这使得基于本方法的解析器可应用于任何加入流程控制类的运动控制代码解析,具有很好的开放性和可拓展性。附图说明。
14、0012图1是本发明方法的运动控制代码解析流程图。0013图2是“流程控制代码表”和“流程控制代码配对规则表”。0014图3是流程控制处理模块中无条件转移模块的处理流程图。0015图4是流程控制处理模块中条件分支模块的处理流程图。0016图5是流程控制处理模块中循环模块的处理流程图。0017图6是嵌入流程控制的运动控制示例代码。说明书CN104133421A3/4页5具体实施方式0018下面结合附图和具体实施方式,对本发明作进一步详细说明。0019本发明处理的对象是嵌入流程控制的运动控制代码,该代码由两部分组成一是普通的NC代码,二是完成逻辑控制的流程控制代码。示例代码如图6所示,本发明的目的。
15、在于对这种代码给出通用的解析方案。0020本发明的流程控制代码表以及配对规则表用于定制流程控制的特殊字符集。这些字符集是不同于普通标准数控代码的一类进行流程控制的代码,当程序解析到这些特殊字符集时,根据规则进行读取位置的跳转,以达到逻辑控制的目的。0021在综合数控编程流程控制的基础上,本发明所设计的流程控制代码主要有三种类型(1)无条件转移类,(2)条件分支类,(3)循环类。每种类型以配对码形式出现在数控程序中,非配对的结构在数控程序中将视为错误。用户可自定义控制码的字符集,只要所用字符不和标准NC代码已有字符冲突。0022一种基于流程控制的运动控制代码解析方法,如图1所示,依次执行以下步骤。
16、第一步建立流程控制代码表以及配对规则表,如图2所示。为避免与标准NC代码已有字符定义冲突,所有流程控制码以“O_”开头。0023第二步当前代码读取位置指向第0行开头。0024第三步从当前位置读取一行NC代码有效段到计算机内存,进行分析判断,如果没有错误转入流程控制处理模块进行处理。0025第四步如果当前NC代码有效段存在错误或读取到结束符,则结束解析,否则转入第三步继续执行。0026如果NC代码有效段存在语法或词法错误,则转入错误处理模块进行处理;如果NC代码有效段为一个流程控制段,如示例代码中以“O_”开头的行,则转入流程控制处理模块进行处理,流程控制处理模块根据处理内容修改当前读取位置;如。
17、果NC代码有效段不是一个流程控制段,如示例代码中不以“O_”开头的行,则判断当前读取模式是否为省略模式,如果当前读取模式为省略模式,则直接忽略,否则转入普通NC代码处理模块进行处理并输出处理结果,完成后将当前位置指向下一段起始处。0027流程控制处理模块包括无条件转移模块、条件分支模块和循环模块。0028所述流程控制无条件转移模块的工作方法为分析流程控制段,获取流程控制码;如果流程控制码是跳转语句,如示例代码中第1行的“O_GOTO”,则读取跳转标签“START_10”,查找标签表,如果找到标签,则修改当前读取位置到该标签处,如果未找到标签,则将读取模式改为省略模式,完成后将当前位置指向下一段。
18、起始处;如果流程控制码是标签语句,如示例代码中第2行与第4行的“O_LABEL”,则将标签名称和当前位置记录到标签表,比较跳转标签,如果相同,将读取模式改为普通模式,否则不改,完成后将当前位置指向下一段起始处。0029所述条件分支模块的工作方法为分析流程控制段,获取流程控制码;如果流程控制码是条件开始语句,如示例代码中第7行与第10行“O_IF”,则读取条件表达式“”中的内容,并计算其值,若条件为真,则将读取模式置为普通模式,否则为省略模式,完成后将当前位置指向下一段起始处;如果流程控制码是条件结束语句,如示例代码中第9行与说明书CN104133421A4/4页6第12行“O_ENDIF”,则。
19、将读取模式置为普通模式,完成后将当前位置指向下一段起始处。0030所述循环模块的工作方法为分析流程控制段,获取流程控制码;如果流程控制码是循环开始语句,如示例代码中第6行的“O_WHILE”,则读取条件表达式“”中的内容,并计算其值,若条件为真,则将读取模式置为普通模式,否则为省略模式,记录当前循环起始位置,完成后将当前位置指向下一段起始处;如果流程控制码是循环结束语句,如示例代码中第14行O_ENDWHILE,则判断之前循环开始语句处的条件,如果条件为真,则将当前读取位置指向循环起始处,否则将读取模式置为普通模式,完成后将当前位置指向下一段起始处。0031通过以上的方法步骤,制定的解析器就可。
20、以完成嵌入流程控制的运动控制代码的解析,输出指令,控制机床按特定的规律运动。示例代码将输出XY平面步长为2的阶梯型路径插补控制,而普通的NC代码至少需要1000行完成同样的控制。0032本发明中“流程控制代码表”及“流程控制代码配对规则表”可自由定制,使得基于它们的解析器可解析各类自定义符号的流程控制代码;同时,三种流程控制处理模块涵盖了所有流程控制的通用处理方案,使得基于这些模块的解析器可以完成各种流程控制分析;最后,即读即用的逐段扫描方式,使得采用本发明的解析器可以灵活的跳转读取位置,快速的输出结果,且只占用极少量的计算机内存资源。说明书CN104133421A1/5页7图1说明书附图CN104133421A2/5页8图2图3说明书附图CN104133421A3/5页9图4说明书附图CN104133421A4/5页10图5说明书附图CN104133421A105/5页11图6说明书附图CN104133421A11。