一种运动控制系统的制作方法

文档序号:12270021阅读:264来源:国知局

本发明涉及数控技术领域,特别是指一种运动控制系统。



背景技术:

在工厂级自动化控制场合经常面临多台(2-16台)多轴(3-6轴)机械手的协作控制问题。实现的方案是每台机械手装备一个控制系统,机械手之间通过总线连接通信,通过PLC系统实现协作控制。这种体系结构的问题在于物理接线复杂,通信实时性和安全可靠性差,性能难以提高,而且成本较高。

多路多轴运动系统的另外一个困难是多机运行的协作的编程问题。控制运动控制实际上是多路同时运行的并发模式,使用PLC编程的方法效率低下。



技术实现要素:

有鉴于此,本发明的目的在于提出一种物理接线简单,通信实时性和安全可靠性强,性而且成本较低,且多机运行的协作的编程效率高的运动控制系统。

基于上述目的,本发明提出一种集成了Lua虚拟机的运动控制系统。

Lua语言在最新版本中增加了支持了整形数据功能,这种改进使Lua语言适用工业控制场合。Lua语言具有较强的字符串处理功能,数据变量与字符串之间的转化较为方便,因此可以直接将运动控制指令用字符串实现,这样就能实现常规的机器人语言G代码这类与Lua语言混合编程。

另外,Lua脚本语言带有协程功能。为每一路运动控制系统建立一个协程,每一路独立编程,运动控制问题就可大大简化,加上Lua语言简单易学,这种编程方案提升了编程效率。

一种运动控制系统,包括:通讯模块,外部存储模块,指令-代码解析模块,插补计算模块,输入-输出端口控制模块;指令-代码解析模块中集成了Lua虚拟机,执行Lua代码;机器人语言或者G代码这类的代码以字符串嵌入Lua代码;使用Lua语言的协程功能,每一路运动控制都有一个协程对应,系统支持一路或者多路运动控制。

为了提高Lua虚拟机效率,指令-代码解析模块执行的是经Lua代码编译生成的LuaJIT代码。

指令-代码解析模块具有解析字符串形式的机器人语言或者G代码这类型的代码的功能,这些功能在Lua语言中有函数直接支持。

执行的Lua代码通过通讯模块传入并存储在外部存储模块,指令-代码解析模块从外部存储模块提取Lua代码执行。

执行的Lua代码实时动态的通过通讯模块传入到指令-代码解析模块并执行。

附图说明

图1为运动控制系统的一个实施例结构图。

具体实施方式

下面以一个本运动控制系统的实施例来说明本发明的具体实施方式。

图1为运动控制系统的一个实施例结构图,包括:通讯模块,外部存储模块,核心控制模块,指令-代码解析模块,插补计算模块,多路电机驱动器,输入-输出端口控制模块;

现有的运动控制系统指令代码解析模块集成的是G代码或者其它语言代码解释器,如机器人AL语言解释器。Lua脚本语言作为一种轻量级的语言,虽然在计算机领域使用广泛,但是一直以来由于其不支持整形数据,用于控制领域不适合。但是最新的版本开始支持整形数据,使用Lua语言于控制领域的障碍被清除了。

本发明在指令代码解析模块中集成了Lua虚拟机,既能执行传统的语言代码,又能执行Lua代码;机器人语言或者G代码这类的代码以字符串嵌入Lua代码;这样就能实现Lua和传统的语言代码混合编程。由于Lua语言本身的特点,实现指令代码解析模块的C语言代码,可以被包装成Lua语言函数,在Lua语言中调用,这样因为Lua虚拟机的代价就变得很低。比如C语言编写的字符串语言代码解析函数,可以包装成Lua语言函数,在Lua语言中注册这个函数,就能实现字符串语言代码解析函数。

此外,Lua语言的协程功能很适合复杂运动控制的场合。因为,运动控制过程指令的执行一般是异步进行的,一个运动指令需要一定时间才能完成。使用Lua语言的协程功能,让每一路运动控制都放在一个协程中,运动指令一执行,就立刻放弃控制权,进入等待执行状态,把控制器交给下一个协程;这样对于对路运动控制的场合,每一路编程就变得简单。

但是引入Lua虚拟机有一个缺点,因为Lua是和Java语言类似的语言,执行的效率远不如C语言编译成的机器代码。为了提高Lua虚拟机效率,指令-代码解析模块执行的是经Lua代码编译生成的LuaJIT代码,可提高速度,并减小系统内存消耗。

如前面所述,因为系统用C语言实现的函数可以注册成Lua函数,指令-代码解析模块具有解析字符串形式的机器人语言或者G代码这类型的代码的功能,这些功能在Lua语言中有函数直接支持可以通过这个机制实现。

Lua代码通过通讯模块传入下载,并存储在外部存储模块,指令-代码解析模块从外部

存储模块提取Lua代码执行。

因为通讯传入的Lua代码可以被Lua虚拟机现场编译并执行,因此作为系统的一个改进功能,执行的Lua代码实时动态的通过通讯模块传入到指令-代码解析模块并执行。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。

本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1