应用于电机驱动器的CANopen通讯方法、装置及电机驱动器制造方法及图纸

技术编号:36162773 阅读:9 留言:0更新日期:2022-12-31 20:11
本发明专利技术涉及一种应用于电机驱动器的CANopen通讯方法、装置及电机驱动器,所述方法包括以下步骤:接收外部应用通过CANopen通讯协议发送的原始SDO请求,该原始SDO请求为基于批量SDO控制机制生成的批量SDO请求;对所述原始SDO请求进行预处理后,缓存入SDO请求队列中;逐次提取所述SDO请求队列中的SDO请求,并进行相应处理,生成控制指令和应答消息,直至SDO请求队列为空。与现有技术相比,本发明专利技术具有提高效率、避免SDO请求丢失等优点。避免SDO请求丢失等优点。避免SDO请求丢失等优点。

【技术实现步骤摘要】
应用于电机驱动器的CANopen通讯方法、装置及电机驱动器


[0001]本专利技术涉及一种电机驱动器,尤其是涉及一种应用于电机驱动器的CANopen通讯方法、装置及电机驱动器。

技术介绍

[0002]随着物流等行业的快速发展,市场对AGV小车设备等的需求量持续走高。CANopen协议,有赖于其较为快速的通信速率以及较为灵活的协议扩展,在物流等相关领域越来越受青睐。在通信层面上,采用CANopen SDO邮箱通信的应用场合较多。
[0003]CANopen SDO是一种基于客户机

服务器模型的通信协议,通过请求

应答的机制实现。由于服务器(一般指带CANopen接口的电机驱动器,下同)需要在完成前一次客户机(一般指上位控制器,下同)请求的相应应答之后,才能处理下一次客户机请求,所以这种通信方式需要满足一定的时序关系。在有些应用场合,比如AGV小车设备,为了降低对上位控制器的要求或成本,在实际应用中形成了特殊的控制需求,即客户机有可能连续发送多条SDO请求消息,如果服务器处理能力有限,就容易造成请求丢失,不能完成应答。客户机请求丢失后,容易造成系统紊乱,降低整个控制系统的健壮性。需要对CANopen驱动器通信协议做一定的优化,才能解决客户的应用需求。
[0004]现有传统的CANopen电机驱动器主要存在如下应用缺陷:
[0005]1)不能满足高速、批量SDO请求的应用需求,容易造成请求或响应丢失;
[0006]2)如果采用传统的应答系统,则要求上位机满足必要的时序关系,增加了成本。

技术实现思路

[0007]本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种提高效率、避免SDO请求丢失的应用于电机驱动器的CANopen通讯方法、装置及电机驱动器。
[0008]本专利技术的目的可以通过以下技术方案来实现:
[0009]一方面,本专利技术提供一种应用于电机驱动器的CANopen通讯方法,包括以下步骤:
[0010]接收外部应用通过CANopen通讯协议发送的原始SDO请求,该原始SDO请求为基于批量SDO控制机制生成的批量SDO请求;
[0011]对所述原始SDO请求进行预处理后,缓存入SDO请求队列中;
[0012]逐次提取所述SDO请求队列中的SDO请求,并进行相应处理,生成控制指令和应答消息,直至SDO请求队列为空。
[0013]进一步地,所述原始SDO请求由上位控制器产生,所述应答消息作用于所述上位控制器。
[0014]进一步地,所述预处理包括对所述批量SDO请求进行整理。
[0015]另一方面,本专利技术提供一种应用于电机驱动器的CANopen通讯装置,包括:
[0016]CAN外设接口模块,用于通过CANopen通讯协议发送的原始SDO请求,该原始SDO请求为基于批量SDO控制机制生成的批量SDO请求;
[0017]SDO接收中断服务模块,用于对所述原始SDO请求进行预处理后,缓存入SDO请求队列中;
[0018]SDO处理状态机模块,用于从所述SDO请求队列中逐次提取SDO请求,并进行相应处理,生成控制指令和应答消息。
[0019]进一步地,所述原始SDO请求由上位控制器产生,所述应答消息通过CAN外设接口模块作用于所述上位控制器。
[0020]进一步地,所述SDO请求队列存储于CANopen协议栈内部的一RAM空间中。
[0021]进一步地,所述预处理包括对所述批量SDO请求进行整理。
[0022]进一步地,所述控制指令通过共享内存方式传递至被控制的伺服电机。
[0023]第三方面,本专利技术提供一种CANopen电机驱动器,包括如上所述的CANopen通讯装置。
[0024]进一步地,所述CANopen通讯装置位于Arm核内,所述电机驱动器还包括用于实现了电机控制的DSP核,所述Arm核和DSP核通过共享内存通道实现数据交互。
[0025]与现有技术相比,本专利技术具有以下有益效果:
[0026]1)本专利技术升级了CANopen SDO原有的实现机制,通过增加RAM接收缓存队列,将不能及时处理的请求消息先缓存起来,待SDO处理状态机处理完成上一条请求后再循序处理下一条请求消息,这样就从根本上避免了SDO请求丢失的问题。
[0027]2)本专利技术大大缩短了SDO接收中断的处理时间,提升了客户机

