CANopen协议讲解
CANopen协议讲解

CANopen协议讲解一、引言CANopen是一种基于CAN总线的通信协议,用于实现分布式控制系统中的设备之间的通信。
本协议旨在详细介绍CANopen协议的基本原理、通信机制、数据结构和应用领域。
二、协议概述1. 协议定义:CANopen是一种开放的、标准化的通信协议,用于实现CAN总线上的设备之间的通信和数据交换。
2. 协议特点:a. 灵活性:CANopen协议支持多种数据类型和通信方式,适用于不同的应用场景。
b. 可扩展性:协议定义了一系列标准对象和服务,可以根据实际需求进行扩展和定制。
c. 实时性:CANopen协议采用基于事件驱动的通信机制,支持实时数据传输和处理。
d. 可靠性:协议提供了错误检测和纠正机制,保证通信的可靠性和稳定性。
三、通信机制1. 帧格式:CANopen协议使用标准的CAN数据帧格式进行通信,包括标识符、数据长度码和数据域等字段。
2. 节点地址:每个CANopen设备都有一个唯一的节点地址,用于识别和寻址设备。
3. 通信对象:CANopen协议定义了一系列标准对象,包括数据对象、远程对象和服务对象等,用于实现设备之间的数据交换和控制。
4. 状态机:CANopen设备通过状态机进行通信管理,包括节点状态、网络状态和通信状态等。
四、数据结构1. 数据类型:CANopen协议支持多种数据类型,包括布尔型、整型、浮点型、字符串型等。
2. 对象字典:CANopen设备使用对象字典来管理和存储数据对象,包括输入对象、输出对象和配置对象等。
3. PDO:PDO(Process Data Object)用于实现实时数据传输和同步控制,包括TPDO(Transmit PDO)和RPDO(Receive PDO)两种类型。
五、应用领域1. 工业自动化:CANopen协议广泛应用于工业自动化领域,用于实现分布式控制系统中的设备之间的通信和数据交换。
2. 汽车电子:CANopen协议被用于汽车电子系统中,如发动机控制、车身控制、底盘控制等。
CANopen协议讲解

根据DS301的内容进行介绍1、CAN总线CAN标准报文2、CANopen应用层协议CANopen 协议不针对某种特别的应用对象,具有较高的配置灵活性,高数据传输能力,较低的实现复杂度。
同时,CANopen 完全基于CAN 标准报文格式,而无需扩展报文的支持,最多支持127个节点,并且协议开源。
一个标准的CANopen 节点(下图),在数据链路层之上,添加了应用层。
该应用层一般由软件实现,和控制算法共同运行在实时处理单元内。
一个标准的CANopen 节点CANopen 应用层协议细化了CAN 总线协议中关于标识符的定义。
定义标准报文的11 比特标识符中高4 比特为功能码,后7 比特为节点号,重命名为通讯对象标识符(COB-ID)。
功能码将所有的报文分为7个优先级,按照优先级从高至低依次为:网络命令报文(NMT)同步报文(SYNC)紧急报文(EMERGENCY)时间戳(TIME)过程数据对象(PDO)服务数据对象(SDO)节点状态报文(NMT Err Control)7 位的节点号则表明CANopen 网络最多可支持127个节点共存(0 号节点为主站)。
下表给出了各报文的COB-ID 范围。
NMT 命令为最高优先级报文,由CANopen 主站发出,用以更改从节点的运行状态。
SYNC 报文定期由CANopen 主站发出,所有的同步PDO 根据SYNC报文发送。
EMERGENCY报文由出现紧急状态的从节点发出,任何具备紧急事件监控与处理能力的节点会接收并处理紧急报文。
TIME 报文由CANopen 主站发出,用于同步所有从站的内部时钟。
PDO 分为4 对发送和接收PDO,每一个节点默认拥有4对发送PDO 和接收PDO,用于过程数据的传递。
SDO 分为发送SDO 和接收SDO,用于读写对象字典。
MT Error Control报文由从节点发出,用以监测从节点的运行状态。
状态机CANopen 的每一个节点都维护了一个状态机。
CANopen协议浅析(一)

