CN106909128B - 一种支持运动控制模块在线升级的运动控制方法 - Google Patents
一种支持运动控制模块在线升级的运动控制方法 Download PDFInfo
- Publication number
- CN106909128B CN106909128B CN201510975063.3A CN201510975063A CN106909128B CN 106909128 B CN106909128 B CN 106909128B CN 201510975063 A CN201510975063 A CN 201510975063A CN 106909128 B CN106909128 B CN 106909128B
- Authority
- CN
- China
- Prior art keywords
- motion
- control
- control module
- motion control
- listening
- 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
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Communication Control (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Control By Computers (AREA)
Abstract
本发明涉及一种支持运动控制模块在线升级的运动控制方法,包括以下步骤:主控单元执行运动控制主进程,并触发EtherCAT总线通信线程和监听线程;通过EtherCAT总线通信线程,根据EtherCAT总线通信层协议检查网络结构、初始化伺服驱动器;通过监听线程进行监听:当监听到运动控制模块更新信号时,进行在线更新;同时,通过运动控制主进程解析上位机发来的运动控制任务确定参数列表和运动控制指令;根据EtherCAT总线应用层协议实时采集伺服驱动器状态信息,并解析运动控制模型生成控制命令实时传输。本设计通过监听线程的方式实现了运动功能模块的在线更新,使得运动控制器能够最大限度的应用于复杂运动控制场景,同时依托EtherCAT总线接口实现实时控制,网络结构非常灵活。
Description
技术领域
本发明涉及一种支持运动控制模块在线升级的运动控制方法。本发明适用于各种运动控制应用场景,尤其适用于对实时数据通信有要求的控制领域。
背景技术
随着运动控制领域的飞速发展,实时通信需求的不断提升,工业控制器方向由传统的以秒为单位的同步控制演变到微秒级控制。EtherCAT总线技术就是为了适应于更高速的通信速度而提出。目前工业领域主流的总线技术包括Powerlink、CAN总线等,配合不同的厂商多领域的涉及,已经将实时通信技术延展到了更多的领域。
针对运动控制领域,各大厂家都提出了基于快速总线通信的解决方案。运动控制产品主要以运动控制卡和运动模型库为主。但现有运动控制器多固化了运动控制模块,多数产品无法支持在线升级,每次更新都需要重新编译固化,因此大大的限制了运动控制器的灵活性。同时现有运动控制器与驱动器之间通信协议种类繁多,因此需要一套标准的通信协议定义出一套通用性的应用层协议格式。
综上所述,运动控制器在实现运动控制功能的基础上,还应该支持运动控制模块的在线升级,实现对实际运动控制效果的在线调整。另一方面针对通信协议各异、标准不统一的问题,设计基于CANopen应用层协议的运动控制器,将运动控制参数统一映射到构建的统一地址模型中,并通过通信层EtherCAT接口进行实时控制。
发明内容
针对现有技术中存在的上述不足之处,本发明要解决的技术问题是克服现有控制器存在的不足,提供一种基于EtherCAT技术的运动控制方法,不仅能够将伺服驱动器所需数据进行实时采集和传输,还能将数据定义出CANopen应用层模型进行统一管理。同时本发明还提出了一套支持运动功能块在线升级的解决方案。
本发明为实现上述目的所采用的技术方案是:一种支持运动控制模块在线升级的运动控制方法,包括以下步骤:
主控单元执行运动控制主进程,并触发EtherCAT总线通信线程和监听线程;
通过EtherCAT总线通信线程,根据EtherCAT总线通信层协议检查网络结构、初始化伺服驱动器;
通过监听线程对信号量进行监听:当监听到中断信号,则主控单元重置;当监听到上位机发送的运动控制模块更新信号时,进行在线更新;
同时,通过运动控制主进程解析上位机发来的运动控制任务:根据运动控制任务确定伺服驱动器状态信息参数列表和运动控制指令;
根据EtherCAT总线应用层协议实时采集伺服驱动器状态信息,并解析运动控制模型生成控制命令实时传输给伺服驱动器。
所述伺服驱动器状态信息根据CIA 402应用层协议封装,包括状态字、实时速度信息、实时扭矩信息、实时末端位置信息、当前运动控制模式。
所述运动控制指令根据CIA 402应用层协议封装,包括指令字、速度信息、扭矩信息、末端位置信息、运动控制模式。
所述进行在线更新包括以下步骤:
当监听到上位机发送的运动控制模块更新信号时,停止当前运动控制任务,接收上位机发来的运动控制模块更新文件;向主进程发送接收完成信号;
主进程调用系统更新服务,将运动控制模块更新文件替换当前运动控制模块中的待更新部分的目标代码文件,重新连接生成可调用的运动控制模块;
当主进程接收到更新完成信号时,继续解析上位机发来的运动控制任务。
所述主进程调用系统更新服务,将运动控制模块更新文件替换当前运动控制模块中的待更新部分的目标代码文件,重新连接生成可调用的运动控制模块包括以下步骤:
系统更新服务首先检索运动控制功能模块名称,查找运动控制模块在内存中的起始地址及偏移量;然后根据起始地址及偏移量调用内存访问接口,将运动控制模块更新文件写入当前内存;最后通过运动控制模块原有连接方法,实现运动控制功能模块的更新,并向主进程发送更新完成信号。
本发明具有以下优点及有益效果:
1.采用支持运动控制模块在线升级的运动控制器进行运动控制,适用于运动控制研究阶段、调试阶段以及后期维护阶段,覆盖整个运动控制产品的生命周期,使运动控制器能够最大限度的适配不同被控对象,大大的降低了维护成本,同时适应于算法研究过程中对在线调试的要求,复用性强。
2.本设计通过监听线程的方式实现了运动功能模块的在线更新,使得运动控制器能够最大限度的应用于复杂运动控制场景,同时依托EtherCAT总线接口实现实时控制,网络结构非常灵活。
3.能够真正实现运动控制应用层接口的统一化。运动控制器内置EtherCAT通信协议,并通过CANopen应用层协议将伺服驱动器状态参数和控制命令实时进行通信,并且能够保障同步周期在100微秒以内,实现快速有效的运动控制解决方案。
附图说明
图1是本发明实施例的组成框图;
图2是本发明实施例的工作原理图;
图3是本发明实施例的工作状态机示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
如图1所示,本发明的运动控制器硬件装置主要包括以太网接口单元、以太网控制单元、SRAM存储单元、主控单元、控制按键和指示灯单元和供电单元。数据处理单元中主控单元与以太网控制单元、SRAM存储单元、通信接口转换模块、控制按键、指示灯单元、供电单元呈星形连接;所述供电单元为数据处理单元中其他所有单元供电。
所述主控单元由TI公司生产的AM335x系列Cortex-A8处理器及其外围电路组成;
所述SRAM存储器单元由ISSI公司生产的IS61WV102416BLL芯片及其外围电路组成;
所述以太网控制单元由TI公司生产的DP83848CVV芯片及其外围电路组成;
所述指示灯单元由贴片LED组成;
所述供电单元由金升阳公司生产的降压开关电源模块及其外围保护、滤波、稳压电路组成。在降压开关电源模块的输入端连接有防浪涌电路,使本网关具有抗雷击和冲击的性能;降压开关电源模块将输入的220V交流电压变为5V直流电压,由于上述各单元工作电压都为3.3V,因此采用AS1117线性稳压器将电压降为3.3V,在降压开关电源模块和线性稳压器的输出端都设计了滤波电路。
本发明的运动应用程序主要包括运动控制功能库、控制主进程、EtherCAT总线通信线程和程序监听线程组成。
所述的运动控制功能库,是根据被控对象的控制模型建立的控制算法库;
所述的控制主进程,是控制被控对象执行运动指令的应用程序主逻辑进程。
所述的EtherCAT总线通信线程,是控制器和伺服驱动器之间的总线通信,包括状态采集和指令传输。
所述的程序监听线程,是处理运动控制器的请求响应,其中包括基于网络的更新请求和基于硬件按键的中断请求。
如图2所示,支持运动控制模块在线升级的运动控制器,其执行过程包含以下步骤:
步骤S1:上电,初始化运动控制器;
步骤S2:执行运动控制主程序,同时触发执行监听线程和EtherCAT总线通信线程;
步骤S3:通过EtherCAT总线协议,检查网络结构,初始化伺服驱动器,实时采集伺服驱动器状态信息;
步骤S4:读取伺服驱动器状态参数和运动控制指令解析运动控制模型,生成运动控制指令,若运动控制指令为空,则等待;
步骤S5:实时传输运动控制指令,重复步骤S3;
步骤S6:若触发硬件中断触发,则执行步骤S1;若触发网络更新请求,则执行程序下载,完毕后执行步骤S1.
下面就本发明的运动控制应用程序部分具体实施方式做进一步详细说明。本实施例中要求确保运动控制器与伺服驱动器之间保持稳定连接。
图3给出了本发明实施例的工作原理流程图,如图3所示,将运动控制器接通24v直流电,启动控制器,通过运动控制主进程初始化运动控制器,同时触发监听线程和EtherCAT通信线程。当应用任务存在时,控制器状态切换为执行状态,根据伺服驱动器状态参数和运动控制模型解算运动控制,生成运动控制指令,并通过EtherCAT总线协议进行传输,待指令下发后运动控制器状态切换至停止状态。当应用任务不存在时,控制器状态直接切换为停止状态。当运动控制器初始化失败则运动控制器本周期内状态为错误状态。当在执行状态时,运动控制器出现非严重错误则从新执行,若出现严重错误则运动控制器状态切换至停止状态。
其中所述的运动控制器监听线程和EtherCAT通信线程只执行一次,而运动控制器任务状态切换是在运动控制器主程序中周期性执行。
当运动控制器监听线程接收到中断信号量时,运动控制器中断当前执行任务,关闭监听线程和EtherCAT总线通信线程。若中断信号量为Reset信号时,重新执行运动控制器主进程初始化;若中断信号量为Close信号时,关闭运动控制器主进程。
当运动控制器监听线程接收到由上位机发送的运动控制模块更新信号SIGEV_INTR时,主进程向任务线程发送SIGEV_SIGNAL,停止当前运动控制任务,并将通过EtherCAT总线将伺服驱动器运动状态切换至停止状态,同时开始接收上位机发来的运动控制模块更新文件,待接收完成后上位机向主控单元发送接收完成信号SIGEV_DOWN。
主进程调用主控单元内嵌操作系统更新服务,替换当前运动控制模块中的待更新部分的目标代码文件,重新连接生成可调用的运动控制模块,向主进程发送SIGEV_NONE,重新初始化主控单元。
所述的系统更新服务,是基于共享内存的技术实现的用于对运动控制功能块在线更新的服务,该服务将注册在主控单元内嵌系统的服务挂载目录内,随设备上电初始化启动。所述的更新服务具体执行过程,包括如下步骤:
步骤S1:解析上位机发来的运动控制功能块描述信息,获取目标代码和运动控制功能块名称。
步骤S2:通过所述的运动控制功能块名称,在主控单元内存区内检索运动控制功能块存放的起始地址及偏移量。
步骤S3:根据所述的起始地址和所述的偏移量,调用主控单元内内存访问接口,将运动控制模块目标代码文件从当前内存起始地址开始按位写入,写入长度为所述的偏移量。
步骤S4:通过运动控制目标代码原有连接方法,实现运动控制功能块的更新。
步骤S5:当运动控制功能块连接完成后,重新编译为库文件,并向主进程发送更新完成信号。
当运动控制器EtherCAT通信线程触发时,则运动控制器将通过EtherCAT总线和伺服驱动器进行通信。将状态信息和控制指令按照CIA 402应用层协议进行封装,实现运动控制的接口格式的一致性,且保证运动控制器的通用性。所述的CIA 402应用层协议是CANopen针对运动控制领域规定的通信标准,在EtherCAT通信过程中按照CIA402协议定义数据字典,如表1所示,运动指令定义包括控制字数据对象、运行模式定义和运行指令定义等;如表2所示,运动反馈定义包括状态字数据对象、运动模式数据定义以及运动状态定义。
表1
索引号 | 类型 | 定义 |
0x607A:00 | 4字节 | 位置指令值 |
0x60FF:00 | 4字节 | 速度指令值 |
0x6071:00 | 2字节 | 扭矩指令值 |
0x6060:00 | 1字节 | 运行模式 |
0x6040:00 | 2字节 | 控制字 |
表2
索引号 | 类型 | 定义 |
0x6064:00 | 4字节 | 实际位置 |
0x6077:00 | 2字节 | 实际扭矩 |
0x606C:00 | 4字节 | 实际速度 |
0x60F4:00 | 4字节 | 跟随误差 |
0x6061:00 | 1字节 | 实际运行状态 |
0x6041:00 | 2字节 | 状态字 |
综上所述,本发明具有良好的交互性与通用性,使用支持运动控制模块在线升级的高速运动控制器,能够大幅度的缩短运动控制功能研发周期,降低控制器研制成本。同时通用的高速EtherCAT通信接口能够让本发明运动控制器适应于各种运动控制场景。
Claims (4)
1.一种支持运动控制模块在线升级的运动控制方法,其特征在于包括以下步骤:
主控单元执行运动控制主进程,并触发EtherCAT总线通信线程和监听线程;
通过EtherCAT总线通信线程,根据EtherCAT总线通信层协议检查网络结构、初始化伺服驱动器;
通过监听线程对信号量进行监听:当监听到中断信号,则主控单元重置;当监听到上位机发送的运动控制模块更新信号时,进行在线更新;
同时,通过运动控制主进程解析上位机发来的运动控制任务:根据运动控制任务确定伺服驱动器状态信息参数列表和运动控制指令;
根据EtherCAT总线应用层协议实时采集伺服驱动器状态信息,并解析运动控制模型生成控制命令实时传输给伺服驱动器;所述进行在线更新包括以下步骤:
当监听到上位机发送的运动控制模块更新信号时,停止当前运动控制任务,接收上位机发来的运动控制模块更新文件;向主进程发送接收完成信号;
主进程调用系统更新服务,将运动控制模块更新文件替换当前运动控制模块中的待更新部分的目标代码文件,重新连接生成可调用的运动控制模块;
当主进程接收到更新完成信号时,继续解析上位机发来的运动控制任务。
2.根据权利要求1所述的一种支持运动控制模块在线升级的运动控制方法,其特征在于所述伺服驱动器状态信息根据CIA 402应用层协议封装,包括状态字、实时速度信息、实时扭矩信息、实时末端位置信息、当前运动控制模式。
3.根据权利要求1所述的一种支持运动控制模块在线升级的运动控制方法,其特征在于所述运动控制指令根据CIA 402应用层协议封装,包括指令字、速度信息、扭矩信息、末端位置信息、运动控制模式。
4.根据权利要求1所述的一种支持运动控制模块在线升级的运动控制方法,其特征在于所述主进程调用系统更新服务,将运动控制模块更新文件替换当前运动控制模块中的待更新部分的目标代码文件,重新连接生成可调用的运动控制模块包括以下步骤:
系统更新服务首先检索运动控制功能模块名称,查找运动控制模块在内存中的起始地址及偏移量;然后根据起始地址及偏移量调用内存访问接口,将运动控制模块更新文件写入当前内存;最后通过运动控制模块原有连接方法,实现运动控制功能模块的更新,并向主进程发送更新完成信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510975063.3A CN106909128B (zh) | 2015-12-23 | 2015-12-23 | 一种支持运动控制模块在线升级的运动控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510975063.3A CN106909128B (zh) | 2015-12-23 | 2015-12-23 | 一种支持运动控制模块在线升级的运动控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106909128A CN106909128A (zh) | 2017-06-30 |
CN106909128B true CN106909128B (zh) | 2019-05-28 |
Family
ID=59200414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510975063.3A Active CN106909128B (zh) | 2015-12-23 | 2015-12-23 | 一种支持运动控制模块在线升级的运动控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106909128B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107948316B (zh) * | 2017-12-25 | 2020-11-03 | 北京搜狐新媒体信息技术有限公司 | 一种文件同步方法、装置及设备 |
CN111198698B (zh) * | 2018-11-16 | 2023-04-18 | 上海安浦鸣志自动化设备有限公司 | 基于EtherCAT的多设备固件程序并行下载方法及系统 |
CN110221854B (zh) * | 2019-05-30 | 2023-02-28 | 北京字节跳动网络技术有限公司 | 一种多进程数据更新方法、装置、介质和电子设备 |
CN111474908B (zh) * | 2020-04-23 | 2021-04-02 | 中国人民解放军国防科技大学 | 一种集成CANopen协议的运动控制从站的实现方法、系统及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1928821A (zh) * | 2006-09-26 | 2007-03-14 | 北京飞天诚信科技有限公司 | 一种电子设备的在线升级方法 |
CN101126920A (zh) * | 2007-09-30 | 2008-02-20 | 浙江中控技术有限公司 | 实现固化程序在线升级的方法和装置 |
CN102736564A (zh) * | 2011-04-02 | 2012-10-17 | 上海铼钠克数控科技有限公司 | 基于EtherCAT总线的运动控制器 |
CN202735763U (zh) * | 2012-08-01 | 2013-02-13 | Abb技术有限公司 | 用于机器人的机器人运动控制安全系统 |
CN102929171A (zh) * | 2012-08-16 | 2013-02-13 | 常州市翔云测控软件有限公司 | 网络型经编机控制系统及方法 |
CN103092633A (zh) * | 2011-10-31 | 2013-05-08 | 北京精密机电控制设备研究所 | 一种基于1553b总线的伺服控制软件在线烧录方法 |
CN104589367A (zh) * | 2014-11-26 | 2015-05-06 | 中国科学院沈阳自动化研究所 | 基于EtherCAT的模块化机器人驱动器和控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7740516B2 (en) * | 2005-02-24 | 2010-06-22 | Castle Creations, Inc | Electronic speed control programming |
-
2015
- 2015-12-23 CN CN201510975063.3A patent/CN106909128B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1928821A (zh) * | 2006-09-26 | 2007-03-14 | 北京飞天诚信科技有限公司 | 一种电子设备的在线升级方法 |
CN101126920A (zh) * | 2007-09-30 | 2008-02-20 | 浙江中控技术有限公司 | 实现固化程序在线升级的方法和装置 |
CN102736564A (zh) * | 2011-04-02 | 2012-10-17 | 上海铼钠克数控科技有限公司 | 基于EtherCAT总线的运动控制器 |
CN103092633A (zh) * | 2011-10-31 | 2013-05-08 | 北京精密机电控制设备研究所 | 一种基于1553b总线的伺服控制软件在线烧录方法 |
CN202735763U (zh) * | 2012-08-01 | 2013-02-13 | Abb技术有限公司 | 用于机器人的机器人运动控制安全系统 |
CN102929171A (zh) * | 2012-08-16 | 2013-02-13 | 常州市翔云测控软件有限公司 | 网络型经编机控制系统及方法 |
CN104589367A (zh) * | 2014-11-26 | 2015-05-06 | 中国科学院沈阳自动化研究所 | 基于EtherCAT的模块化机器人驱动器和控制方法 |
Non-Patent Citations (1)
Title |
---|
基于PXI总线的嵌入式伺服控制系统的研究;蔡立华;《数字技术与应用》;20110930(第09期);第42-43页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106909128A (zh) | 2017-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106909128B (zh) | 一种支持运动控制模块在线升级的运动控制方法 | |
CN109831354B (zh) | 基于opc ua工业通讯协议的虚拟调试系统 | |
US8904074B2 (en) | Method and apparatus for distributing configuration files in a distributed control system | |
CN106647571B (zh) | 一种支持认知的运动控制系统及方法 | |
EP2790101A1 (en) | System and method for automated virtual commissioning of an industrial automation system | |
CN106959672B (zh) | 一种基于api的工业运动控制系统及方法 | |
CN109639187B (zh) | 驱控一体伺服实现方法和系统 | |
CN105373407A (zh) | 嵌入式系统dsp和fpga在线升级方法 | |
CN109983411B (zh) | 程序模块的流程控制 | |
CN106062648A (zh) | 控制器 | |
US20120310373A1 (en) | Systems and methods for alert capture and transmission | |
JP7000686B2 (ja) | 制御装置 | |
CA2913888A1 (en) | Systems and methods for memory map utilization | |
CN104486185A (zh) | 一种核电厂控制系统通讯方法及系统 | |
CN103678002A (zh) | 资源复用的控制方法和装置 | |
CN105179156A (zh) | 抽水蓄能机组控制程序离线测试系统及方法 | |
CN110308697A (zh) | 基于Codesys的运动控制系统及控制方法 | |
CN202183779U (zh) | 串行总线以太网接入装置 | |
CN101159605B (zh) | 一种可实现状态记忆和恢复的流程控制方法 | |
CN106125676A (zh) | 一种机器人控制系统 | |
CN103197664A (zh) | 基于corba的嵌入式控制器参数标定系统及方法 | |
CN105577310A (zh) | 一种时间触发网络中任务分区与通信调度的同步方法 | |
CN104951346A (zh) | 一种用于嵌入式系统的进程管理方法及系统 | |
CN103941631B (zh) | 一种可编程序控制器运行中程序无扰动重构的方法 | |
CN104319819A (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 |