服务器模型的实时处理能力,优化了系统软件架构,提升了驱动软件的健壮性和稳定性。
[0028]3)本专利技术提供优化CANopen通信协议栈的电机驱动器,该电机驱动器能够处理批量SDO请求,避免SDO请求丢失或拥堵,极大地降低了上位控制器和驱动器的实现成本,极大的改善了批量SDO请求情况下SDO应答丢失的状况,有效的提升了客户CANopen应用系统的功能健壮性和系统稳定性,提升了系统响应效率。
附图说明
[0029]图1为CANopen客户机服务器通信模型示意图;
[0030]图2为本专利技术CANopen SDO批量请求示意图;
[0031]图3为本专利技术CANopen SDO通讯装置的结构示意图;
[0032]图4为本专利技术CANopen电机驱动器的结构示意图。
具体实施方式
[0033]下面结合附图和具体实施例对本专利技术进行详细说明。本实施例以本专利技术技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。
[0034]电机控制系统中一般包括上位控制器和驱动器,两者之间可以通过CANopen进行通讯。驱动器包含功率电路部分和控制电路部分,控制电路部分中的主控芯片(MCU)实现了电机控制和CANopen通讯。在传统应用中,上位控制器和驱动器之间根据特定的时序,由上位控制器发出SDO请求,驱动器响应,在响应完成后,处理下一个由上位控制器发出的请求。这种方式下,上位控制器必须等待接收驱动器的响应消息,以防止消息帧的丢失,从而降低
了通信的实时响应性能。本专利技术就是为了解决上述问题而提出,在本专利技术中,上位控制器简单地批量发出SDO请求到驱动器,驱动器通过新的CANopen通讯模块,对该批量SDO请求进行行处理,提高了效率,降低了成本。
[0035]如图1所示,SDO通信为客户机

服务器模型机制,客户应用控制器为SDO客户机设备,CANopen驱动为服务器设备。客户机发送SDO请求,服务器接收请求后,对之做出处理并应答。
[0036]如图2所示为CANopen SDO批量请求图示,本专利技术中,客户控制器将使用批量SDO控制机制来实现现场应用功能。这种控制应用,要求在短时间之内连续发送多条SDO请求消息,而传统的SDO处理机制都基本上是遵循请求

应答的严格时序要求,即上位机接收到上条应答之后,才发送下一条请求消息,无法处理。本专利技术在驱动器内部开辟专门的RAM本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于电机驱动器的CANopen通讯方法,其特征在于,包括以下步骤:接收外部应用通过CANopen通讯协议发送的原始SDO请求,该原始SDO请求为基于批量SDO控制机制生成的批量SDO请求;对所述原始SDO请求进行预处理后,缓存入SDO请求队列中;逐次提取所述SDO请求队列中的SDO请求,并进行相应处理,生成控制指令和应答消息,直至SDO请求队列为空。2.根据权利要求1所述的应用于电机驱动器的CANopen通讯方法,其特征在于,所述原始SDO请求由上位控制器产生,所述应答消息作用于所述上位控制器。3.根据权利要求1所述的应用于电机驱动器的CANopen通讯方法,其特征在于,所述预处理包括对所述批量SDO请求进行整理。4.一种应用于电机驱动器的CANopen通讯装置,其特征在于,包括:CAN外设接口模块,用于通过CANopen通讯协议发送的原始SDO请求,该原始SDO请求为基于批量SDO控制机制生成的批量SDO请求;SDO接收中断服务模块,用于对所述原始SDO请求进行预处理后,缓存入SDO请求队列中;SDO处理状态机模块,用于从所述SDO请求队列中逐次...

【专利技术属性】
技术研发人员:俞士磊雷友兵
申请(专利权)人:上海安浦鸣志自动化设备有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1