CN106444633A - 一种运动控制系统 - Google Patents
一种运动控制系统 Download PDFInfo
- Publication number
- CN106444633A CN106444633A CN201610984824.6A CN201610984824A CN106444633A CN 106444633 A CN106444633 A CN 106444633A CN 201610984824 A CN201610984824 A CN 201610984824A CN 106444633 A CN106444633 A CN 106444633A
- Authority
- CN
- China
- Prior art keywords
- code
- lua
- language
- instruction
- module
- 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
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4093—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
Abstract
本发明是一种运动控制系统,指令代码解析模块中集成了Lua虚拟机,既能执行传统的语言代码,又能执行Lua代码;机器人语言或者G代码这类的代码以字符串嵌入Lua代码之中;使用Lua语言的协程功能,每一路运动控制都有一个协程对应,控制一路或者多路运动控制。这种控制系统适合用于需要复杂控制的多路机械手控制。
Description
技术领域
本发明涉及数控技术领域,特别是指一种运动控制系统。
背景技术
在工厂级自动化控制场合经常面临多台(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))可以使用所讨论的实施例。
本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种运动控制系统,包括:通讯模块,外部存储模块,核心控制模块,指令-代码解析模块,插补计算模块,多路电机驱动器,输入-输出端口控制模块,其特征在于:指令-代码解析模块中集成了Lua虚拟机,既能执行传统的语言代码,又能执行Lua代码;机器人语言或者G代码这类的代码以字符串嵌入Lua代码之中;使用Lua语言的协程功能,每一路运动控制都有一个协程对应,系统支持一路或者多路运动控制。
2.根据权利要求1所述的运动控制系统,其特征在于,为了提高Lua虚拟机效率,指令-代码解析模块执行的是经Lua代码编译生成的LuaJIT代码。
3.根据权利要求1所述的运动控制系统,其特征在于,指令-代码解析模块具有解析字符串形式的机器人语言或者G代码这类型的代码的功能,这些功能在Lua语言中有函数直接支持。
4.根据权利要求1所述的运动控制系统,其特征在于,执行的Lua代码通过通讯模块传入并存储在外部存储模块,指令-代码解析模块从外部存储模块提取Lua代码执行。
5.根据权利要求1所述的运动控制系统,其特征在于,执行的Lua代码实时动态的通过通讯模块传入到指令-代码解析模块并执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610984824.6A CN106444633B (zh) | 2016-11-09 | 2016-11-09 | 一种运动控制系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610984824.6A CN106444633B (zh) | 2016-11-09 | 2016-11-09 | 一种运动控制系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106444633A true CN106444633A (zh) | 2017-02-22 |
CN106444633B CN106444633B (zh) | 2020-02-14 |
Family
ID=58208131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610984824.6A Active CN106444633B (zh) | 2016-11-09 | 2016-11-09 | 一种运动控制系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106444633B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678944A (zh) * | 2017-09-04 | 2018-02-09 | 中国航空工业集团公司西安飞行自动控制研究所 | 基于嵌入式脚本的自动测试方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070150102A1 (en) * | 2005-12-09 | 2007-06-28 | Joong Ki Park | Method of supporting robot application programming and programming tool for the same |
CN104049573A (zh) * | 2013-03-14 | 2014-09-17 | 通用汽车环球科技运作有限责任公司 | 具有可扩展的编程环境的机器人任务指挥器 |
-
2016
- 2016-11-09 CN CN201610984824.6A patent/CN106444633B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070150102A1 (en) * | 2005-12-09 | 2007-06-28 | Joong Ki Park | Method of supporting robot application programming and programming tool for the same |
CN104049573A (zh) * | 2013-03-14 | 2014-09-17 | 通用汽车环球科技运作有限责任公司 | 具有可扩展的编程环境的机器人任务指挥器 |
Non-Patent Citations (3)
Title |
---|
张红等: "脚本编程技术在机器人控制教学中的应用", 《科技教育》 * |
张茂玲等: "基于Lua的工业机器人解释器实现的研究", 《科技视界》 * |
胡瀚文: "水平视觉光电机器人软件系统的设计与实现", 《中国优秀硕士论文全文数据库信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678944A (zh) * | 2017-09-04 | 2018-02-09 | 中国航空工业集团公司西安飞行自动控制研究所 | 基于嵌入式脚本的自动测试方法 |
CN107678944B (zh) * | 2017-09-04 | 2020-12-29 | 中国航空工业集团公司西安飞行自动控制研究所 | 基于嵌入式脚本的自动测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106444633B (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10732608B2 (en) | Translation module, processing module and control system | |
CN204076264U (zh) | 一种运动控制卡及机器人 | |
CN102520760B (zh) | 一种用于任意波形产生系统的处理器 | |
CN201426109Y (zh) | 一种pci总线型多轴脉冲式运动控制卡 | |
CN103941650B (zh) | 逻辑与运动集成控制器 | |
CN102087610A (zh) | 利用Simulink对定制硬件进行模型仿真及代码生成的方法 | |
CN103942081A (zh) | Plc梯形图il指令表生成方法 | |
CN107783501A (zh) | 一种PCIe控制的数控插补系统 | |
CN108508812B (zh) | 一种agv控制器io端口复用配置系统及其方法 | |
CN107300394A (zh) | 基于fpga与arm的光纤光栅传感器硬件解调系统的实现方法 | |
CN201163363Y (zh) | 数控机床上的通用多轴运动控制系统 | |
CN106444633A (zh) | 一种运动控制系统 | |
CN104793568A (zh) | 多轴插补方法 | |
CN111443630A (zh) | 一种内建可编程控制功能的伺服驱动器 | |
CN102902207B (zh) | 基于Matlab/VC的转台一体化控制方法、装置和系统 | |
CN208506542U (zh) | 一种agv控制器io端口复用配置系统 | |
CN116339696A (zh) | 一种可扩展自动生成跨平台多语言接口的系统及方法 | |
CN112180808B (zh) | 一种伺服控制方法、装置、系统、计算机设备和存储介质 | |
CN203959561U (zh) | 电梯控制系统 | |
CN106444629B (zh) | 一种基于嵌入表达式程序的控制方法 | |
CN105867992A (zh) | 代码编译方法和装置 | |
CN102393814A (zh) | 一种由软件方式生成动态可重构处理器配置信息的系统 | |
CN203882142U (zh) | 一种64路射极跟随输出驱动模块电路 | |
AU2016102107A4 (en) | Robot control system | |
CN203049194U (zh) | 电脑横机选针控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |