本发明涉及一种支持运动控制模块在线升级的运动控制方法。本发明适用于各种运动控制应用场景,尤其适用于对实时数据通信有要求的控制领域。
背景技术:
:随着运动控制领域的飞速发展,实时通信需求的不断提升,工业控制器方向由传统的以秒为单位的同步控制演变到微秒级控制。EtherCAT总线技术就是为了适应于更高速的通信速度而提出。目前工业领域主流的总线技术包括Powerlink、CAN总线等,配合不同的厂商多领域的涉及,已经将实时通信技术延展到了更多的领域。针对运动控制领域,各大厂家都提出了基于快速总线通信的解决方案。运动控制产品主要以运动控制卡和运动模型库为主。但现有运动控制器多固化了运动控制模块,多数产品无法支持在线升级,每次更新都需要重新编译固化,因此大大的限制了运动控制器的灵活性。同时现有运动控制器与驱动器之间通信协议种类繁多,因此需要一套标准的通信协议定义出一套通用性的应用层协议格式。综上所述,运动控制器在实现运动控制功能的基础上,还应该支持运动控制模块的在线升级,实现对实际运动控制效果的在线调整。另一方面针对通信协议各异、标准不统一的问题,设计基于CANopen应用层协议的运动控制器,将运动控制参数统一映射到构建的统一地址模型中,并通过通信层EtherCAT接口进行实时控制。技术实现要素:针对现有技术中存在的上述不足之处,本发明要解决的技术问题是克服现有控制器存在的不足,提供一种基于EtherCAT技术的运动控制方法,不仅能够将伺服驱动器所需数据进行实时采集和传输,还能将数据定义出CANopen应用层模型进行统一管理。同时本发明还提出了一套支持运动功能块在线升级的解 决方案。本发明为实现上述目的所采用的技术方案是:一种支持运动控制模块在线升级的运动控制方法,包括以下步骤:主控单元执行运动控制主进程,并触发EtherCAT总线通信线程和监听线程;通过EtherCAT总线通信线程,根据EtherCAT总线通信层协议检查网络结构、初始化伺服驱动器;通过监听线程对信号量进行监听:当监听到中断信号,则主控单元重置;当监听到上位机发送的运动控制模块更新信号时,进行在线更新;同时,通过运动控制主进程解析上位机发来的运动控制任务:根据运动控制任务确定伺服驱动器状态信息参数列表和运动控制指令;根据EtherCAT总线应用层协议实时采集伺服驱动器状态信息,并解析运动控制模型生成控制命令实时传输给伺服驱动器。所述伺服驱动器状态信息根据CIA402应用层协议封装,包括状态字、实时速度信息、实时扭矩信息、实时末端位置信息、当前运动控制模式。所述运动控制指令根据CIA402应用层协议封装,包括指令字、速度信息、扭矩信息、末端位置信息、运动控制模式。所述进行在线更新包括以下步骤:当监听到上位机发送的运动控制模块更新信号时,停止当前运动控制任务,接收上位机发来的运动控制模块更新文件;向主进程发送接收完成信号;主进程调用系统更新服务,将运动控制模块更新文件替换当前运动控制模块中的待更新部分的目标代码文件,重新连接生成可调用的运动控制模块;当主进程接收到更新完成信号时,继续解析上位机发来的运动控制任务。所述主进程调用系统更新服务,将运动控制模块更新文件替换当前运动控制模块中的待更新部分的目标代码文件,重新连接生成可调用的运动控制模块包括以下步骤:系统更新服务首先检索运动控制功能模块名称,查找运动控制模块在内存中的起始地址及偏移量;然后根据起始地址及偏移量调用内存访问接口,将运动控制模块更新文件写入当前内存;最后通过运动控制模块原有连接方法,实现运动控制功能模块的更新,并向主进程发送更新完成信号。本发明具有以下优点及有益效果: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总线和伺服驱动器进行通信。将状态信息和控制指令按照CIA402应用层协议进行封装,实现运动控制的接口格式的一致性,且保证运动控制器的通用性。所述的CIA402应用层协议是CANopen针对运动控制领域规定的通信标准,在EtherCAT通信过程中按照CIA402协议定义数据字典,如表1所示,运动指令定义包括控制字数据对象、运行模式定义和运行指令定义等;如表2所示,运动反馈定义包括状态字数据对象、运动模式数据定义以及运动状态定义。表1索引号类型定义0x607A:004字节位置指令值0x60FF:004字节速度指令值0x6071:002字节扭矩指令值0x6060:001字节运行模式0x6040:002字节控制字表2索引号类型定义0x6064:004字节实际位置0x6077:002字节实际扭矩0x606C:004字节实际速度0x60F4:004字节跟随误差0x6061:001字节实际运行状态0x6041:002字节状态字综上所述,本发明具有良好的交互性与通用性,使用支持运动控制模块在线升级的高速运动控制器,能够大幅度的缩短运动控制功能研发周期,降低控制器研制成本。同时通用的高速EtherCAT通信接口能够让本发明运动控制器适应于各种运动控制场景。当前第1页1 2 3