驱动器集成多种工业总线的实现方法

文档序号:9551168阅读:429来源:国知局
驱动器集成多种工业总线的实现方法
【技术领域】
[0001]本发明涉及运动控制技术,尤其涉及驱动器集成多种工业总线的实现方法。
【背景技术】
[0002]网络化是工业发展的重要方向之一,无论是工业4.0还是国家发展战略中的工业机器人,都对网络化产品提出了更高的要求,促使传统的现场总线向工业以太网的方向发展,而实时以太网又是工业以太网中实时性最好的工业网络。在运动控制领域中,Powerlink和EtherCAT市场占有率较高,而在传统的总线协议中,CANOpen因其开放性、多领域标准化,而被广泛应用于工业运动控制领域。因此对集成Ethernet Power 1 ink(以下简称Powerlink)、EtherCAT、CANOpen的驱动产品(如伺服、变频器)需求愈加旺盛。
[0003]当前,还没有面向驱动的、同时支持Powerlink、EtherCAT、CANOpen总线的统一接口与架构。传统的集成方法,要么是对硬件和协议的简单集成(如PORTING、IXXAT公司的总线产品),没有统一对上层应用提供接口 ;要么面向通信提供了接口(如Softing公司、赫优讯),但由于其面向通信且各总线差异较大,配置和使用过程依然较繁琐。
[0004]图1示出了采用现有的一种集成Powerlink、EtherCAT、CANOpen总线的方法的驱动器的通信模型架构示意图,图中的API代表函数接口。在该解决方案中,每种工业总线协议都要有自己的对象字典与对象、需要进行协议转换,并且需要各自的协议栈运行接口。可见其交换过程复杂,而且这些协议并不关注驱动的同步,没有为驱动专门提供同步接口。

【发明内容】

[0005]本发明所要解决的技术问题在于提供一种驱动器集成多种工业总线的实现方法,其可在驱动器上同时集成Powerlink总线、EtherCAT总线和CANOpen总线的功能,并具有较高的传输速率,支持驱动的同步。
[0006]为解决上述技术问题,本发明所采取的技术方案是:
[0007]驱动器集成多种工业总线的实现方法,所述的多种工业总线包括Powerlink总线、EtherCAT总线和CANOpen总线,其特点在于,将所述驱动器的通信模型分为物理层、协议层、接口层和驱动应用层;
[0008]所述物理层位于整个通信模型的最底层,该物理层包括网络硬件接口和CAN硬件接口 ;所述协议层位于所述物理层与所述接口层之间,该协议层包括Powerlink协议栈、EtherCAT协议栈和CANOpen的Cia 301协议栈;所述接口层包括函数接口、对象集合和对象字典;所述驱动应用层位于接口层的上方,用于实现Cia402协议的功能;
[0009]所述的网络硬件接口用于将来自Powerlink总线和EtherCAT总线的数据分别转发给Powerlink协议桟和EtherCAT协议桟,以及将来自Powerlink协议桟和EtherCAT协议桟的数据分别发送给Powerlink总线和EtherCAT总线;所述CAN硬件接口用于将来自CANOpen总线的数据转发给CANOpen的Cia 301协议栈,以及将来自CANOpen的Cia 301协议桟的数据发送给CANOpen总线;
[0010]Powerlink协议桟和EtherCAT协议桟用于将来自所述对象集合的数据分别按照Powerlink总线协议和EtherCAT总线协议进行封装处理后发送给所述网络硬件接口,并将网络硬件接口转发的来自Powerlink总线和EtherCAT总线的数据分别按照Powerlink总线协议和EtherCAT总线协议解包后发送给所述对象集合;所述CANOpen的Cia 301协议栈用于将来自所述对象集合的数据按照CANOpen总线协议进行封装处理后发送给所述CAN硬件接口,并将CAN硬件接口转发的数据按照CANOpen总线协议解包后发送给所述对象集合;
[0011]所述函数接口用于实现对通信类型的设置、对通信参数的配置、对对象字典的访问与管理、对协议栈的状态进行管理以及对同步中断和异步中断进行处理;所述对象字典包括符合Powerlink协议、EtherCAT协议、以及CANOpen协议中的Cia301协议和Cia402协议的对象。
[0012]采用上述技术方案后,本发明至少具有以下优点:
[0013]1、针对Powerlink总线、EtherCAT总线和CANOpen总线采用了统一的对象字典与对象、提供了统一的函数接口,使得驱动器可以同时支持多种工业总线,扩展了应用领域,并可加快开发流程,降低开发成本;同时精简的接口也使得使传输效率更高;
[0014]2、面向驱动器的驱动应用层提供了用于进行同步中断处理和异步中断处理的函数接口,支持多个驱动的同步;
[0015]3、统一了 Powerlink总线和EtherCAT总线的网络硬件接口,从而降低了硬件接口成本。
【附图说明】
[0016]图1示出了采用现有的一种集成Powerlink、EtherCAT、CANOpen总线的方法的驱动器的通信模型架构示意图。
[0017]图2示出了采用根据本发明一实施例的集成Powerlink、EtherCAT、CANOpen总线的方法的驱动器的通信模型架构示意图。
[0018]图3示出了根据本发明一实施例的函数接口进行初始化的流程示意图。
[0019]图4示出了收到同步中断数据包和异步中断数据包后的处理流程示意图。
【具体实施方式】
[0020]下面结合附图和具体实施例对本发明进行详细说明。
[0021]请参阅图2。根据本发明一实施例的驱动器集成多种工业总线的实现方法,将驱动器的通信模型分为了物理层、协议层、接口层和驱动应用层。所述的多种工业总线包括Powerlink 总线、EtherCAT 总线和 CANOpen 总线。
[0022]物理层位于整个通信模型的最底层,该物理层包括网络硬件接口和CAN硬件接口 ;协议层位于物理层与接口层之间,该协议层包括Powerlink协议桟、EtherCAT协议桟和CANOpen的Cia 301协议栈;接口层包括函数接口、对象集合和对象字典;驱动应用层位于接口层的上方,用于实现Cia402协议的功能。
[0023]网络硬件接口用于将来自Powerlink总线和EtherCAT总线的数据分别转发给Powerlink协议桟和EtherCAT协议桟,以及将来自Powerlink协议桟和EtherCAT协议桟的数据分别发送给Powerlink总线和EtherCAT总线。CAN硬件接口用于将来自CANOpen总线的数据转发给CANOpen的Cia 301协议栈,以及将来自CANOpen的Cia 301协议栈的数据发送给CANOpen总线。
[0024]Powerlink协议桟和EtherCAT协议桟用于将来自对象集合的数据分别按照Powerlink总线协议和EtherCAT总线协议进行封装处理后发送给网络硬件接口,并将网络硬件接口转发的来自Powerlink总线和EtherCAT总线的数据分别按照Powerlink总线协议和EtherCAT总线协议解包后发送给对象集合;所述CANOpen的Cia 301协议栈用于将来自对象集合的数据按照CANOpen总线协议进行封装处理后发送给CAN硬件接口,并将CAN硬件接口转发的数据按照CANOpen总线协议解包后发送给对象集合。
[0025]函数接口用于实现对通信类型的设置、对通信参数的配置、对对象字典的访问与管理、对协议栈的状态进行管理以及对同步中断和异步中断进行处理;对象字典包括符合Powerlink协议、EtherCAT协议和CANOpen协议中的Cia301协议和Cia402协议的对象。对象集合的属性由对象字典定义,如索引、长度、读写属性等。对象集合是对象字典子集的实例,由主站进行配置,配置内容为当前应用中所需要的对象。
[0026]在本实施例中,函数接口对同步中断的处理包括:在Powerlink协议桟、EtherCAT协议栈和CANOpen的Cia 301协议栈收到同步中断信号时通知驱动应用层生效存储在驱动应用层缓存区中的周期性控制数据,并将驱动应用层缓存区中的周期性反馈数据放至协议桟缓存区,作为下一个数据帧的周期数据上发至主站。Powerlink协议桟、EtherCAT协议桟和CANOpen的Cia 301协议桟在上发下一个数据帧时(EtherCAT的上发数据帧与下发数据帧可为同一帧)从协议栈缓存区中读出该周期性反馈数据,并进行封装处理后通过网络硬件接口或CAN硬件接口发送到总线上去。同步中断信号的产生对于Powerlink总线和CANOpen总线而言是由同步数据包(Powerlink中的S0C报文、CANOpen中的Sync报文)产生,对于EtherCAT总线而言是由同步时钟产生。函数接口对同步中断的处理还包括在Powerlink协议桟、EtherCAT协议桟和CANOpen Cia 301协议桟收到同步中断信号时对通知所述驱动应用层生效周期性控制数据的时间进行补偿。由于驱动器中的PWM中断优先级大于总线中断,因此函数接口计算了协议栈收到同步中断信号的时刻与驱动器进入总线同步中断服务程序的时刻之间的差值,并将该时刻补偿至PWM中断周期进而驱动电机,从而提高多个驱动器之间PWM级别的同步。
[0027]在本实施例中,函数接口对异步中断的处理包括:在Powerlink协议桟、EtherCAT协议栈和CANOpen的Cia 301协议栈收到数据帧时将对象集合收到的周期性控制数据及非周期控制数据输出到驱动应用层的缓存区,并在非周期控制数据交换成功后对驱动应用层提供回调接口,以告知驱动应用层异步数据就绪。
[0028]在本实施例中,函数接口对协议栈的状态进行管理包括对Powerlink协议栈、EtherCAT协议栈及CANOpen的Cia 301协议栈的网络状态机和SD0状态机进行管理、以及对各协议栈进行出错处理。网络状态机将三种总线协议的网络状态统一为初始化状态、预运行状态和运行状态,在初始化状态时可初始化协议栈,在预运行状态可为非周期通信进行配置,在运行状态时则可进行驱动应用层运行。SD0状态机和出错处理还是保留原来各协议栈自己的处理方法。其中的初始化状态是函数接口自己管理,预运行状态和运行状态是根据主站发送的数据帧中的指令来进行切换的。
[0029]由于Powerlink总线、EtherCAT总线都部分地含有CANOpen的Cia301协议,比如Powerlink的协议核心就是CANOpen 301,而EtherCAT也提供了 CANOpen OnEthe
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1