CANopen现场总线通讯协议的分析_第1页
CANopen现场总线通讯协议的分析_第2页
CANopen现场总线通讯协议的分析_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CANopen现场总线通讯协议的分析摘要:CANopen使用基于对象的方法来定义标准设备,每个设备都表现为一组对象的集合,能够被网络所访问。对象字典是通讯程序和上层应用程序之间的接口。CANopen的核心概念是设备对象字典(ObjectDictionary,OD),它是一个有序的对象组,每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引。CANopen网络中每个节点都有一个对象字典。对象字典包含了描述这个设备和它的网络行为的所有参数。一个节点的对象字典是在电子数据文件(ElectronicDataSheet,EDS)中描述。

关键词:CANopen;对象词典;索引;子索引

前言:CAN(ControllerAreaNetwork)现场总线仅仅定义了物理层、数据链路层(见ISO11898标准),没有规定应用层;实际设计中,物理层、数据链路层完全由硬件实现。所以CAN现场总线本身并不完整,需要一个高层协议来定义CAN信息中的11/29位标识符、8字节数据的使用。CANopen协议是一种基于CAN的高层协议,它是由CiA(CAN-in-Automation)定义并维护的协议之一,它是在CAL(CANApplicationLayer)协议基础上开发的,使用了CAL通信和服务协议子集。

1CANopen通讯对象

1.1PDO(ProcessDataObject:过程数据对象)

PDO提供设备应用对象的直接访问通道,用来传输实时数据,具有较高的优先权。PDOCAN信息数据列中每个字节都用作数据传输,信息利用率高。

PDO通过“生产者/消费者”模式来描述,数据从一个生产者传到一个或者多个消费者,数据传送限制在1~8个字节。生产者传输数据后,不需要消费者确认,网络上的每个节点都会检测发送节点发出的数据信息,然后节点会决定接收到的信息是否需要处理。

每个PDO有两种PDO服务:TxPDO和RxPDO。生产者发出的PDO称为该设备的发送PDO(TxPDO),消费者设备接收的PDO称为该设备的接收PDO(RxPDO)。

每个PDO在对象字典中用2个对象描述:PDO通讯参数和PDO映像参数

PDO通讯参数:包含哪个COB-ID将被PDO使用,传输类型,禁止时间和定时器周期。

PDO映射参数:包含一个对象字典中对象的列表,这些对象映像到PDO里,包括它们的数据长度(inbits)。生产者和消费者必须知道这个映像,以说明PDO内容。

RxPDO和TxPDO信息格式如下:

1.2SDO(ServiceDataObject:服务数据对象)

SDO是用来建立两个CANopen设备之间的客户/服务器关系的,客户设备可以对服务器设备的对象字典进行读/写访问操作。SDO的访问模式为“客户端/服务器”模式,被访问的节点为SDO服务器。每个CANopen设备至少有一个服务数据对象,用来提供该设备对象字典的访问通道。SDO可以对对象字典内的所有对象进行读/写访问操作。

SDO信息中包含索引和子索引信息,如此方便对象在对象字典中定位,而且对象字典中的复合数据结构易于通过SDO访问。SDO的触发方式为功能响应型,即SDO客户发出读/写请求后,SDO服务器须给予回应;客户端和服务器均可以主动终止SDO的传输;请求信息和响应消息通过不同的COB-ID进行区分。

SDO可以传送任意长度的数据。如果传送的数据超过4个字节,则必须实行分段传送。最后一段数据报含一个结束标志。

SDO请求信息和响应消息的结构如下:

请求信息格式:

1.3NMT(NetworkManagementObject:网络管理对象)

CANopen的网络管理遵循“主/从”模式。一个CANopen网络里只能存在一个NMT主站,其它节点均被当成从站。NMT可实现3种服务:Modulecontrolservices(节点状态控制服务)、ErrorControlservices(错误控制服务)和Boot-upservices(启动引导服务)。

1.3.1节点状态控制是指CANopen网络中主站节点通过发送命令控制从站的状态,从站收到主站的命令后执行,不需要回复。所有的CANopen节点都有一个内部的NMT状态,从站节点共有4种状态:初始化状态、预行状态、运行状态、停止状态。

节点状态控制信息格式如下表所示:

1.3.2ErrorControlservices(错误控制服务)

错误控制服务用于检测CANopen网络中是否有节点断线。错误控制服务分为两种:heartbeat和nodeguarding,台达AS系列PLC只支持heartbeat。如从站启动heartbeat服务后,主站才可以检测从站是否断线。Heartbeat生产者按照设定的Heartbeat产生时间定时发送Heartbeat信息,一个或者多个Heartbeat消费者检测Heartbeat生产者发送的信息,当消费者在设定的超时时间内没有收到生产者发送的信息时,产生Heartbeat事件表明CANopen通讯异常。

1.3.3Boot-upservices(启动引导服务)

从站在初始化完成进入预运行状态后,会发送一笔Boot-up信息,表示初始化完成。

1.4其它预定义CANopen通讯对象

1.4.1同步对象(SyncObject)

同步对象由网络中主站节点以广播的形式周期发送到CAN网络的信息。这个对象用来实现基本的网络时钟信号,每个设备可以根据自己的配置,决定是否使用该事件和其它网络设备进行同步通讯。如在控制驱动装置时,各个装置收到主站发送的动作命令后并不立即动作,而是等收到同步信息后一起动作,如此可以实现多个装置同步动作。

SYNC信息格式如下图所示:

1.4.2紧急事件对象(EmergencyObject)

紧急事件对象是由CANopen设备用来标识内部紧急错误的,当设备出现紧急错误时,设备发出紧急事件信息(信息中包含紧急错误码),设备进入错误状态。当错误消除后,设备发出紧急事件信息报告错误消除,紧急错误代码为0,设备进入正常状态。

Emergency信息格式如下图所示:

备注:错误寄存器内的值映像到对象字典(ObjectDictionary)中的索引地址为1001(hex)。若该值等于0,则表示无错误发生;若该值等于1,则表示发生了一般性错误;若该值等于H’80,则表示发生了设备内部错误。

2预定义连接设定

为了减少简单网络的组态工作量,CANopen定义了一个强制性的默认标识符分配图表。预定义连接设定包含广播对象和对等对象,11位的标识符结构如下:

结语:

CANopen标准最初设计用于面向运动的机器控制系统,现在广泛应用于自动化领域。例如,它是一个流行的协议,可以在机器人系统中、工厂传送带旁及整个工业机械中使用。随着自动化程度越来越高的智能工厂的发展趋势,CANopen协议将在未来发挥更大的作用。

参考文献:

[1]任玮蒙,陶维青.基于CAN总线的高层协议CANopen[J].自动化技术与应用,2007,26(4):128-130

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论