CANopen的多种数据传输方式为各种应用提供优异的解决方案,普遍应用于数据采集与传输、电机控制、汽车电子、电池充电控制以及纺织等行业。
1. CANopen从站/主站特点
具有网络管理(Network Management:简称NMT)主机功能的设备通常被称为CANopen主站设备,通常也具有服务数据(Service Date Object:简称SDO)客户端功能。反之具有网络管理(NMT)从机功能的设备通常被称为CANopen从站设备,且其必须具备有服务数据服务器功能。这样CANopen主站设备就可以控制从站以及读写CANopen从站设备的对象字典。
(1)CANopen从站特性CANopen从站在CANopen网络中拥有唯一的节点地址,并且能独立完成特定的功能,例如数据采集、电机控制等等。对实时性要求高的数据,通常通过实时数据过程(Process Data Object:简称PDO)进行传输,因此CANopen从站应当支持一定数量的PDO传输功能。根据CANopen协议DS301 V4.02的定义,每个从站都预定义了4个TPDO(Transmit Process Data Object:简称TPDO)和4个RPDO(Receive Process Data Object),另外从站也应具有节点/寿命保护或心跳报文以及生产紧急报文等功能。每个CANopen从站都应有一个对象字典,描述了从站所具有的应用参数和通信参数。
(2) CANopen主站特性CANopen主站在网络所起的作用有别于CANopen从站,通常CANopen主站在网络中负责网络管理、从站参数配置以及从站数据的处理,其并不一定具有特定的功能,但也有自己的对象字典和唯一的节点地址。
2. CANopen网络组建
由于CANopen是基于CAN总线的一种应用层协议,因此其网络组建与CAN总线一致,典型的总线型结构,从站和主站都挂接在该总线上即可,在一个CANopen网络中只能有一个主站设备和若干个从站设备同时工作。CANopen网络布线时选用带屏蔽双绞线,提高总线抗干扰能力。表1所示为CAN通信波特率与总线长度的关系。注意网络中的各节点的支线长度不易过长,波特率大于100Kbps的情况下,支线总长度不应大于30m,单个节点的支线也不应大于60cm.
表1总线长度与波特率关系
(1)基本的CANopen网络结构
图1 CANopen基本网络结构
图1所示为CANopen网络的基本结构,在该网络中有一个CANopen主站,负责管理网络中的所有从站,每个设备都有一个独立的节点地址(NodeID)。从站与从站之间也能建立通信,通常需要事先对各个从站进行配置,使各个从站之间能够建立起独立的PDO通信。
(2)复杂的CANopen网络结构
图2带网关设备的CANopen网络
图3所示为带有网关设备的CANopen网络,与基本的CANopen网络相比,该网络中增加了一个CANopen网关设备,该网关设备可以是CANopen转DeviceNet、Profibus、Modbus或其它的设备。在CANopen网络中,我们也可把该网关设备作为一个从站设备或者是CANopen主站设备。
3. CANopen网络中从站的配置CANopen从站设备在出厂时都设定有默认参数,并且这些参数都与节点地址绑定,例如实时数据传输PDO,其预定义连接集定义了其默认的参数有4个TPDO和4个RPDO,其COB-ID(Communication Object -ID)如表2所示。在一些应用简单的场合只需要采用默认设置即可进行正常通信,但对于一些应用比较复杂的场合,则需要对从站进行相应的配置,最常见的配置参数有PDO的COB-ID、PDO映射参数、以及节点/寿命保护等参数。
表2 PDO预定义链接
CANopen网络中,对从站的参数配置或获取都是通过SDO进行传输,因此从站和主站都必须支持SDO传输才能进行正常的配置。为了快速配置从站设备,在配置从站之前通过NMT使整个网络设备进入到预操作状态。
(1)通信参数配置CANopen设备的通信参数包括PDO的COB-ID、传输类型、禁止时间以及映射参数等。其参数配置顺序如图3所示。
图3通信参数配置顺序
在配置PDO的通信参数时,首先禁止PDO通信,根据DS301 V4.02的定义,当COB-ID的最高位(第31位)为1时即可禁止该PDO通信,禁止PDO通信操作示例如图4所示。需要注意的是只有在PDO禁止的情况下,相应的传输类型、映射参数以及COB-ID的值才能被改变,否则试图以任何方式去更改都会出现错误。
(2)其它参数的配置除了通信相关的参数之外,CANopen设备还有一些与安全相关的参数,例如节点/寿命保护或者心跳报文。根据DS301 V4.02的定义,同一个CANopen从站中只可能使用节点/寿命保护或心跳报文的一种。节点/寿命保护可以实现双向保护,即主站可监控从站的状态,而从站也可监控主站是否在线。心跳报文只是一种单向的保护机制,心跳报文的消费者可以监控到心跳报文生产者的状态。在网络总线负载较大的情况下,建议使用心跳报文的保护机制来减轻总线负载。
图4禁止PDO通信方法
(3)配置从站与从之间的通信CANopen网络中从站与从站可以直接进行PDO通信而不需要主站的参与,这样就提高了实时数据的实时性。将接收从站RPDO的COB-ID更改为发送从站TPDO的COB-ID,这样就建立了两个从站之间了PDO通信,在通信过程中也不需要主站的任何干预。表3所示。
表3从站与从站通信COB-ID配置
4.结语
根据不同应用环境可选用不同的线缆来组建CANopen网络,在CANopen网络的布置方面,需要了解线缆的阻抗、容抗、信号延时等来匹配总线的终端电阻,减少由于信号衰减或反射而导致总线工作异常。从而组建一个抗干扰能力强、稳定可靠的CANopen网络。