CN109814869B - 应用于机器人的解析方法、系统及计算机可读存储介质 - Google Patents
应用于机器人的解析方法、系统及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109814869B CN109814869B CN201811468519.7A CN201811468519A CN109814869B CN 109814869 B CN109814869 B CN 109814869B CN 201811468519 A CN201811468519 A CN 201811468519A CN 109814869 B CN109814869 B CN 109814869B
- Authority
- CN
- China
- Prior art keywords
- binary
- robot program
- robot
- program
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本申请涉及一种应用于机器人的解析方法、系统及计算机存储介质,该方法包括:在执行机器人程序之前,对编辑的机器人程序进行分析并利用所述编辑的机器人程序和二进制代码之间的第一映射关系,生成包含所述二进制代码的二进制中间文件;将接收到的预执行的机器人程序和所述二进制中间文件匹配,以执行相应的功能。本申请在准备运行机器人程序时,只需要解析二进制中间文件,无需进行分析词法、语法和语义等繁琐的工作,提升了机器人程序的运行效率,减少了运行过程中占用的资源,有利于机器人程序的保密性和安全性更好,保障了机器人的可靠性和稳定性,方便机器人程序扩展以及机器人程序解析系统的移植。
Description
技术领域
本申请涉及示教器技术领域,尤其涉及一种应用于机器人的解析方法、系统及计算机可读存储介质。
背景技术
示教器再现形式的工业机器人广泛应用于目前的自动化应用,而示教再现机器人要求控制器分析机器人语言程序,来实现控制机器人运动、输入输出控制和流程控制等功能。解释器为机器人语言和机器人平台之间的桥梁,负责将自定义的机器人语言翻译成机器人目标平台能识别的指令系统,因此高级语言编译原理中的技术可以用来指导解释器的实现。
目前大多数机器人语言解释器为边解释边执行的模式,此模式在机器人程序运行过程中需要一直分析词法、语法和语义,占用控制器大量资源去完成解析工作,而且程序源码均为开放可见,难以实现封装保密。
综上所述,现有机器人语言解释器存在机器人程序源代码不能封装保密,编程语言扩展困难,以及系统移植困难等问题。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种应用于机器人的解析方法、系统及计算机存储介质。
第一方面,本申请实施例提供了一种应用于机器人的解析系统,包括:中间代码生成模块和中间代码解析模块;
所述中间代码生成模块配置用于在执行机器人程序之前,对编辑的机器人程序进行分析并利用所述编辑的机器人程序和二进制代码之间的第一映射关系,生成包含所述二进制代码的二进制中间文件;
所述中间代码解析模块配置用于将接收到的预执行的机器人程序和所述二进制中间文件匹配,以执行相应的功能。
结合第一方面,在第一方面第一种可能的实施方式中,所述中间代码生成模块包括:
分析模块,所述分析模块包括配置用于对所述编辑的机器人程序进行词法分析的词法分析模块、配置用于对所述编辑的机器人程序进行语法分析的语法分析模块和配置用于对所述编辑的机器人程序进行语义分析的语义分析模块。
结合第一方面,在第一方面第二种可能的实施方式中,所述解析系统还包括二级制代码生成模块,所述二进制代码生成模块配置用于查找预设机器人程序与二进制代码之间的第一映射关系,根据所述分析模块分析后得到的所述编辑的机器人程序和所述第一映射关系,生成二进制代码,将所述二进制代码保存到中间文件生成所述二进制中间文件。
结合第一方面,在第一方面第三种可能的实施方式中,所述二进制中间文件包括:具有第二映射关系的二进制中间库文件和二进制中间执行文件。
结合第一方面,在第一方面第四种可能的实施方式中,所述中间代码生成模块包括:
分类模块,所述分类模块配置用于在待分配的程序含有主函数的情况下,生成所述二进制中间执行文件,以及在所述待分配的程序不含有主函数的情况下,生成所述二进制中间库文件,其中,所述待分配的程序包含所述编辑的机器人程序和二进制代码。
结合第一方面,在第一方面第五种可能的实施方式中,所述中间代码解析模块配置用于根据接收到的预执行的机器人程序和所述第二映射关系,确定与所述预执行的机器人程序相对应的二进制中间执行文件,并利用确定后的二进制中间执行文件,执行相应的功能。
第二方面,本申请实施例提供了一种应用于机器人的解析方法,包括:
在执行机器人程序之前,对编辑的机器人程序进行分析并利用所述编辑的机器人程序和二进制代码之间的第一映射关系,生成包含所述二进制代码的二进制中间文件;
将接收到的预执行的机器人程序和所述二进制中间文件匹配,以执行相应的功能。
结合第二方面,在第二方面第一种可能的实施方式中,所述对编辑的机器人程序进行分析,包括:
对所述编辑的机器人程序进行词法分析、语法分析和语义分析。
结合第一方面,在第一方面第二种可能的实施方式中,所述利用所述编辑的机器人程序和二进制代码之间的第一映射关系,生成包含所述二进制代码的二进制中间文件,包括:
查找预设机器人程序与二进制代码之间的第一映射关系;
根据分析后得到的所述编辑的机器人程序和所述第一映射关系,生成二进制代码;
将所述二进制代码保存到中间文件生成所述二进制中间文件。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有应用于机器人的解析程序,所述应用于机器人的解析程序被处理器执行时实现如第二方面所述的应用于机器人的解析方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该方法在执行机器人程序之前,对编辑的机器人程序进行分析并利用机器人程序和二进制代码之间的第一映射关系,生成包含二进制代码的二进制中间文件,在准备运行机器人程序时,只需要解析二进制中间文件,将接收到的预执行的机器人程序和二进制中间文件匹配,无需进行分析词法、语法和语义等繁琐的工作,提升了机器人程序的运行效率,减少了运行过程中占用的资源,通过将机器人程序封装成二进制中间文件来隐藏该源代码,有利于机器人程序的保密性和安全性更好,保障了机器人的可靠性和稳定性,方便机器人程序扩展以及机器人程序解析系统的移植。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用于机器人的解析方法的流程图;
图2为本申请另一实施例提供的一种应用于机器人的解析方法的流程图;
图3为本申请实施例提供的一种应用于机器人的解析系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种应用于机器人的解析方法,如图1所示,该方法可以包括以下步骤:
S101、在执行机器人程序之前,对编辑的机器人程序进行分析。
S102、利用编辑的机器人程序和二进制代码之间的第一映射关系,生成包含二进制代码的二进制中间文件。
S103、将接收到的预执行的机器人程序和二进制中间文件匹配,以执行相应的功能。
在本申请的另一实施例中,上述步骤S101中,对编辑的机器人程序进行分析,包括:对编辑的机器人程序进行词法分析、语法分析和语义分析。
在本申请的另一实施例中,如图2所示,上述步骤S102、利用编辑的机器人程序和二进制代码之间的第一映射关系,生成包含二进制代码的二进制中间文件,包括:
S1021、查找预设机器人程序与二进制代码之间的第一映射关系。
S1022、根据分析后得到的编辑的机器人程序和第一映射关系,生成二进制代码。
S1023、将二进制代码保存到中间文件生成二进制中间文件。
本申请实施例在准备运行机器人程序时,只需要解析二进制中间文件,将接收到的预执行的机器人程序和二进制中间文件匹配,无需进行分析词法、语法和语义等繁琐的工作,解决了机器人程序运行过程中需要一直分析词法、语法、语义而占用控制器大量资源的问题,提升了机器人程序的运行效率,减少了运行过程中占用的资源,通过将机器人程序封装成二进制中间文件来隐藏该源代码,支持多种自定义机器人程序,有利于机器人程序的保密性和安全性更好,保障了机器人的可靠性和稳定性,方便机器人程序扩展以及机器人程序解析系统的移植。
在本申请的另一实施例中,上述二进制中间文件包括:具有第二映射关系的二进制中间库文件和二进制中间执行文件,在待分配的程序含有主函数的情况下,生成二进制中间执行文件,在待分配的程序不含有主函数的情况下,生成二进制中间库文件,其中,待分配的程序包含编辑的机器人程序和二进制代码。
在本申请的另一实施例中,上述解析方法还包括:根据接收到的预执行的机器人程序和第二映射关系,确定与预执行的机器人程序相对应的二进制中间执行文件,并利用确定的二进制中间执行文件,执行相应的功能。
在本申请的另一实施例中,用户在示教器的程序编辑器中编辑完成机器人程序后,通过网线和FTP协议(File Transfer Protocol,文件传输协议)发送到的控制器的本地文件系统。控制器从本地系统读取到机器人程序后,对机器人程序进行词法分析、语法分析以及语义分析,词法分析主要包括:按照从左到右的顺序扫描与分析构成源程序的字符流,将字符流串分解为多个单词,示例性的,单词包括:关键字、标识符、常数、各运算符等。词法分析主要使用Flex工具(生成词法分析器的工具),根据机器人程序的特性,先制作flex词法文件*.l,再通过Flex工具生成C语言文件lex.yy.c,对C语言文件lex.yy.c进行解析,完成对机器人程序的词法分析。
机器人程序的语法分析主要包括:将词法分析得到的单词作为输入,判断该单词是否符合语句文法。其中,语法分析使用Bison工具,先制作语法文件*.y文件,然后通过Bison工具生成C语言文件*.tab.c及相应头文件*.tab.h,同样对该两个文件进行解析,实现机器人程序的语法分析。
机器人程序的语义分析主要包括:以语法分析得到的语法树作为输入,分析语法树上各个符号的意义及其作用。语义分析主要通过以下三个方面实现:语句类型检查、语句相关性检查以及语句一致性检查。
当词法、语法及语义分析完成并无错误后,通过查找预设机器人程序与二进制代码之间的第一映射关系,即二进制码对照表,根据分析后得到的机器人程序和上述的第一映射关系(即本实施例中的二进制码对照表),将机器人程序翻译成二进制代码,将二进制代码保存到中间文件中生成二进制中间文件。因此,本申请实施例中的二进制中间文件通过过上述二进制码对照表生成,并非通过CPU二进制命令生成,二进制中间文件与操作系统和硬件平台无关。
本申请实施例根据编辑的机器人程序中是否存在主函数而选择生成二进制中间库文件或二进制中间执行文件,并将生成的文件保存在机器人控制器的文件系统中,无需用户主动选择。当用户通过示教器发送预执行的工业机器人程序时,解析出来相应的二进制中间文件,根据二进制代码匹配相应的功能或数据,驱动预执行的机器人程序运行。
本申请实施例提供了一种应用于机器人的解析系统,如图3所示,该解析系统包括:中间代码生成模块11和中间代码解析模块12;
中间代码生成模块11配置用于在执行机器人程序之前,对编辑的机器人程序进行分析并利用机器人程序和二进制代码之间的第一映射关系,生成包含二进制代码的二进制中间文件;
中间代码解析模块配置12用于将接收到的预执行的机器人程序和二进制中间文件匹配,以执行相应的功能。
在本申请另一实施例中,中间代码生成模块11包括:
分析模块,分析模块包括配置用于对编辑的机器人程序进行词法分析的词法分析模块、配置用于对编辑的机器人程序进行语法分析的语法分析模块和配置用于对编辑的机器人程序进行语义分析的语义分析模块。
在本申请另一实施例中,解析系统还包括二级制代码生成模块,二进制代码生成模块配置用于查找预设机器人程序与二进制代码之间的第一映射关系,根据分析模块分析后得到的机器人程序和第一映射关系,生成二进制代码,将二进制代码保存到中间文件生成二进制中间文件。
在本申请另一实施例中,二进制中间文件包括:具有第二映射关系的二进制中间库文件和二进制中间执行文件。
在本申请另一实施例中,中间代码生成模块包括:
分类模块,分类模块配置用于在待分配的程序含有主函数的情况下,生成二进制中间执行文件,以及在待分配的程序不含有主函数的情况下,生成二进制中间库文件,其中,待分配的程序包含编辑的机器人程序和二进制代码。
在本申请另一实施例中,中间代码解析模块配置用于根据接收到的预执行的机器人程序和第二映射关系,确定与预执行的机器人程序相对应的二进制中间执行文件,并利用确定后的二进制中间执行文件,执行相应的功能。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有应用于机器人的解析程序,应用于机器人的解析程序被处理器执行时实现如图1所示的应用于机器人的解析方法的步骤。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (5)
1.应用于机器人的解析系统,其特征在于,包括:中间代码生成模块和中间代码解析模块;
所述中间代码生成模块配置用于在执行机器人程序之前,对编辑的机器人程序进行分析并利用所述编辑的机器人程序和二进制代码之间的第一映射关系,生成包含所述二进制代码的二进制中间文件,所述二进制中间文件包括:具有第二映射关系的二进制中间库文件和二进制中间执行文件,所述第二映射关系为待分配的程序中主函数,与所述二进制中间库文件和所述二进制中间执行文件之间的映射关系,所述待分配的程序包括所述编辑的机器人程序和二进制代码;
其中,所述中间代码生成模块包括:
分析模块,所述分析模块包括配置用于对所述编辑的机器人程序进行词法分析的词法分析模块、配置用于对所述编辑的机器人程序进行语法分析的语法分析模块和配置用于对所述编辑的机器人程序进行语义分析的语义分析模块;
所述解析系统还包括二进制代码生成模块,所述二进制代码生成模块配置用于查找预设机器人程序与二进制代码之间的第一映射关系,根据所述分析模块分析后得到的所述编辑的机器人程序和所述第一映射关系,生成二进制代码,将所述二进制代码保存到中间文件,生成所述二进制中间文件,所述第一映射关系为二进制码对照表;所述中间代码解析模块配置用于将接收到的预执行的机器人程序和所述二进制中间文件匹配,以执行相应的功能。
2.根据权利要求1所述的解析系统,其特征在于,所述中间代码生成模块包括:
分类模块,所述分类模块配置用于在待分配的程序含有主函数的情况下,生成所述二进制中间执行文件,以及在所述待分配的程序不含有主函数的情况下,生成所述二进制中间库文件。
3.根据权利要求2所述的解析系统,其特征在于,所述中间代码解析模块配置用于根据接收到的预执行的机器人程序和所述第二映射关系,确定与所述预执行的机器人程序相对应的二进制中间执行文件,并利用确定后的二进制中间执行文件,执行相应的功能。
4.应用于机器人的解析方法,其特征在于,包括:
在执行机器人程序之前,对编辑的机器人程序进行分析并利用所述编辑的机器人程序和二进制代码之间的第一映射关系,生成包含所述二进制代码的二进制中间文件,所述二进制中间文件包括:具有第二映射关系的二进制中间库文件和二进制中间执行文件,所述第二映射关系为待分配的程序中主函数,与所述二进制中间库文件和所述二进制中间执行文件之间的映射关系,所述待分配的程序包括所述编辑的机器人程序和二进制代码;
将接收到的预执行的机器人程序和所述二进制中间文件匹配,以执行相应的功能;
其中,对编辑的机器人程序进行分析并利用所述编辑的机器人程序和二进制代码之间的第一映射关系,生成包含所述二进制代码的二进制中间文件,具体包括:
查找预设机器人程序与二进制代码之间的第一映射关系,所述第一映射关系为二进制码对照表;
根据分析后得到的所述编辑的机器人程序和所述第一映射关系,生成二进制代码;
将所述二进制代码保存到中间文件生成所述二进制中间文件。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有应用于机器人的解析程序,所述应用于机器人的解析程序被处理器执行时实现如权利要求4所述的应用于机器人的解析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811468519.7A CN109814869B (zh) | 2018-12-03 | 2018-12-03 | 应用于机器人的解析方法、系统及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811468519.7A CN109814869B (zh) | 2018-12-03 | 2018-12-03 | 应用于机器人的解析方法、系统及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109814869A CN109814869A (zh) | 2019-05-28 |
CN109814869B true CN109814869B (zh) | 2020-11-27 |
Family
ID=66601898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811468519.7A Active CN109814869B (zh) | 2018-12-03 | 2018-12-03 | 应用于机器人的解析方法、系统及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109814869B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090121755A (ko) * | 2008-05-23 | 2009-11-26 | 삼성중공업 주식회사 | 로봇 제어기 부트로더, 부트로더 관리 장치 및 로봇 응용프로그램 실행 방법 |
CN103077064A (zh) * | 2012-12-31 | 2013-05-01 | 北京配天大富精密机械有限公司 | 一种解析并执行程序语言方法及解释装置 |
CN107678749A (zh) * | 2017-09-29 | 2018-02-09 | 深圳市山龙智控有限公司 | 基于结构化语言编程的转码方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136792B2 (en) * | 2001-07-20 | 2006-11-14 | International Business Machines Corporation | Computerized method and system for maturity assessment of business processes |
CN100460159C (zh) * | 2007-07-12 | 2009-02-11 | 上海交通大学 | 工业机器人离线编程系统 |
CN101908289A (zh) * | 2010-08-31 | 2010-12-08 | 南京智慧天下教育科技有限公司 | 一种教学用动态实时交互编程学习系统 |
CN105242907B (zh) * | 2015-09-10 | 2018-01-19 | 西安交通大学 | Arm二进制代码的neon向量化转换方法 |
-
2018
- 2018-12-03 CN CN201811468519.7A patent/CN109814869B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090121755A (ko) * | 2008-05-23 | 2009-11-26 | 삼성중공업 주식회사 | 로봇 제어기 부트로더, 부트로더 관리 장치 및 로봇 응용프로그램 실행 방법 |
CN103077064A (zh) * | 2012-12-31 | 2013-05-01 | 北京配天大富精密机械有限公司 | 一种解析并执行程序语言方法及解释装置 |
CN107678749A (zh) * | 2017-09-29 | 2018-02-09 | 深圳市山龙智控有限公司 | 基于结构化语言编程的转码方法及装置 |
Non-Patent Citations (1)
Title |
---|
嵌入式运动控制器高级语言设计与实现;陈东;《中国优秀博硕士学位论文全文数据库 (硕士)工程科技Ⅱ辑》;20060115(第01期);第25-28页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109814869A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8838440B2 (en) | Generating parser combination by combining language processing parsers | |
US9405518B2 (en) | Leveraging legacy applications for use with modern applications | |
JPH08202545A (ja) | ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法 | |
JP2007141173A (ja) | コンパイルシステム、デバッグシステムおよびプログラム開発システム | |
WO2016163901A1 (en) | An apparatus for processing an abstract syntax tree being associated with a source code of a source program | |
CN103123590A (zh) | 指令表il程序到c语言程序的编译方法 | |
Fedorchenko et al. | Equivalent transformations and regularization in context-free grammars | |
Watson | A practical approach to compiler construction | |
KR20060089862A (ko) | 프리 컴파일링 장치 | |
CN112269566B (zh) | 脚本生成处理方法、装置、设备及系统 | |
US20150020051A1 (en) | Method and apparatus for automated conversion of software applications | |
CN109814869B (zh) | 应用于机器人的解析方法、系统及计算机可读存储介质 | |
CN111580821B (zh) | 脚本绑定方法、装置、电子设备及计算机可读存储介质 | |
Martin-Martinez et al. | PySD: System dynamics modeling in python | |
CN116257245A (zh) | 一种基于flex与bison语法分析的多输出编译方法及系统 | |
CN116088861A (zh) | 面向可编程交换芯片的p4后端编译方法及系统 | |
KR102610431B1 (ko) | 인공지능 분석 기반 프로그램 소스코드의 요약문 생성 장치 및 방법 | |
CN113608748B (zh) | C语言转换Java语言的数据处理方法、装置及设备 | |
US20220350574A1 (en) | Code injection from natural language derived intent | |
KR20190037988A (ko) | 복합명사 분석장치 및 방법, 컴퓨터 프로그램 | |
JP5399601B2 (ja) | 実装コード開発システム、及び実装コード開発プログラム | |
GB2420638A (en) | Method of substituting code fragments in Internal Representation | |
US7603661B2 (en) | Parse table generation method and system | |
Lutovac et al. | Usage of XML and P code for robot motion control | |
US11714609B2 (en) | Automatic generation of source code implementing a regular expression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |