大家好,欢迎来到IT知识分享网。
参考文献
《Kinco FD&CD3系列伺服驱动器使用手册》
《CANopen协议讲解课件》
《信捷 CANopen 通讯用户手册》
《基于CANopen协议的网络主控制器的设计》
《CANopen 轻松入门》致远电子
前置文章
CAN总线技术基本概念简述
0 CANopen简述
CAN协议基本概念简述
CAN现场总线本身仅仅实现了物理层和数据链路层,CANopen是CAN现场总线的应用层协议。
CANopen是应用层协议,未规定物理层和数据链路层的实现,故并非必须基于CAN总线实现,例如也可基于Ethercat总线实现,即CANopen Over EtherCAT(CoE)。
CANopen协议是一个通用协议标准,从CiA 301 基础协议(DS 301)开始,对于不同类型的CANopen设备有不同的设备子协议(称之为行规),如CiA 402“伺服与运动控制”子协议面向运动设备(包括伺服驱动器、逆变器、步进电机驱动器等)。
1通讯对象标识符
CANOPEN协议的基本通信单元为通信对象(Communication Object)。常用的通信对象有NMT、SYNC、EMERGENCY、TIME STAMP、SDO、PDO六类。COB-ID ( Communication Object Identifier,通讯对象标识符) 即CAN 标识符,指定了在通讯过程中对象的优先级以及通讯对象的识别,CANopen 的各个通讯对象都有默认的 COB-ID。
- 节点ID ——即站号,由系统集成商定义,例如通过设备上的拨码开关设置,Node-ID 范围是 1~127(0 为主站号);
- 功能码 ——数据传输的功能码,定义所有报文的传输级别,功能码越小,优先级越高;
2对象字典
2.1概述
每个CANopen 节点都具备一个对象字典(Object Dictionary,OD),用来设定设备组态及进行非即时的通讯。所谓的对象字典就是一个有序的对象组,描述了对应CANopen节点的所有参数,如通信参数、应用程序数据,以及 PDO 的映射数据等;具体以总线电机驱动器为例,对象字典中的对象(Object )可以是电流环、速度环、位置环的 PID 参数等。
- 索引(Index):每个对象采用一个16位的索引值来寻址,这个索引值通常被称为索引,其范围在0x0000到0xFFFF之间。为了避免数据量大时无索引可分配,所以在某些索引下也定义了一个8 位的索引值,这个索引值通常被称为子索引(Sub),其范围是0x00到0xFF之间。每个索引内具体的参数,最大用32位的变量来表示,即Unsigned32,四个字节。
- 对象属性(Attrib):对象属性有RW(读写)、RO(只读)、WO(只写)、M(可映射)、S(可存储)
轻松掌握CANOpen最难理解的对象字典
2.2 EDS文件
对象字典的可传递形式被称作EDS(electronic data sheet,电子数据表格)文件。EDS文件是 PLC 所连接从站的标识文件或者类似码,通过该文件来辨认从站所属的类型。该文件包含包含了从站的所有信息,比如生产厂家、序列号、软件版本、支持波特率种类、可以映射的 OD 及各个 OD 的属性等等参数,类似于 Profibus 的 GSD 文件。在进行硬件配置前,需要把从站的 EDS 文件导入到上位组态软件。
3 NMT控制
CANopen 节点按照协议规定的状态机执行相应工作,状态机的状态决定了该节点当前支持的通讯方式及节点行为。
状态机有初始化(initialization)、预操作(pre-operational)、操作(operational)和停止(stopped) 四个状态,可以通过 NMT (Net Management,网络管理) 报文来实现在各种模式之间切换。只有主节点能够传送 NMT报文,所有从设备都必须支持 NMT 模块控制(Module Control)服务,同时 NMT模块控制服务消息不需要应答。
CANopen设备状态机制见下图。
- 初始化时,节点自动设置自身参数和对象字典;
- 当节点上电初始化完毕后,自动进入预操作状态中并发送 Boot-Up,该状态是主要的配置节点状态,可以接收和发送除PDO以外的所有报文;
- 主节点发送启动节点报文启动远程节点,由预操作状态进入操作状态,操作状态是 CANopen 正常工作时的状态,各个模块都应正常工作;反之主节点发送另外的NMT 报文使节点进入预操作状态。
- 当 NNT 主机发送停止节点报文时,设备进入停止状态,该状态是一种临时状态,只能接受主站的网络命令以恢复运行或重新启动。
4 SDO服务数据对象
4.1概述
SDO(Service data object,服务数据对象)用于传输非周性数据,使用对象字典的索引和子索引访问CAN节点对象字典中的对象。
SDO 传输方式遵循客户端/服务器模式,由 CAN 总线网络中的 SDO 客户端(主站)发起,SDO 服务器(从站)做出应答,因此只适合对参数的设置,不适合于对实时性要求较高的数据传输。
SDO 的通讯方式分为下载(Download)和上传(Upload):
- 下载:对对象字典进行写操作;
- 上传:对对象字典进行读操作;
4.2快速SDO协议
快速SDO协议是最常用的SDO协议(还存在普通SDO协议,此处不介绍),此处的“快速”是指在一个发送-接收周期即可完成数据收发,但只能处理最大4字节数据。
当主站读取从站索引时:
- SDO 报文发送时命令字均为 0x40;
- 如果接收数据为 1个字节,则接收命令字为 0x4F;
- 如果接收数据为 2 个字节,则接收命令字为 0x4B;
- 如果接收数据为 3 个字节,则接收命令字为 0x47;
- 如果接收数据为 4 个字节,则接收命今字为 0x43;
当主站写从站索引时:
- 如果发送数据为 1个字节,则发送命令字为 0x2F;
- 如果发送数据为 2 个字节,则发送命令字为 0x2B;
- 如果发送数据为 3 个字节,则发送命令字为 0x27;
- 如果发送数据为 4 个字节,则发送命今字为 0x23;
- 写成功时, 则接收命令字为 0x60;如果接收数据存在错误,则接收命令字为 0x80。
5 PDO过程数据对象
5.1概述
PDO(Process data object,过程数据对象) 主要用来传输需要高频率交换的数据。与现有的数据问答式传输方式不同,进行PDO传输方式时,设备双方在传输前先在各个设备定义好对象字典中数据接收和发送区域,在数据交换时直接发送相关的数据到对方的数据接收区,减少了问答式的询问时间。
由于需要区分每个 CANopen 节点的输入和输出,所以将PDO 分为发送方 Transmit-PDO(TxPDO)和接收方 Receive-PDO(RxPDO)。注意发送和接收是以 CANopen 节点自身为参考,此处以从站为例:
- TXPDO:从站通过 TXPDO 反锁自身的状态,相对于从站来说就是指从站发送出去的数据,这些数据由主站来接收;
- RXPDO:从站通过 RXPDO 接收主站的指令,相对于从站来说就是指从站接收的数据,这些数据由主站来发送;
在Canopen预定义中,TPDO 和 RPDO 分别有 4 个数据对象(若从站支持,可根据需要在规则上扩增),每个 PDO 最大可映射 8 字节。
PDO属于生产者-消费者模型(producer/consumer),即将生产者(主站)生产行为同消费者(从站)消费行为剥离,网络中的每个节点都能收到发送节点的报文,接收到报文后根据配置决定是否接受报文。
在生产者-消费者模型中,生产者负责生成数据(或任务),而消费者负责消费这些数据(或执行任务)。生产者和消费者在不同的时间段运行,并通过共享的缓冲区或队列进行通信和数据交换。生产者将数据放入缓冲区,而消费者从缓冲区中取出数据并处理。
PDO 的属性可以在对象字典中配置,每个PDO在对象字典中由PDO通讯参数和PDO映射参数组成。
5.2 PDO传输方式
PDO 有两种传输方式,同步传输和异步传输。
同步(SYNC)
同步传输就是通过 SYNC(同步)消息让所有节点能在同一时刻进行上传数据或者执行下达的应用指令。SYNC 消息是由主节点周期性地发送的,所有其他节点在接收到 SYNC 消息后都会执行指定的操作。
对TxPDO,同步传输又可细分为下述两种类型:
- 同步非周期(AcycliSyn,传输类型:0)。该方式下节点接收到1个SYNC 消息且数据发生变化时,PDO 数据传输一次。
- 同步周期(LoopSyn,传输类型:1-240)。该方式下节点每接收到 n 个SYNC 消息后(可设置数为1 到 240 个 ),PDO 数据传输一次。
对RxPDO,0-240无区别。
异步(ASYNC)
(传输类型:254/255)
异步传输由特定事件触发,此处事件指数据变化或定时器溢出等。
- 传输类型254:只有在制造商定义的事件发生后才传输PDO数据。
- 传输类型255:只有在CiA协议规范定义的事件发生后才传输PDO数据。
允许在一个网络中同时使用同步和异步PDO,但可能会增加网络复杂性。
5.3 PDO 通讯参数
- COB-ID:即这个 PDO 发出或者接收的对应 CAN 帧 ID;
- 传输类型:决定PDO遵循何种传输方式(同步/异步);
- 生产禁止约束时间:生产禁止约束时间指两个连续 PDO 传输的最小间隔时间,避免由于高优先级信息的数据量太大,始终占据总线,而使其它优先级较低的数据无力竞争总线的问题。
- 事件定时器触发时间:异步传输模式中从站向主站发送 PDO 报文的周期时间。注意使用事件时间时,禁止时间应设置为 0。
- 同步起始值:同步传输的 PDO,收到若干个同步帧后,才进行发送,该参数用于指定同步帧数量。
5.4 PDO 映射参数
5.5 PDO通讯示意
主站向从站发送数据:
从站向主站发送数据:
6 SYNC同步
7监督类型
7.1心跳报文
7.2节点保护
由于远程帧在 CAN 发展中逐渐被淘汰,而节点守护由于需要更多的主站开销与增加网络负载,CiA协会已经不建议使用节点守护,更多的被心跳报文所取代。 目前节点守护为预留功能。
8 Emergency应急报文
当设备内部出现致命错误将触发应急(Emergency)报文,由应用设备以最高优先级发送到其他设备。任何具备紧急事件监控与处理能力的从站会接收并处理紧急报文。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/114620.html