CANopen通信对象 通信对象
Type 0:非周期同步,只有当节点 只有当节点PDO数据发生改变后,节点 收到SYNC时,才会更新并传送一笔 才会更新并传送一笔PDO数据信息. 在异步模式中,若从站中的Event timer 为0ms,则只有当从站的数 Event 据发生变化时,才会向主站回传数据 才会向主站回传数据;若为非0值,则每隔一个event timer时间,即向主站回传一笔数据 即向主站回传一笔数据.
Consumer(s
Remote Frame Remotely requested Producer
Consumer(s
Sync Synchronous transmission (cyclic,acyclic) Producer
Consumer(s
CANopen通信对象 通信对象
PDO 的传输类型:
CANopen协议是由CiA( (CAN-in-Automation)定义并 维护的协议之一,它是在CAL CAL(CAN Application Layer)协 议基础上开发的,使用了CAL CAL通信和服务协议子集.
CANopen在发布后不久就获得了广泛的承认 在发布后不久就获得了广泛的承认,尤其在欧 洲, CANopen被认为是在基于 被认为是在基于CAN的工业系统中领导地位 的标准.目前被广泛地用于智能楼宇 目前被广泛地用于智能楼宇,嵌入式系统,车载设备, 医疗装置等应用领域中.
CANopen通信对象 通信对象
CANopen 网络中信息传输采用的三种通信模式 网络中信息传输采用的三种通信模式:
Producer/Consumer Model Client/Server Model Master/Slave Model
CANOPEN协议详解74011

一、C A N-B U S介绍1.CAN的基本概念、特点CAN是ControllerAreaNetwork的缩写(以下称为CAN),是ISO*1国际标准化的串行通信协议。
CAN协议如表3所示涵盖了ISO规定的OSI基本参照模型中的传输层、数据链路层及物理层。
CAN协议中关于ISO/OSI基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图所示。
.ISO/OSI基本参照模型【注】*1OSI:OpenSystemsInterconnection(开放式系统间互联)CAN的特点CAN协议具有以下特点。
(1)多主控制在总线空闲时,所有的单元都可开始发送消息(多主控制)。
最先访问总线的单元可获得发送权。
(2)消息的发送在CAN协议中,所有的消息都以固定的格式发送。
总线空闲时,所有与总线相连的单元都可以开始发送新消息。
两个以上的单元同时开始发送消息时,根据标识符(Identifier以下称为ID)决定优先级。
ID并不是表示发送的目的地址,而是表示访问总线的消息的优先级。
两个以上的单元同时开始发送消息时,对各消息ID的每个位进行逐个仲裁比较。
仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
(3)系统的柔软性与总线相连的单元没有类似于“地址”的信息。
因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。
(4)通信速度根据整个网络的规模,可设定适合的通信速度。
在同一网络中,所有单元必须设定成统一的通信速度。
即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。
不同网络间则可以有不同的通信速度。
(5)远程数据请求可通过发送“遥控帧”请求其他单元发送数据。
(6)错误检测功能·错误通知功能·错误恢复功能所有的单元都可以检测错误(错误检测功能)。
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
CANopen协议讲解

CANopen协议讲解CANopen是一种基于CAN总线的通信协议,用于工业自动化领域中设备之间的数据交换和控制。
它是由CAN in Automation (CiA)组织开发和维护的,目前已成为工业领域最常用的开放式通信协议之一。
本文将详细介绍CANopen协议的基本原理、通信结构、数据通信方式以及应用领域等内容。
1. CANopen协议的基本原理CANopen协议基于CAN总线,采用了面向对象的通信模型。
它将设备抽象为对象,每个对象具有唯一的标识符,通过读写对象字典中的数据来实现设备之间的通信。
CANopen协议还定义了一套标准的通信服务和对象类型,使得不同厂商的设备可以互相兼容和交互。
2. CANopen协议的通信结构CANopen协议采用了主从式的通信结构,其中一个节点作为主节点,其他节点作为从节点。
主节点负责控制总线的访问和数据传输,从节点负责接收和响应主节点的指令。
主节点和从节点之间的通信通过报文进行,包括数据报文和远程帧。
3. CANopen协议的数据通信方式CANopen协议支持多种数据通信方式,包括点对点通信、广播通信和组播通信。
点对点通信是指主节点与特定从节点之间的通信,广播通信是指主节点向所有从节点发送相同的指令,组播通信是指主节点向特定组内的从节点发送指令。
4. CANopen协议的对象字典CANopen协议使用对象字典来存储设备的数据和配置信息。
对象字典是一个由多个对象组成的数据结构,每个对象包含了标识符、数据类型、访问权限等信息。
通过读写对象字典中的数据,可以实现设备之间的数据交换和控制。
5. CANopen协议的应用领域CANopen协议广泛应用于工业自动化领域,包括机械设备、工厂自动化、物流系统等。
它提供了可靠的数据传输和实时性能,适用于各种复杂的控制和监测应用。
CANopen协议还支持设备的配置和诊断功能,使得系统维护和故障排除更加方便。
总结:CANopen协议是一种基于CAN总线的通信协议,用于工业自动化领域中设备之间的数据交换和控制。
CANopen协议

CANopen协议⼀、CANOpen总线结构⼴播命令⼆、通信类型CANOpen有三种通信⽅式:主/从通信⽅式服务器/客户端通信⽅式⽣产商/顾客通信⽅式2.1主/从通信⽅式(NMT)对某⼀特点功能⽽⾔,⼀个⽹络中只有⼀个主机,其他全为从机。
由主机发送请求信号,从机发送相应信号(如果需要)主机发出命令,从机作出响应,但不回送数据主机发出命令,从机作出响应,同时回送数据确认2.2服务器/客户端通信⽅式(SDO)这种关系指发⽣在⼀个服务器和⼀个客户端之间,客户端发送命令,服务器执⾏后,回答客户端2.3⽣产商/顾客通信⽅式(SYNC、Time Stamp、EMCY)这种通信⽅式有Push和pull两种模式,⽹络中在这⼀个⽣产⼚,0或多个顾客。
2.3.1push模式⼚商发送命令,顾客执⾏,不需回送数据2.3.2 pull模式⼚商发送命令,顾客执⾏,回送证实数据三PDO传送模式PDO分为TPDO(发送PDO)与RPDO(接收PDO)两种,PDO的传送模式有两种:同步传送与异步传送。
同步传送⼜分为周期传送与⾮周期传送3.1同步传送由某⼀个同步应⽤在⽹路上周期性的发送同步对象,及发送SYNC帧,该同步应⽤可以是主机也可以是从机PDO通信参数中的传输类型说明传送模式与触发⽅式,TPDO:传送类型同时说明其传送率,以基本传送周期的倍数表⽰。
传送类型为0时,表⽰当某事件发⽣后,收到⼀个同步对象帧(SYNC)时,⽴刻进⾏数据传输。
(⾮周期传送)传送类型为1时,表⽰当每收到⼀次同步对象帧(SYNC)时,传送⼀次数据。
(周期传送)传送类型为n时,表⽰当每收到n次同步对象帧(SYNC)时,传送⼀次数据。
(周期传送)RPDO:接收是在收到SYNC信号后,运⾏接收,独⽴于传输参数定义的传送率。
传输类型 252 为⾮周期传输,在接收到同步对象后进⾏采样但不发送,在接收到请求该数据的远程帧后发送。
3.2异步传送TPDO: 异步传送与SYNC⽆关,传输类型 253-255 为异步传输,定义为此三种类型的 TPDO在接收到远程帧或规定的事件发⽣后进⾏传输。
CANOPEN协议详解

一、CAN-BUS介绍1.CAN的基本概念、特点CAN 是Controller Area Network的缩写(以下称为CAN),是ISO*1国际标准化的串行通信协议。
CAN 协议如表3 所示涵盖了ISO 规定的OSI 基本参照模型中的传输层、数据链路层及物理层。
CAN 协议中关于ISO/OSI 基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图所示。
. ISO/OSI 基本参照模型【注】*1 OSI:Open Systems Interconnection (开放式系统间互联)CAN的特点CAN 协议具有以下特点。
(1) 多主控制在总线空闲时,所有的单元都可开始发送消息(多主控制)。
最先访问总线的单元可获得发送权。
(2) 消息的发送在CAN 协议中,所有的消息都以固定的格式发送。
总线空闲时,所有与总线相连的单元都可以开始发送新消息。
两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为ID)决定优先级。
ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。
两个以上的单元同时开始发送消息时,对各消息ID 的每个位进行逐个仲裁比较。
仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
(3) 系统的柔软性与总线相连的单元没有类似于“地址”的信息。
因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。
(4) 通信速度根据整个网络的规模,可设定适合的通信速度。
在同一网络中,所有单元必须设定成统一的通信速度。
即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。
不同网络间则可以有不同的通信速度。
(5) 远程数据请求可通过发送“遥控帧”请求其他单元发送数据。
(6) 错误检测功能·错误通知功能·错误恢复功能所有的单元都可以检测错误(错误检测功能)。
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
CANOPEN协议详解.pdf

(3) 控制段 控制段由 6 个位构成,表示数据段的字节数。 标准格式和扩展格式的构成有所不同。
数据帧(控制段)
【注】 *1 保留位( r0、 r1) 保留位必须全部以显性电平发送。但接收方可以接收显性、隐性及其任意组合的电 平。 *2 数据长度码( DLC) 数据长度码与数据的字节数的对应关系如表 8 所示。 数据的字节数必须为 0~8 字节。但接收方对 DLC = 9~15 的情况并不视为错误。
下。 3.4 错误帧 用于在接收和发送消息时检测出错误通知错误的帧。错误帧由错误标志和错误界定
符构成。 错误帧的构成如图所示。 (1) 错误标志 错误标志包括主动错误标志和被动错误标志两种。 主动错误标志: 6 个位的显性位。 被动错误标志: 6 个位的隐性位。 (2) 错误界定符 错误界定符由 8 个位的隐性位构成。
(4) 通信速度
根据整个网络的规模,可设定适合的通信速度。
在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度 与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以 有不同的通信速度。
(5) 远程数据请求 可通过发送“遥控帧”请求其他单元发送数据。
(6) 错误检测功能·错误通知功能·错误恢复功能
CANopen协议详情讲解

根据DS301的内容进行介绍1、CAN总线CAN标准报文2、CANopen应用层协议CANopen 协议不针对某种特别的应用对象,具有较高的配置灵活性,高数据传输能力,较低的实现复杂度。
同时,CANopen 完全基于CAN 标准报文格式,而无需扩展报文的支持,最多支持127个节点,并且协议开源。
一个标准的CANopen 节点(下图),在数据链路层之上,添加了应用层。
该应用层一般由软件实现,和控制算法共同运行在实时处理单元内。
一个标准的CANopen 节点CANopen 应用层协议细化了CAN 总线协议中关于标识符的定义。
定义标准报文的11 比特标识符中高4 比特为功能码,后7 比特为节点号,重命名为通讯对象标识符(COB-ID)。
功能码将所有的报文分为7个优先级,按照优先级从高至低依次为:网络命令报文(NMT)同步报文(SYNC)紧急报文(EMERGENCY)时间戳(TIME)过程数据对象(PDO)服务数据对象(SDO)节点状态报文(NMT Err Control)7 位的节点号则表明CANopen 网络最多可支持127个节点共存(0 号节点为主站)。
下表给出了各报文的COB-ID 范围。
NMT 命令为最高优先级报文,由CANopen 主站发出,用以更改从节点的运行状态。
SYNC 报文定期由CANopen 主站发出,所有的同步PDO 根据SYNC报文发送。
EMERGENCY报文由出现紧急状态的从节点发出,任何具备紧急事件监控与处理能力的节点会接收并处理紧急报文。
TIME 报文由CANopen 主站发出,用于同步所有从站的内部时钟。
PDO 分为4 对发送和接收PDO,每一个节点默认拥有4对发送PDO 和接收PDO,用于过程数据的传递。
SDO 分为发送SDO 和接收SDO,用于读写对象字典。
MT Error Control报文由从节点发出,用以监测从节点的运行状态。
状态机CANopen 的每一个节点都维护了一个状态机。
CANOPEN协议详解62624

一、CAN—BUS介绍1.CAN的基本概念、特点CAN 是Controller Area Network的缩写(以下称为CAN),是ISO*1国际标准化的串行通信协议。
CAN 协议如表3 所示涵盖了ISO 规定的OSI 基本参照模型中的传输层、数据链路层及物理层。
CAN 协议中关于ISO/OSI 基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图所示。
ISO/OSI 基本参照模型【注】*1 OSI:Open Systems Interconnection (开放式系统间互联)CAN的特点CAN 协议具有以下特点.(1) 多主控制在总线空闲时,所有的单元都可开始发送消息(多主控制)。
最先访问总线的单元可获得发送权。
(2)消息的发送在CAN 协议中,所有的消息都以固定的格式发送。
总线空闲时,所有与总线相连的单元都可以开始发送新消息.两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为ID)决定优先级。
ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。
两个以上的单元同时开始发送消息时,对各消息ID 的每个位进行逐个仲裁比较。
仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
(3) 系统的柔软性与总线相连的单元没有类似于“地址”的信息.因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。
(4) 通信速度根据整个网络的规模,可设定适合的通信速度。
在同一网络中,所有单元必须设定成统一的通信速度.即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信.不同网络间则可以有不同的通信速度.(5) 远程数据请求可通过发送“遥控帧”请求其他单元发送数据.(6)错误检测功能·错误通知功能·错误恢复功能所有的单元都可以检测错误(错误检测功能)。
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
CANOPEN协议详解

一、CAN-BUS介绍1.CAN的基本概念、特点CAN 是Controller Area Network的缩写(以下称为CAN),是ISO*1国际标准化的串行通信协议。
CAN 协议如表3 所示涵盖了ISO 规定的OSI 基本参照模型中的传输层、数据链路层及物理层。
CAN 协议中关于ISO/OSI 基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图所示。
. ISO/OSI 基本参照模型【注】*1 OSI:Open Systems Interconnection (开放式系统间互联)CAN的特点CAN 协议具有以下特点。
(1) 多主控制在总线空闲时,所有的单元都可开始发送消息(多主控制)。
最先访问总线的单元可获得发送权。
(2) 消息的发送在CAN 协议中,所有的消息都以固定的格式发送。
总线空闲时,所有与总线相连的单元都可以开始发送新消息。
两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为ID)决定优先级。
ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。
两个以上的单元同时开始发送消息时,对各消息ID 的每个位进行逐个仲裁比较。
仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
(3) 系统的柔软性与总线相连的单元没有类似于“地址”的信息。
因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。
(4) 通信速度根据整个网络的规模,可设定适合的通信速度。
在同一网络中,所有单元必须设定成统一的通信速度。
即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。
不同网络间则可以有不同的通信速度。
(5) 远程数据请求可通过发送“遥控帧”请求其他单元发送数据。
(6) 错误检测功能·错误通知功能·错误恢复功能所有的单元都可以检测错误(错误检测功能)。
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
CANopen协议

CANopen协议协议名称:CANopen协议一、介绍CANopen协议是一种基于CAN总线的通信协议,用于在工业自动化领域中实现设备之间的通信。
该协议定义了一套标准的通信对象和通信机制,使得不同厂家的设备可以相互交互和通信,实现数据的传输和控制。
二、协议结构CANopen协议由以下几个主要组成部分构成:1. 网络管理(NMT):负责网络的初始化、启动和停止,以及节点的管理和配置。
2. 数据通信(SDO):用于节点之间的数据传输,支持读取和写入操作。
3. 远程过程调用(RPC):允许节点之间进行远程过程调用,实现对远程节点的控制和操作。
4. 紧急消息(EMCY):用于传输设备故障和错误信息。
5. 时间同步(SYNC):用于同步网络中的各个节点的时间。
6. 节点配置(NMT配置):用于配置和管理节点的参数和功能。
7. 心跳(Heartbeat):用于监测节点的状态和活动性。
三、通信对象CANopen协议定义了一系列的通信对象,包括以下几种主要类型:1. 输入和输出(I/O):用于传输数字量和模拟量数据。
2. 字典对象(Dictionary Object):用于存储和传输设备的参数和配置信息。
3. 状态机(State Machine):用于控制设备的状态和行为。
4. 网络管理(NMT):用于管理和控制网络中的节点。
5. 紧急消息(EMCY):用于传输设备故障和错误信息。
6. 时间戳(Timestamp):用于记录事件的发生时间。
四、协议通信机制CANopen协议采用基于事件驱动的通信机制,使用COB(Communication Object Identifier)来标识和区分不同的通信对象。
通信对象可以通过SDO(Service Data Object)进行读取和写入操作,也可以通过RPC(Remote Procedure Call)进行远程过程调用。
1. SDO(Service Data Object):SDO用于节点之间的数据传输,支持读取和写入操作。
CANopen协议讲解

CANopen协议讲解CANopen是一种基于CAN总线的通信协议,广泛应用于工业自动化领域。
该协议定义了一套标准的通信和设备管理机制,使得不同厂商的设备可以互相通信和协同工作。
本文将详细讲解CANopen协议的基本原理、通信结构、数据格式以及常用的设备配置和管理方式。
一、基本原理:CANopen协议是基于CAN(Controller Area Network)总线的,CAN总线是一种广泛应用于汽车和工业领域的串行通信协议。
CAN总线具有高可靠性、实时性和抗干扰能力,适用于多节点分布式控制系统。
CANopen协议在CAN总线上定义了一套通信和设备管理机制,包括数据传输、节点配置、网络管理等。
它采用了基于对象的通信模型,将设备的功能和参数抽象为对象,通过读写对象字典来实现数据的交换和配置。
二、通信结构:CANopen协议中的通信结构由节点、对象字典和通信对象组成。
1. 节点(Node):每个CANopen设备都是一个节点,每个节点都有一个唯一的节点ID,用于在总线上进行识别和寻址。
2. 对象字典(Object Dictionary):对象字典是一个存储设备功能和参数的数据结构,由多个对象索引组成。
每个对象索引对应一个对象字典项,包括对象类型、数据类型、访问权限等信息。
3. 通信对象(Communication Object):通信对象是CANopen协议中的最小通信单位,用于在节点之间传输数据。
通信对象可以是PDO(Process Data Object)或者SDO(Service Data Object)。
- PDO:用于实时数据传输,支持广播和点对点通信,可以配置为发送和接收模式。
PDO具有固定的数据格式,包括索引、子索引和数据内容。
- SDO:用于配置和管理节点的对象字典,支持点对点通信。
SDO具有灵活的数据格式,包括索引、子索引、命令字和数据内容。
三、数据格式:CANopen协议中的数据格式包括CAN帧和通信对象的数据结构。
CANOpen协议介绍

CANOpen协议介绍CANopen内部设备结构内部设备结构CANopen设备的结构从逻辑上可分为三部分。
一部分提供CAN接口,而另一部分提供设备的应用程序,如果为I/O模块,该应用程序控制设备的输入/输出(I/O)线路。
应用程序与CAN接口之间的接口在对象字典中实现。
对象字典对任何CANopen设备都是唯一的。
它相当于参数列表,可提供对受支持配置和过程数据的访问。
若要访问对象字典,每个CANopen设备都必须执行CANopen协议堆栈。
此CANopen协议堆栈是一种软件,通常在设备应用程序软件所使用的同一微控制器上实现。
CANopen对象字典对象字典布局对象字典是所有CANopen设备的核心。
实际上是一个对象(?卥)组,可通过网络以事先安排的预定义方式访问。
可使用6位索引和8位子索引对对象字典内的每个对象进行寻址。
对象字典的结构可分为几个索引范围。
索引范围1000至1FFFhh中的对象用于描述设备的通讯行为。
索引范围2000至5FFF和6000至9FFF 中hhhh的对象以制造商特定方式或CANopen设备子协议或应用子协议的标准化方式描述应用程序行为。
由于标准化的CANopen设备和应用子协议的索引范围被分成八设备内提供最多八个设备/应用子协议执行过个部分,因此可以在一个CANope?程。
根据相关的CiA接口规范,网络变量和系统变量被安排在索引范围A000至hBFFFF之间。
h设备设计人员的可能选择在对象字典中,设备设计人员通过执行相关的对象指出支持的设备功能。
通讯行为可在索引范围1xxx中的合适对象中调整。
制造商特定设备功能所需要或生成h的参数和结果可在索引范围2000至5FFF中指出。
此外,制造商特定状态信息hh和过程数据可在该索引范围中显示到网络。
如果设备设计人员希望在CANopen设备子协议的层面上通过标准化的CANopen 接口为客户提供舒适的设备控制,可在相关CANopen子协议中的预定义索引范围6000至9FFF内提供相应的参数和状态信息。
canopen协议详解

CanOpen协议详解简介CanOpen是一种基于CAN总线的通信协议,它是一种轻量级的、高效的、可靠的通信协议,广泛应用于工业控制领域。
CanOpen协议的设计目标是提供一种标准化的通信方式,便于不同厂家的设备之间进行数据交换和控制命令的传输。
CanOpen协议的特点包括: - 基于CAN总线的通信方式,具有高可靠性和抗干扰能力; - 支持多种数据类型,包括布尔型、整数型、浮点型等; - 提供了一套完整的对象字典,用于存储设备的配置参数和状态信息; - 支持主从模式和点对点模式,可以实现多个设备之间的协同工作; - 支持远程过程调用(RPC)和事件驱动。
协议结构CanOpen协议的数据通信是基于CAN帧进行的,每个CanOpen设备在CAN总线上有一个唯一的节点ID。
CanOpen协议定义了一组标准的CAN帧格式,其中包括了设备的节点ID、数据类型、数据长度等信息。
在CanOpen协议中,数据的传输是通过对象字典来完成的。
对象字典是一个由索引和子索引组成的树形结构,用于存储设备的配置参数和状态信息。
每个对象字典条目都有一个唯一的索引和子索引,用于标识该条目的位置和内容。
CanOpen协议定义了一些基本的对象字典条目,包括设备的状态、配置参数、控制命令等。
同时,CanOpen协议也允许用户定义自己的对象字典条目,以满足特定的应用需求。
通信方式CanOpen协议支持两种通信方式:主从模式和点对点模式。
在主从模式下,一个设备(主节点)负责发送控制命令,其他设备(从节点)接收并执行命令。
主节点可以通过发送PDO(Process Data Object)来实现数据的实时传输,也可以通过发送SDO(Service Data Object)来实现对从节点的配置和状态查询。
在点对点模式下,两个设备直接进行数据交换,无需主节点的介入。
点对点通信可以使用PDO或者SDO来实现。
通信协议CanOpen协议定义了一套标准的通信协议,用于设备之间的数据交换和命令传输。
(完整word)CANopen协议讲解

根据DS301的内容进行介绍1、CAN总线CAN标准报文2、CANopen应用层协议CANopen 协议不针对某种特别的应用对象,具有较高的配置灵活性,高数据传输能力,较低的实现复杂度。
同时,CANopen 完全基于CAN 标准报文格式,而无需扩展报文的支持,最多支持127个节点,并且协议开源。
一个标准的CANopen 节点(下图),在数据链路层之上,添加了应用层。
该应用层一般由软件实现,和控制算法共同运行在实时处理单元内。
一个标准的CANopen 节点CANopen 应用层协议细化了CAN 总线协议中关于标识符的定义。
定义标准报文的11 比特标识符中高4 比特为功能码,后7 比特为节点号,重命名为通讯对象标识符(COB-ID)。
功能码将所有的报文分为7个优先级,按照优先级从高至低依次为:网络命令报文(NMT)同步报文(SYNC)紧急报文(EMERGENCY)时间戳(TIME)过程数据对象(PDO)服务数据对象(SDO)节点状态报文(NMT Err Control)7 位的节点号则表明CANopen 网络最多可支持127个节点共存(0 号节点为主站)。
下表给出了各报文的COB-ID 范围。
NMT 命令为最高优先级报文,由CANopen 主站发出,用以更改从节点的运行状态。
SYNC 报文定期由CANopen 主站发出,所有的同步PDO 根据SYNC报文发送。
EMERGENCY报文由出现紧急状态的从节点发出,任何具备紧急事件监控与处理能力的节点会接收并处理紧急报文。
TIME 报文由CANopen 主站发出,用于同步所有从站的内部时钟。
PDO 分为4 对发送和接收PDO,每一个节点默认拥有4对发送PDO 和接收PDO,用于过程数据的传递。
SDO 分为发送SDO 和接收SDO,用于读写对象字典。
MT Error Control报文由从节点发出,用以监测从节点的运行状态。
状态机CANopen 的每一个节点都维护了一个状态机。
CANopen协议介绍(精辟准确)

CANopen协议介绍(精辟准确)1.CANopen协议简介从OSI ⽹络模型的⾓度来看,CAN总线只定义了OSI⽹络模型的第⼀层(物理层)和第⼆层(数据链路层),⽽在实际设计中,这两层完全由硬件实现,设计⼈员⽆需再为此开发相关软件或固件。
同时,CAN只定义物理层和数据链路层,没有规定应⽤层,本⾝并不完整,因此需要⼀个⾼层协议来定义CAN报⽂中的11/29位标识符和8字节数据的使⽤。
⽽且,基于CAN总线的⼯业⾃动化应⽤中,越来越需要⼀个开放的、标准化的⾼层协议:这个协议⽀持各种CAN⼚商设备的互⽤性、互换性,能够实现在CAN⽹络中提供标准的、统⼀的系统通讯模式,提供设备功能描述⽅式,执⾏⽹络管理功能。
CANopen协议是CAN-in-Automation(CiA) 定义的标准之⼀,并且在发布后不久就获得了⼴泛的承认。
尤其是在欧洲, CANopen 协议被认为是在基于CAN 的⼯业系统中占领导地位的标准。
⼤多数重要的设备类型,例如数字和模拟的输⼊输出模块、驱动设备、操作设备、控制器、可编程控制器或编码器,都在称为“设备描述”的协议中进⾏描述;“设备描述”定义了不同类型的标准设备及其相应的功能。
依靠CANopen协议的⽀持,可以对不同⼚商的设备通过总线进⾏配置。
在OSI 模型中, CAN标准、CANopen协议之间的关系如图 1-1所⽰。
图1-1 CAN标准、CANopen协议在OSI⽹络模型中的位置框图CANopen和CAN报⽂的关系如图 1-2所⽰。
图1-2 CANopen和CAN报⽂的关系如所⽰。
CAN 报⽂由7个不同的位域组成,⽽CANopen就是规定其中的仲裁域(11 位标识符) 和数据域(8 字节数据) 的使⽤情况。
2.CANopen设备结构CANopen是⼀个基于CAN串⾏总线系统和CAL(CAN应⽤层)的⾼层协议。
CANopen的核⼼概念是设备对象字典(OD: ObjectDictionary),CANopen通讯通过对象字典(OD)能够访问驱动器的所有参数。
CANOPEN协议详解35180

一、 ✌☠✞介绍. ✌☠的基本概念、特点✌☠ 是 ☐⏹♦❒☐●●♏❒ ✌❒♏♋ ☠♏♦♦☐❒的缩写(以下称为 ✌☠),是 ✋✉国际标准化的串行通信协议。
✌☠ 协议如表 所示涵盖了 ✋ 规定的 ✋ 基本参照模型中的传输层、数据链路层及物理层。
✌☠ 协议中关于 ✋✋ 基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图所示。
✋✋ 基本参照模型【注】 ✉ ✋: ☐♏⏹ ⍓♦♦♏❍♦ ✋⏹♦♏❒♍☐⏹⏹♏♍♦♓☐⏹ (开放式系统间互联)✌☠的特点✌☠ 协议具有以下特点。
☎✆ 多主控制在总线空闲时,所有的单元都可开始发送消息(多主控制)。
最先访问总线的单元可获得发送权。
☎✆ 消息的发送在 ✌☠ 协议中,所有的消息都以固定的格式发送。
总线空闲时,所有与总线相连的单元都可以开始发送新消息。
两个以上的单元同时开始发送消息时,根据标识符(✋♎♏⏹♦♓♐♓♏❒ 以下称为 ✋)决定优先级。
✋ 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。
两个以上的单元同时开始发送消息时,对各消息 ✋ 的每个位进行逐个仲裁比较。
仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
☎✆ 系统的柔软性与总线相连的单元没有类似于“地址”的信息。
因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。
☎✆ 通信速度根据整个网络的规模,可设定适合的通信速度。
在同一网络中,所有单元必须设定成统一的通信速度。
即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。
不同网络间则可以有不同的通信速度。
☎✆ 远程数据请求可通过发送“遥控帧” 请求其他单元发送数据。
☎✆ 错误检测功能·错误通知功能·错误恢复功能所有的单元都可以检测错误(错误检测功能)。
CANopen协议讲解

CANopen协议讲解协议背景:CANopen是一种基于CAN总线的通信协议,用于实现工业自动化设备之间的通信和数据交换。
它是由CAN in Automation(CiA)组织开发和维护的,被广泛应用于机械、汽车、医疗设备等领域。
协议目的:CANopen协议的目的是提供一种标准化的通信方式,使不同厂家的设备能够互联互通,并且能够方便地进行配置、监控和控制。
通过CANopen协议,用户可以实现设备之间的高效通信,提高系统的可靠性和灵活性。
协议特点:1. 灵活性:CANopen协议支持多种通信速率和通信模式,能够适应不同应用场景的需求。
2. 可扩展性:CANopen协议定义了一套丰富的对象字典,用户可以根据自己的需求进行扩展和定制。
3. 可靠性:CANopen协议采用了错误检测和纠正机制,能够保证数据的可靠传输。
4. 实时性:CANopen协议支持实时通信和事件驱动机制,能够满足对实时性要求较高的应用场景。
5. 简单性:CANopen协议的数据帧格式和通信规则相对简单,易于理解和实现。
协议结构:CANopen协议由两个主要部分组成:对象字典和通信过程。
1. 对象字典:对象字典是CANopen协议的核心概念,它定义了设备支持的各种对象和参数。
对象字典以16位的索引和8位的子索引进行标识,包括了数据类型、访问权限、默认值等信息。
用户可以通过读写对象字典中的对象来实现对设备的配置和控制。
2. 通信过程:CANopen协议使用基于事件的通信机制,通过发送和接收数据帧来实现设备之间的通信。
通信过程包括以下几个步骤:- NMT(网络管理):用于启动、停止、重启和同步网络中的设备。
- SDO(服务数据对象):用于读写对象字典中的对象。
- PDO(过程数据对象):用于实时传输设备的过程数据。
- SYNC(同步):用于同步网络中的设备,实现精确的时间控制。
- EMCY(紧急):用于向网络中的设备发送紧急事件信息。
协议应用:CANopen协议广泛应用于工业自动化领域,包括机械、汽车、医疗设备等。
canopen协议详解

canopen协议详解CANopen协议详解。
CANopen是一种基于CAN总线的高层通信协议,它广泛应用于工业控制、汽车电子、医疗设备等领域。
本文将详细介绍CANopen协议的相关内容,包括其基本原理、通信对象、数据传输方式以及应用范围等方面的内容。
首先,我们来了解一下CANopen协议的基本原理。
CANopen协议是建立在CAN总线之上的一种通信协议,它采用了基于对象字典的通信模型,通过定义不同的通信对象来实现设备之间的数据交换。
CANopen协议还采用了一种灵活的网络管理机制,可以实现设备的自动识别和配置。
这种基于对象字典的通信模型和灵活的网络管理机制,使得CANopen协议在工业控制领域得到了广泛的应用。
其次,我们将介绍CANopen协议中的通信对象。
CANopen协议定义了许多不同类型的通信对象,包括PDO(过程数据对象)、SDO(服务数据对象)、NMT (网络管理对象)等。
这些通信对象可以实现设备之间的数据交换、参数配置、网络管理等功能。
通过对这些通信对象的灵活应用,可以实现复杂的控制系统,满足不同应用场景的需求。
接下来,我们将详细介绍CANopen协议的数据传输方式。
CANopen协议采用了基于事件驱动的数据传输方式,通过PDO和SDO等通信对象来实现数据的传输和交换。
PDO是一种实时数据传输方式,可以实现设备之间的实时数据交换;而SDO则是一种参数配置和管理方式,可以实现设备参数的读写和配置。
通过这些数据传输方式,CANopen协议可以实现设备之间的高效通信和数据交换。
最后,我们将介绍CANopen协议在不同领域的应用范围。
由于CANopen协议具有灵活的通信模型、丰富的通信对象和高效的数据传输方式,它在工业控制、汽车电子、医疗设备等领域得到了广泛的应用。
在工业控制领域,CANopen协议可以实现设备之间的实时数据交换和控制,满足复杂控制系统的需求;在汽车电子领域,CANopen协议可以实现车载电子设备之间的通信和数据交换;在医疗设备领域,CANopen协议可以实现医疗设备之间的数据交换和控制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
根据DS301的内容进行介绍1、CAN总线CAN标准报文2、CANopen应用层协议CANopen 协议不针对某种特别的应用对象,具有较高的配置灵活性,高数据传输能力,较低的实现复杂度。
同时,CANopen 完全基于CAN 标准报文格式,而无需扩展报文的支持,最多支持127个节点,并且协议开源。
一个标准的CANopen 节点(下图),在数据链路层之上,添加了应用层。
该应用层一般由软件实现,和控制算法共同运行在实时处理单元内。
一个标准的CANopen 节点CANopen 应用层协议细化了CAN 总线协议中关于标识符的定义。
定义标准报文的11 比特标识符中高4 比特为功能码,后7 比特为节点号,重命名为通讯对象标识符(COB-ID)。
功能码将所有的报文分为7个优先级,按照优先级从高至低依次为:网络命令报文(NMT)同步报文(SYNC)紧急报文(EMERGENCY)时间戳(TIME)过程数据对象(PDO)服务数据对象(SDO)节点状态报文(NMT Err Control)7 位的节点号则表明CANopen 网络最多可支持127个节点共存(0 号节点为主站)。
下表给出了各报文的COB-ID 范围。
NMT 命令为最高优先级报文,由CANopen 主站发出,用以更改从节点的运行状态。
SYNC 报文定期由CANopen 主站发出,所有的同步PDO 根据SYNC报文发送。
EMERGENCY报文由出现紧急状态的从节点发出,任何具备紧急事件监控与处理能力的节点会接收并处理紧急报文。
TIME 报文由CANopen 主站发出,用于同步所有从站的内部时钟。
PDO 分为4 对发送和接收PDO,每一个节点默认拥有4对发送PDO 和接收PDO,用于过程数据的传递。
SDO 分为发送SDO 和接收SDO,用于读写对象字典。
MT Error Control报文由从节点发出,用以监测从节点的运行状态。
状态机CANopen 的每一个节点都维护了一个状态机。
该状态机的状态决定了该节点当前支持的通讯方式以及节点行为。
初始化时,节点将自动设置自身参数和CANopen 对象字典,发出节点启动报文,并不接收任何网络报文。
初始化完成后,自动进入预运行状态。
在该状态,节点等待主站的网络命令,接收主站的配置请求,因此可以接收和发送除了PDO 以外的所有报文。
运行状态为节点的正常工作状态,接收并发送所有通讯报文。
停止状态为一种临时状态,只能接收主站的网络命令,以恢复运行或者重新启动。
CANopen节点状态转换图CANopen节点状态转换条件3、Device ModelCommunication 提供通信对象和传输经过底层的数据的适当功能;Object Dictionary 对此设备上的应用程序对象,通信对象和状态机的行为有影响的所有数据项的集合。
Application 由在处理环境方面的设备功能组成。
设备应用在数据条目中的完整描述在对象字典中叫设备子文件(device profile)4、OD每个节点维护一个对象字典(Object Dictionary, OD)。
该对象字典保存了节点信息、通讯参数和所有的过程数据,是CANopen 节点的核心数据结构。
上层应用程序也主要通过读写对象字典和CANopen 应用层进行交互。
CANopen 对象字典为两级数组结构,通过索引(16bits)和子索引(8bits)来编址。
设备子文件中最重要的就是对象字典的描述,对象字典在slave节点中一般是在设备初始化写好的不会修改,而在master节点中可以在运行过程中动态修改,不修改的OD一般存在ROM中,而修改的存在RAM中。
由于它是由16bits的位索引,所以最多有65536个entries.根据节点所支持的通讯方式,每一个节点都必须实现1000h~1FFFh 当中的一个必要子集,同时实现6000h 以上部分的数据区。
数据区大小由节点的功能自行决定。
1000h 以下部分所有的节点都不需实现。
对象字典作为在CAN总线上连接application和通信的媒介,其允许来自application数据在CAN 网络上进行交换。
CANopen定义了可以进入对象字典的服务和通信对象。
每一个入口通过索引和子索引来编址。
在一个主索引里中的子索引入口的类型和属性可能会变化。
5、PDO数据处理对象(PDO) 特别适合快速的数据处理传输。
通信模块针对这些数据处理对象定义了一个PDO producer 和一个或多个PDO consumers。
PDO的传输是由事件触发的,这样的事件可以是代表一个PDO变量的变化;可以是时间的过期或者是接收到一个特定的消息。
过程数据直接在一个CAN消息中传输而不需要协议头文件。
一个PDO的长度是在0到8个字节之间。
PDOs包含在其映射参数和通信参数中。
TPDOs 和RPDOs的最大的数可以被定义为512。
一个简单的CANopen设备一般支持4个PDOs。
实际当中,对一个具体的CANopen 设备而言,其PDOs的个数由应用层或设备profile来决定的。
3.1PDO的结构—映射参数在对象词典中一个PDO由临近的条目构成。
所谓的映射参数定义了这些条目的连接。
一个映射参数通过索引、分索引和位数定义数据源。
例如:一个CAN消息最多有8个字节。
这意味着当使用一个PDO时,在一个PDO中发送8个字典的对象条目。
3.2PDO的结构—通信参数为了传输一个PDO,通信参数定义了传输的性质和CAN标识符(CAN identifier)。
PDO通信参数是在对象词典的条目(RPDOs: index 0x1400–0x15FF,TPDOs: 0x1800-0x19FF)如果允许,映射参数在数据服务对象帮助下可以通过CAN修改。
3.2 COB-ID(CAN 标识符, 分索引 1)COB-ID作为身份证明,PDO的优先权在总线入口(access)之前。
对于每一个CAN消息来说只允许有一个发送者(生产者)。
然而,对这个已存在的消息来说其允许多个接收者(消费者)。
位30=0,著对这个PDO来说一个远程发送请求(RTR)是被允许。
3.3 PDO连接的例子设备A的输入2和3被转移到设备B的输出1和3。
两个设备都支持完全映射。
传输和接收都是PDOs使用的是相同的标识符0x01C0。
因此设备B自动的接收由设备A发送的PDO。
设备B作为接收者根据映射原理分析数据:它传递第一个字节到输出1,传递第二个字节到输出3。
在另一方面,发送设备A以同样的字节存储它的输入2和3。
6、SDO数据字典作为应用层和通信层的主要数据交换媒介。
一个CANopen设备的所有数据的入口可以通过对象字典来管理。
每一个对象字典的入口可以用索引和子索引来表示其地址。
CANopen定义了所谓的SDO就是用于进入到这些入口。
通信模块基于客户-服务器框架上的数据交换。
读或写入口总是由客户来初始化并且是由服务器服务。
每一个CANopen设备必须有一个数据服务对象服务器来进入到它的对象字典。
SDO 发送需要两类不同的COB IDs (CAN identifier)。
第一个COB ID 用于从客户到服务器发送一个请求。
服务器通过第二个COB ID发送反馈信号到客户。
不同的 COB ID必须用于各自的方向以防止在CAN总线上的冲突。
通信profile 定义了COB IDs 可以用default SDP server。
每一个CANopen设备可以处理127 个SDO servers. CANopen 标准CiA DS-301 定义了不同的协议用于发送SDOs。
读OD 入口称作为上传,写入口称为下载。
一个正在进行的发送可以在终止转移服务帮助下由客户或服务器来中断。
TPDO 传输的是采样的数据,当发生触发TPDO 传输的事件时,各个TPDO 根据自己的传输类型决定是否进行采样并传输。
TPDO 的传输分为同步和异步两大类,传输类型为同步的,需要在接收到同步消息(SYNC) 时采样数据。
同步又分为周期和非周期两种。
传输类型0 为非周期传输,表示只有接收到同步消息并且规定的事件发生才进行采样数据发送,具体是在收到同步对象后,判断规定的事件是否发生,如果发生则进行采样并触发TPDO 的发送。
传输类型1~240 为周期传输,传输类型的值表示在接收到对应个数的同步消息后采样并触发TPDO 的发送,例如某个TPDO的传输类型为10,就表示此TPDO 每次接收到10 个同步消息后采样并发送数据。
传输类型252 为非周期传输,在接收到同步对象后进行采样但不发送,在接收到请求该数据的远程帧后发送。
传输类型253-255 为异步传输,定义为此三种类型的TPDO在接收到远程帧或规定的事件发生后进行传输。
7、CANopen中的协议CAN message in CANopen数据放在CAN帧中是按最小位在前的顺序存放。
NMT protocol设置节点进入操作设置节点进入停止设置节点进入预操作设置节点进入复位应用设置节点进入复位通信配置所有节点时,使用nodeID=00Node Guard Protocol主节点发送下列命令来询问节点的状态节点响应HeartBeat Protocol节点周期传送它的状态。
Bootup Protocol节点进入预操作状态时,它发送:SDO protocol所有SDO帧都具有相同的CAN帧长度:8bytes数据和rtr=0. SDO Download expedited protocol为了写0xd0d1…到服务器节点对象字典,客户机发送请求:SDO Upload expedited protocol为了读0xd0d1…到服务器节点对象字典,客户机发送请求:SDO abort protocolAbort code (hexa)0503 0000 Toggle bit not alternated0504 0000 SDO protocol timed out0504 0001 Client/server command specifier not valid or unknown 0504 0002 Invalid block size (block mode only)0504 0003 Invalid sequence number (block mode only)0504 0004 CRC error (block mode only)0504 0005 Out of memory0601 0000 Unsupported access to an object0601 0001 Attempt to read a write only object0601 0002 Attempt to write a read only object0602 0000 Object does not exist in the object dictionary0604 0041 Object cannot be mapped to the PDO0604 0042 The number and length of the objects to be mapped whould exeed PDO length 0604 0043 General parameter incompatibility reason0604 0047 General internal incompatibility in the device0606 0000 Access failed due to a hardware error0607 0010 Data type does not match, length of service parameter does not match 0607 0012 Data type does not match, length of service parameter too hight0607 0013 Data type does not match, length of service parameter too low0609 0011 Sub-index does not exist.0609 0030 Value range of parameter exceeded (only for write access)0609 0031 Value of parameter written too hight0609 0032 Value of parameter written too low0609 0036 Maximum value is less than minimum value0800 0000 General error0800 0020 Data cannot be transferred or stored to the application0800 0021 Data cannot be transferred or stored to the application because of local control0800 0022 Data cannot be transferred or stored to the application because ofthe present device state0800 0023 Object dictionary dynamic generation fails or no object dictionary is present.8、CANopen中PDO与SDO配置How to configure a PDO Transmit ?例子:----配置PDO 0x1800+n----它的COBID是0x387----该PDO始终触发传输----它必须包含数据:data X(2bytes),data Y(4bytes),按下面的顺序--data X定义在索引0x6000,子索引03--data Y定义在索引0x2010,子索引211—索引1800+n,子索引01:写COBID(4bytes)2-- 子索引02:写传输字节《t》(1byte)t=1to 0xF0:PDO 在每接到《t》个SYNC后被传输t=FD :在接收到PDO请求(rtr=1)后传输t=FF:根据事件进行传输,节点自发发送PDO3—索引1A00+n:定义第n个数据的映射子索引0:写嵌入到PDO中的数据个数(1byte),本例是,写入《2》子索引1:定义在哪里寻找嵌入的第一个数据和大小。