CN110861085A - 一种基于VxWorks的机械臂指令解释器系统 - Google Patents

一种基于VxWorks的机械臂指令解释器系统 Download PDF

Info

Publication number
CN110861085A
CN110861085A CN201911131043.2A CN201911131043A CN110861085A CN 110861085 A CN110861085 A CN 110861085A CN 201911131043 A CN201911131043 A CN 201911131043A CN 110861085 A CN110861085 A CN 110861085A
Authority
CN
China
Prior art keywords
script
subsystem
file
user
analysis
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.)
Granted
Application number
CN201911131043.2A
Other languages
English (en)
Other versions
CN110861085B (zh
Inventor
张伟哲
何慧
楼晨
张玥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN201911131043.2A priority Critical patent/CN110861085B/zh
Publication of CN110861085A publication Critical patent/CN110861085A/zh
Application granted granted Critical
Publication of CN110861085B publication Critical patent/CN110861085B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种基于VxWorks的机械臂指令解释器系统,涉及机械臂控制软件开发技术领域。本发明的目的提供一种能满足后端子系统的功能需求,能在机械臂操作系统VxWorks上运行的支持自定义语法规则脚本文件,并能将其解析成机械臂运动指令的解释器系统。流程控制子系统处理用户输入的控制命令并统筹安排其他子系统;通信子系统负责与用户进行数据交互;解析子系统负责对脚本文件进行处理、分析并最终执行内部包含的机械臂运动指令;调试子系统则用于实现脚本文件的调试功能需求。采用Flex&Bison开源工具进行脚本文件的解析工作,能设计实现满足机械臂运动指令调用需求的脚本文件,同时结合VxWorks操作系统的系统特性实现控制和调试等功能。

Description

一种基于VxWorks的机械臂指令解释器系统
技术领域
本发明涉及机械臂指令解释系统,涉及机械臂控制软件开发技术领域。
背景技术
随着工业自动化的快速发展,工业机器人产业迎来快速发展,机械臂作为其中的重要角色,具有非常大的市场需求。在这不断增长的需求量中,非专业编程人员的比例不断增加,这就对机械臂的控制方式提出了新的要求,即必须尽可能地降低机械臂操作复杂度,使机械臂操作的学习门槛降低,利于普通用户的快速上手,而传统的使用高级语言直接编写程序的难度大、培训周期长,限制了机械臂的发展普及。图形化编程技术以其形象化的界面、简单易懂的操作越来越受非专业软件开发人员的青睐,它可以通过流程图的形式控制机械臂进行相关运动,有利于机械臂产品的快速推广,同时便于企业节约学习成本,使机械臂系统增加对企业的吸引力,利于占据市场份额。
国内外学者对解释器开发进行了许多研究,文献号为CN101327589B的专利文献公开了一种机械控制技术领域的遥操作平面冗余度机械臂指令输入及构型控制系统及方法。曾国等人主要设计实现了一个数控机床系统的加工程序编译器,使用Lex和Yacc工具进行开发,平台为Windows[1];沙智华等人主要开发了基于NC代码的解释器,可以自定义语法规则来对数控代码进行编译[2];游华云等人主要研究多个数控代码解释器共存的问题,包括系统的统筹管理等,同时多个解释器之间可以独立开发和维护[3]。这些解释器存在的问题一是与机械臂系统不兼容,无法在VxWorks平台上使用;二是脚本文件语法格式不兼容,无法使用特定的机械臂函数;三是无法根据需求提供扩展功能。
发明内容
本发明要解决的技术问题是:本发明的目的提供一种能满足后端子系统的功能需求,能在机械臂操作系统VxWorks上运行的支持自定义语法规则脚本文件,并能将其解析成机械臂运动指令的解释器系统。
本发明解决上述技术问题采用的技术方案为:
一种基于VxWorks的机械臂指令解释器系统,所述系统包括四个子系统:流程控制子系统、通信子系统、解析子系统和调试子系统;流程控制子系统是解释器系统的主体运行逻辑,负责控制整个解释器系统的运行,处理用户输入的控制命令并统筹安排其他子系统;通信子系统负责与用户进行数据交互,包括接收用户输入的控制命令、脚本文件以及反馈系统执行的相关信息;解析子系统是解释器系统的核心部分,它负责对脚本文件进行处理、分析并最终执行内部包含的机械臂运动指令;调试子系统则用于实现脚本文件的调试功能需求;
用户编写脚本文件并发送文件和命令给解释器系统,解释器系统的通信子系统接收后将信息反馈给流程控制子系统;流程控制子系统根据接收到的命令判断调用解析子系统还是调试子系统,然后调用相应系统进行解析执行,如果解析过程中发现错误会将错误信息通过通信子系统报告给用户;在脚本文件解析过程中,用户可输入紧急命令(如暂停、急停等),流程控制子系统会优先处理这些高优先级命令;在一个脚本解析完成后,流程控制子系统会发送相关信息给用户,并将系统恢复到初始状态,等待下一次运行。
进一步地,所述流程控制子系统用于实现命令处理、文件管理和任务管理功能;命令处理指的是用户输入控制命令后需要系统对其进行处理分析,以确定系统应该如何进行下一步操作;文件管理指的是对用户传送的脚本文件进行管理,包括正确地接收文件、运行完后文件的删除操作;任务管理指的是对其他模块执行的统一调度,通常与命令处理部分共同执行,通过对用户输入命令的解析来判断解释器系统当前应调用通信子系统、解析子系统或调试子系统执行何种操作。
进一步地,所述解析子系统用于实现解析脚本和语法检查两个功能,解析脚本是用来处理脚本文件,对脚本文件中的内容进行解析,并调用机械臂的相关运动命令进行执行,所述内容包括语法结构、逻辑和机械臂运动函数;语法检查主要是在对脚本文件进行解析的过程中对脚本的语法格式、语法规范、函数调用等进行检查,保证脚本文件没有语法错误,如果发现错误,能及时向用户报告并停止脚本的执行,防止机械臂系统发生损坏,造成损失。
进一步地,所述调试子系统以解析模块功能为基础来实现单步调试和断点调试两个功能;单步调试指的是解释器系统一条语句一条指语句地解析脚本,每执行完一条语句系统就会暂停解析,等待用户输入下一步的命令;断点调试指的是用户可以自己指定脚本解析要执行到的位置,当系统运行到对应的地方时会自动暂停;同时这两种调试都可以查看变量的信息。
进一步地,所述通信子系统用于实现命令接收、文件接收和信息传递三个功能,主要负责与用户之间的数据交互,命令接收指的是接收用户发送来的控制命令;文件接收负责获取脚本文件;信息传递主要是将解释器系统的执行状态信息发送给用户。
进一步地,所述流程控制子系统的实现过程为:流程控制子系统的主体逻辑控制部分,使用VxWorks系统提供的任务管理机制为基础来实现,首先建立一个高优先级的主任务,由该任务控制主体逻辑,并根据需要控制其他任务;接收到的脚本文件首先放在缓冲区,主任务会将其移入执行区解析并清空缓冲区;读取文件头部的命令,以此来判断系统应进入解析模式还是调试模式;然后开启对应的模块任务进行解析,如果发现语法错误及时提醒用户;同时通过socket与前端建立会话,接收相关的暂停、急停指令到命令缓冲区并执行相关操作;解析完成后会发送提示信息,删除脚本文件,将系统恢复到初始设置。
进一步地,任务管理子模块是流程控制子系统中的主要部分,负责系统执行所需任务的统筹安排,该模块的实现方案是在解释器系统开始运行时建立一个高优先级的主管理任务,该任务可以创建、删除其他任务,由它进行对其他子任务软件层面上的控制;然后建立通信任务,与用户进行脚本文件或命令等的交互;收到文件开始解析时创建解析任务或者调试任务,解析完成后由控制主任务将其删除。
进一步地,所述解析子系统的目标主要是构建一棵语法分析树并对其进行解析执行,首先要设计脚本文件的文法格式,选择使用标准C语言的一个子集进行实现;然后进行词法规则和语法规则的编写,包括两个文件:parse.l文件用于词法分析,定义合法的变量、关键字、符号的格式,parse.y文件用于语法分析,定义语法结构;对文件进行编译,读取文件,解析形成语法解析树;最后从根开始遍历语法树,执行程序,执行完毕后释放语法树。
进一步地,所述调试子系统的目的是满足用户对脚本文件进行调试的需求,是建立在解析模块的基础上实现的,在解析脚本这一功能上,该模块与解析模块没有区别;对于断点调试功能,用户在对应行号上设置断点,系统后台会记录用户设置的断点行号,当脚本解析到对应行号时,解释器就会暂停解析;对于单步调试功能,需要先对脚本文件进行预处理,将不同语句分开放置在不同行上,当用户发送单步调试命令时,系统会判断当前要执行的语法树节点的行号和上一个已执行完节点的行号是否相同,如果不同解释器将会暂停执行;暂停后,系统会将行号和存储在符号表里的相关变量的信息报告给用户。
本发明具有以下有益技术效果:
根据对现有技术的调研,本发明采用Flex&Bison开源工具进行脚本文件的解析工作,能设计实现满足机械臂运动指令调用需求的脚本文件,同时结合VxWorks操作系统的系统特性实现控制和调试等功能。其中,Flex&Bison是专门用于解释器开发的开源工具,可以自己定义语法规则,VxWorks是机械臂运行的嵌入式操作系统,它提供的多任务管理机制为扩展功能提供了帮助。
基于以上对背景的描述,本发明将该图形化编程系统分为前端和后端两个子系统:前端为流程图绘制及脚本生成子系统,后端为脚本文件解释执行子系统,二者通过中间脚本文件相联。前端提供机械臂运动流程图绘制、流程图转化为中间脚本文件、控制机械臂运动命令发送等功能;中间脚本文件包含流程图中全部信息,如运动参数、逻辑判断等,通过它可以还原用户流程图的全部操作,而后端则接收前端子系统传来的脚本文件,并将其解释执行从而实现流程图到机械臂执行命令的转化。本发明满足后端子系统的功能需求,能在机械臂操作系统VxWorks上运行的,支持自定义语法规则脚本文件,并能将其解析成机械臂运动指令,并在此基础上添加控制功能,如急停、暂停、调试等。
附图说明
图1为解释器系统的总体架构图,图2为解释器系统运行流程图,图3为解释器系统功能结构图,图4为流程控制模块总体逻辑流程图,图5为任务管理子模块实现逻辑流程图,图6为解析模块逻辑流程图,图7为调试模块逻辑流程图。
具体实实方式
结合说明书附图1至7,详细阐述本发明的实现过程:
1系统总体架构
系统的总体架构如图1所示,共分为四个子系统:流程控制子系统、通信子系统、解析子系统和调试子系统。流程控制子系统是解释器系统的主体运行逻辑,负责控制整个解释器系统的运行,处理用户输入的控制命令并统筹安排其他子系统;通信子系统负责与用户进行数据交互,包括接收用户输入的控制命令、脚本文件以及反馈系统执行的相关信息;解析子系统是解释器系统的核心部分,它负责对脚本文件进行处理、分析并最终执行内部包含的机械臂运动指令;调试子系统则用于实现脚本文件的调试功能需求。
解释器系统总体运行流程如下:用户编写脚本文件并发送文件和命令给解释器系统,通信子系统接收后将信息反馈给流程控制系统;流程控制系统根据接收到的命令判断调用解析子系统还是调试子系统,然后调用相应系统进行解析执行,如果解析过程中发现错误会将错误信息通过通信系统报告给用户;在脚本文件解析过程中,用户可以输入紧急命令如暂停、急停等,流程控制系统会优先处理这些高优先级命令;在一个脚本解析完成后,流程控制系统会发送相关信息给用户,并将系统恢复到初始状态,等待下一次运行。系统运行流程图如图2所示:
2系统功能模块设计
根据系统总体架构和功能子系统的设计,将解释器系统划分为以下几个模块:流程控制模块、解析模块、调试模块和通信模块。系统的功能模块图如图3所示。
流程控制模块包括命令处理、文件管理和任务管理功能。命令处理指的是用户输入控制命令后需要系统对其进行处理分析,以确定系统应该如何进行下一步操作;文件管理指的是对用户传送的脚本文件进行管理,包括正确地接收文件、运行完后文件的删除等操作;任务管理指的是对其他模块执行的统一调度,通常与命令处理部分共同执行,通过对用户输入命令的解析来判断解释器系统当前应调用那些系统模块执行何种操作。
解析模块实现的是解析子系统的功能。该模块包括解析脚本和语法检查两个功能。解析脚本是用来处理脚本文件的功能,对脚本文件中的内容,包括语法结构、逻辑和机械臂运动函数等,进行解析,并调用机械臂的相关运动命令进行执行;语法检查主要是在对脚本文件进行解析的过程中对脚本的语法格式、语法规范、函数调用等进行检查,保证脚本文件没有语法错误,如果发现错误,能及时向用户报告并停止脚本的执行,防止机械臂系统发生损坏,造成损失。
调试模块实现的是调试子系统的功能,它以解析模块功能为基础。该模块包括单步调试和断点调试两个功能。单步调试指的是解释器系统一条语句一条指语句地解析脚本,每执行完一条语句系统就会暂停解析,等待用户输入下一步的命令;断点调试指的是用户可以自己指定脚本解析要执行到的位置,当系统运行到对应的地方时会自动暂停。同时这两种调试都可以查看变量的信息。
通信模块实现的是通信子系统的功能。该模块包括命令接收、文件接收和信息传递三个功能,主要负责与用户之间的数据交互。命令接收指的是接收用户发送来的控制命令;文件接收负责获取脚本文件;信息传递主要是将解释器系统的执行状态信息发送给用户。
其中,流程控制模块和解析模块、调试模块是系统的主要功能实现部分,接下来对这三个模块的具体设计实现进行说明。
流程控制模块是系统的主体逻辑控制部分,使用VxWorks系统提供的任务管理机制为基础来实现。流程控制模块总体实现的逻辑流程图如图4所示:
首先建立一个高优先级的主任务,由该任务控制主体逻辑,并根据需要控制其他任务;接收到的脚本文件首先放在缓冲区,主任务会将其移入执行区解析并清空缓冲区,这样可以防止多次收到重复文件造成执行错误;读取文件头部的命令,以此来判断系统应进入解析模式还是调试模式;然后开启对应的模块任务进行解析,如果发现语法错误及时提醒用户;同时通过socket与前端建立会话,接收相关的暂停、急停指令到命令缓冲区并执行相关操作;解析完成后会发送提示信息,删除脚本文件,将系统恢复到初始设置。
任务管理子模块是流程控制模块中的主要部分,负责系统执行所需任务的统筹安排,在VxWorks的多任务处理基础上设计各任务的处理逻辑。目前的功能性任务主要包括解析任务、调试任务、通信任务等。该模块的实现方案是在解释器系统开始运行时建立一个高优先级的主管理任务,该任务可以创建、删除其他任务,由它进行对其他子任务软件层面上的控制;然后建立通信任务,与用户进行脚本文件或命令等的交互;收到文件开始解析时创建解析任务或者调试任务,解析完成后由控制主任务将其删除。该部分实现的逻辑流程图如图5所示:
解析模块的目标主要是构建一棵语法分析树并对其进行解析执行。首先要设计脚本文件的文法格式,这里选择使用标准C语言的一个子集进行实现(包括变量声明、数组、内置函数、条件判断、循环、表达式运算等);然后进行词法规则和语法规则的编写,包括两个文件:parse.l文件用于词法分析,定义了合法的变量、关键字、符号的格式,parse.y文件用于语法分析,其中定义了语法结构;对文件进行编译,读取文件,解析形成语法解析树;最后从根开始遍历语法树,执行程序,执行完毕后释放语法树。逻辑流程图如图6所示:
调试模块的目的是满足用户对脚本文件进行调试的需求,是建立在解析模块的基础上实现的,在解析脚本这一功能上,该模块与解析模块没有区别。对于断点调试功能,用户在对应行号上设置断点,系统后台会记录用户设置的断点行号,当脚本解析到对应行号时,解释器就会暂停解析;对于单步调试功能,需要先对脚本文件进行预处理,将不同语句分开放置在不同行上,当用户发送单步调试命令时,系统会判断当前要执行的语法树节点的行号和上一个已执行完节点的行号是否相同,如果不同解释器将会暂停执行。暂停后,系统会将行号和存储在符号表里的相关变量的信息报告给用户。模块实现的逻辑流程图如图7:
对本发明效果的描述如下:
由于条件所限,无法使用真实的机械臂及其接口来进行演示,所以测试用例中的机械臂指令函数只是简单地用打印字符串来表示运行该指令,同时只选取具有代表性的指令函数。
系统仿真环境的配置表如表1所示,仿真工具如表2所示,所用到的机械臂指令函数如表3所示。
表1系统仿真环境配置表
Figure BDA0002278072990000061
Figure BDA0002278072990000071
表2系统测试工具
Figure BDA0002278072990000072
表3使用到的机械臂运动函数
Figure BDA0002278072990000073
下面是系统仿真测试用例设计,包括用例测试的功能、用例脚本的格式等,除调试用例外其余均为解析模式。
表4测试用例
Figure BDA0002278072990000074
Figure BDA0002278072990000081
Figure BDA0002278072990000091
表5是用例的仿真测试结果,包括用户前端和后端两个部分的界面运行结果。测试结果分为两部分,上方的是前端界面运行结果,下方是后端运行结果。
表5测试结果
Figure BDA0002278072990000092
Figure BDA0002278072990000101
Figure BDA0002278072990000111
Figure BDA0002278072990000121
Figure BDA0002278072990000131
通过以上用例的仿真测试结果可以看出,本系统实现了脚本文件的解析执行功能,能够解析出脚本文件中的逻辑结构并使用机械臂特定的相关函数,同时该系统还具有暂停、继续、急停、调试等扩展功能,满足了实际的需求。此外,本系统运行在VxWorks操作系统上并使用了系统提供的功能进行设计开发,满足了机械臂的开发需求。
下面给出系统的性能仿真测试结果,测试范围包括系统执行占用的内存、命令响应的时间以及脚本解析的时间等。内存占用测试采用的脚本用例如表6所示,本测试只考虑脚本正确并且完成全部解析的情况。测试结果取10次记录的平均值,保留到整数位,最终结果如表7所示。
表6内存占用测试用例表
Figure BDA0002278072990000132
Figure BDA0002278072990000141
表6(续表)
Figure BDA0002278072990000142
表7内存占用测试结果表(单位:Byte)
Figure BDA0002278072990000151
结果分析:表6中的用例包括了解释器常用到的功能语句,基本覆盖了各种情况,在此基础上从表7可以看出四个用例的内存占用平均约为7KB,各个任务的内存占用比较稳定,满足系统对内存占用的要求。
因为命令响应时间部分的性能主要取决于网络传输的速度,而网络速度情况比较复杂,所以在本次测试中主要测试系统从收到命令到进行相关处理的时间,该测试依靠VxWorks系统提供的系统时钟功能,系统时钟率设为50次/秒,以单步调试命令为例,进行10次测量,最终结果取平均值,保留整数位。测试结果如表8所示。
表8命令响应时间测试结果表
Figure BDA0002278072990000152
结果分析:从上表可以计算得出命令响应的平均时为在412ms,满足系统500ms内响应的需求。同时调试命令的处理相比于实时控制命令要复杂,处理时间会增加,平均来看可以满足用户对于响应时间的要求。
最后是脚本解析时间的仿真测试,由于机械臂运行的时间不能确定,所以本测试在计算时间时会除去模拟机械臂运动的时间,并使脚本全部执行完成。测试结果如表9所示。
表9脚本解析时间测试结果表
Figure BDA0002278072990000161
结果分析:从表中可以看到脚本解析时间随着脚本语句数量的增加而递增,100条语句时执行时间为60ms,而500条语句的执行时间为340ms。一般的脚本语句数量不会超过500句,解析时间满足系统的一般需求。
综上所述,本解释器系统在VxWorks操作系统上开发适用于机械臂操作的指令解释系统。与其他解释器系统相比,本系统主要基于机械臂指令进行开发,具有较强的针对性,能够满足机械臂开发的需求,同时又添加了各种利于操作的控制功能,增加了系统的易用性和实用性,此外本系统的性能也满足一般需求。
本发明中援引的文献:
[1]曾国,郭烈恩,胡云堂.利用LEX与YACC实现数控线切割的加工程序编译器[J].机电工程,2004(21):58-61.
[2]沙智华,葛研军,施志辉,等.基于LEX&YACC数控代码编译技术研究[J].组合机床与自动化研究技术,2002(11):50-51.
[3]游华云,叶佩青,杨开明.多数控代码解释器共存的设计与应用[J].计算机工程与应用,2007,43(12):1-2.

Claims (9)

1.一种基于VxWorks的机械臂指令解释器系统,其特征在于,所述系统包括四个子系统:流程控制子系统、通信子系统、解析子系统和调试子系统;流程控制子系统是解释器系统的主体运行逻辑,负责控制整个解释器系统的运行,处理用户输入的控制命令并统筹安排其他子系统;通信子系统负责与用户进行数据交互,包括接收用户输入的控制命令、脚本文件以及反馈系统执行的相关信息;解析子系统是解释器系统的核心部分,它负责对脚本文件进行处理、分析并最终执行内部包含的机械臂运动指令;调试子系统则用于实现脚本文件的调试功能需求;
用户编写脚本文件并发送文件和命令给解释器系统,解释器系统的通信子系统接收后将信息反馈给流程控制子系统;流程控制子系统根据接收到的命令判断调用解析子系统还是调试子系统,然后调用相应系统进行解析执行,如果解析过程中发现错误会将错误信息通过通信子系统报告给用户;在脚本文件解析过程中,用户可输入紧急命令,流程控制子系统会优先处理这些高优先级命令;在一个脚本解析完成后,流程控制子系统会发送相关信息给用户,并将系统恢复到初始状态,等待下一次运行。
2.根据权利要求1所述的基于VxWorks的机械臂指令解释器系统,其特征在于,
所述流程控制子系统用于实现命令处理、文件管理和任务管理功能;命令处理指的是用户输入控制命令后需要系统对其进行处理分析,以确定系统应该如何进行下一步操作;文件管理指的是对用户传送的脚本文件进行管理,包括正确地接收文件、运行完后文件的删除操作;任务管理指的是对其他模块执行的统一调度,通常与命令处理部分共同执行,通过对用户输入命令的解析来判断解释器系统当前应调用通信子系统、解析子系统或调试子系统执行何种操作。
3.根据权利要求2所述的基于VxWorks的机械臂指令解释器系统,其特征在于,
所述解析子系统用于实现解析脚本和语法检查两个功能,解析脚本是用来处理脚本文件,对脚本文件中的内容进行解析,并调用机械臂的相关运动命令进行执行,所述内容包括语法结构、逻辑和机械臂运动函数;语法检查主要是在对脚本文件进行解析的过程中对脚本的语法格式、语法规范、函数调用等进行检查,保证脚本文件没有语法错误,如果发现错误,能及时向用户报告并停止脚本的执行,防止机械臂系统发生损坏,造成损失。
4.根据权利要求3所述的基于VxWorks的机械臂指令解释器系统,其特征在于,所述调试子系统以解析模块功能为基础来实现单步调试和断点调试两个功能;单步调试指的是解释器系统一条语句一条指语句地解析脚本,每执行完一条语句系统就会暂停解析,等待用户输入下一步的命令;断点调试指的是用户可以自己指定脚本解析要执行到的位置,当系统运行到对应的地方时会自动暂停;同时这两种调试都可以查看变量的信息。
5.根据权利要求4所述的基于VxWorks的机械臂指令解释器系统,其特征在于,
所述通信子系统用于实现命令接收、文件接收和信息传递三个功能,主要负责与用户之间的数据交互,命令接收指的是接收用户发送来的控制命令;文件接收负责获取脚本文件;信息传递主要是将解释器系统的执行状态信息发送给用户。
6.根据权利要求1或2所述的基于VxWorks的机械臂指令解释器系统,其特征在于,所述流程控制子系统的实现过程为:流程控制子系统的主体逻辑控制部分,使用VxWorks系统提供的任务管理机制为基础来实现,首先建立一个高优先级的主任务,由该任务控制主体逻辑,并根据需要控制其他任务;接收到的脚本文件首先放在缓冲区,主任务会将其移入执行区解析并清空缓冲区;读取文件头部的命令,以此来判断系统应进入解析模式还是调试模式;然后开启对应的模块任务进行解析,如果发现语法错误及时提醒用户;同时通过socket与前端建立会话,接收相关的暂停、急停指令到命令缓冲区并执行相关操作;解析完成后会发送提示信息,删除脚本文件,将系统恢复到初始设置。
7.根据权利要求6或所述的基于VxWorks的机械臂指令解释器系统,其特征在于,
任务管理子模块是流程控制子系统中的主要部分,负责系统执行所需任务的统筹安排,该模块的实现方案是在解释器系统开始运行时建立一个高优先级的主管理任务,该任务可以创建、删除其他任务,由它进行对其他子任务软件层面上的控制;然后建立通信任务,与用户进行脚本文件或命令等的交互;收到文件开始解析时创建解析任务或者调试任务,解析完成后由控制主任务将其删除。
8.根据权利要求1或3所述的基于VxWorks的机械臂指令解释器系统,其特征在于,所述解析子系统的目标主要是构建一棵语法分析树并对其进行解析执行,首先要设计脚本文件的文法格式,选择使用标准C语言的一个子集进行实现;然后进行词法规则和语法规则的编写,包括两个文件:parse.l文件用于词法分析,定义合法的变量、关键字、符号的格式,parse.y文件用于语法分析,定义语法结构;对文件进行编译,读取文件,解析形成语法解析树;最后从根开始遍历语法树,执行程序,执行完毕后释放语法树。
9.根据权利要求1或4所述的基于VxWorks的机械臂指令解释器系统,其特征在于,
所述调试子系统的目的是满足用户对脚本文件进行调试的需求,是建立在解析模块的基础上实现的,在解析脚本这一功能上,该模块与解析模块没有区别;对于断点调试功能,用户在对应行号上设置断点,系统后台会记录用户设置的断点行号,当脚本解析到对应行号时,解释器就会暂停解析;对于单步调试功能,需要先对脚本文件进行预处理,将不同语句分开放置在不同行上,当用户发送单步调试命令时,系统会判断当前要执行的语法树节点的行号和上一个已执行完节点的行号是否相同,如果不同解释器将会暂停执行;暂停后,系统会将行号和存储在符号表里的相关变量的信息报告给用户。
CN201911131043.2A 2019-11-18 2019-11-18 一种基于VxWorks的机械臂指令解释器系统 Active CN110861085B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911131043.2A CN110861085B (zh) 2019-11-18 2019-11-18 一种基于VxWorks的机械臂指令解释器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911131043.2A CN110861085B (zh) 2019-11-18 2019-11-18 一种基于VxWorks的机械臂指令解释器系统

Publications (2)

Publication Number Publication Date
CN110861085A true CN110861085A (zh) 2020-03-06
CN110861085B CN110861085B (zh) 2022-11-15

Family

ID=69655203

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911131043.2A Active CN110861085B (zh) 2019-11-18 2019-11-18 一种基于VxWorks的机械臂指令解释器系统

Country Status (1)

Country Link
CN (1) CN110861085B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111708525A (zh) * 2020-06-24 2020-09-25 华中科技大学 一种基于xml工业机器人图形化编程系统解释器
CN117057640A (zh) * 2023-07-26 2023-11-14 广东优翼航空技术有限公司 一种基于解释器对飞行品质进行评估的方法及系统
CN117171052A (zh) * 2023-10-30 2023-12-05 浙江禾川科技股份有限公司 一种基于xml语言的脚本测试方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6035264A (en) * 1996-11-26 2000-03-07 Global Maintech, Inc. Electronic control system and method for externally controlling process in a computer system with a script language
WO2003019452A1 (en) * 2001-08-28 2003-03-06 Yujin Robotics, Co. Method and system for developing intelligence of robot, method and system for educating robot thereby
CN1767453A (zh) * 2004-10-31 2006-05-03 中兴通讯股份有限公司 自动测试方法和系统
US20090198496A1 (en) * 2008-01-31 2009-08-06 Matthias Denecke Aspect oriented programmable dialogue manager and apparatus operated thereby
US20120144376A1 (en) * 2009-06-02 2012-06-07 Vector Fabrics B.V. Embedded system development
WO2017069987A1 (en) * 2015-10-22 2017-04-27 Microsoft Technology Licensing, Llc Storage access debugging with disassembly and symbol entries

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6035264A (en) * 1996-11-26 2000-03-07 Global Maintech, Inc. Electronic control system and method for externally controlling process in a computer system with a script language
WO2003019452A1 (en) * 2001-08-28 2003-03-06 Yujin Robotics, Co. Method and system for developing intelligence of robot, method and system for educating robot thereby
CN1767453A (zh) * 2004-10-31 2006-05-03 中兴通讯股份有限公司 自动测试方法和系统
US20090198496A1 (en) * 2008-01-31 2009-08-06 Matthias Denecke Aspect oriented programmable dialogue manager and apparatus operated thereby
US20120144376A1 (en) * 2009-06-02 2012-06-07 Vector Fabrics B.V. Embedded system development
WO2017069987A1 (en) * 2015-10-22 2017-04-27 Microsoft Technology Licensing, Llc Storage access debugging with disassembly and symbol entries

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杨杏: ""基于ARM-Linux的机器人示教器系统的研究与开发"", 《中国优秀硕士学位论文全文数据库》 *
金登男: "《编译原理学习与实践指导》", 30 November 2013 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111708525A (zh) * 2020-06-24 2020-09-25 华中科技大学 一种基于xml工业机器人图形化编程系统解释器
CN117057640A (zh) * 2023-07-26 2023-11-14 广东优翼航空技术有限公司 一种基于解释器对飞行品质进行评估的方法及系统
CN117057640B (zh) * 2023-07-26 2024-04-12 广东优翼航空技术有限公司 一种基于解释器对飞行品质进行评估的方法及系统
CN117171052A (zh) * 2023-10-30 2023-12-05 浙江禾川科技股份有限公司 一种基于xml语言的脚本测试方法、装置、设备及介质
CN117171052B (zh) * 2023-10-30 2024-02-09 浙江禾川科技股份有限公司 一种基于xml语言的脚本测试方法、装置、设备及介质

Also Published As

Publication number Publication date
CN110861085B (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
CN110861085B (zh) 一种基于VxWorks的机械臂指令解释器系统
CN109143952B (zh) 可编程逻辑控制器编程语言转换系统
CN106737676B (zh) 一种基于脚本可二次开发的工业机器人编程系统
CN109347884B (zh) 一种实时以太网到现场总线的转换方法及装置、存储介质
CN111580806A (zh) 一种协作机器人图形化编程系统
Alexander Formally-based tools and techniques for human-computer dialogues
CN101408849A (zh) Ttcn-3语言的编译执行方法及系统
CN103123598A (zh) 一种编译型软plc的在线调试实现方法
CN102306122A (zh) 自动化测试方法及设备
CN109032056B (zh) 可编程逻辑控制器编程语言转换方法
KR101722856B1 (ko) 프로그래밍 언어 기반의 plc 자동 테스트 장치
CN109032607B (zh) 基于lua脚本的机房监控实时数据解析引擎及脚本调试工具
CN110442520B (zh) 一种基于plc编程语言的交叉调试系统及方法
Long et al. A case study in testing distributed systems
Holzmann The Pandora System: an interactive system for the design of data communication protocols
CN115344248A (zh) 一种rpa开发字段编辑多样化方法
Lee et al. A New Integrated Software Development Environment Based on SDL, MSC, and CHILL for Large‐scale Switching Systems
Pozefsky et al. A meta-implementation for Systems Network Architecture
Ohnishi A visual software requirements definition method
Welsh et al. Integration of semantic tools into document editors
CN113900953A (zh) 一种基于反射机制的软件自动化测试架构方法
CN117785160B (zh) 一种低代码应用的行为逻辑开发调试方法、系统及装置
CN116009836B (zh) 基于脚本语言的rpa编程方法、装置、设备及存储介质
CN117518973A (zh) 一种plc设备数据集成管理与调试系统
CN117880185A (zh) 一种自动驾驶车辆的数据分析方法

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