CANOPEN使用心得1-cia301、cia402简单提要

本文概述了CANopen协议的基本特点,重点介绍了CIA301的报文结构、对象参数,以及CIA402设备控制协议中涉及的电机控制参数和状态机。CIA301用于网络架构和错误处理,CIA402则专用于设备控制,包括故障码、控制字和状态字等关键元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

canopen简单提要

can总线

   can特点:多主控制、高达1M通讯速度、通讯校验、 错误检测处理及恢复等,can总线通讯接口规定了CAN协议的物理层和数据链路层功能。

canopen协议

   canopen协议属于应用层协议,是由一系列子协议组成,分为通讯子协议和设备子协议,通讯子协议例如CIA 301子协议对canopen网络的架构进行了规范 ,针对某些特定的对象字典中的数据对象规定了相应的功能。设备子协议目前在电机控制中主要使用CIA 402设备子协议,CIA 402子协议定义了电机控制相关的数据对象,状态机制,控制模式等

cia 301子协议简单提要

   CIA 301 定义的范围索引范围1000H ~ 1FFFH,其中在DS 301文档中有详细介绍,在电机控制中使用较多的参数有以下(简单摘出部分参数,具体参数可以参考 DS 301 ):

索引子索引名称说明类型属性
10000设备类型支持CIA301协议u32RO
10010错误状态 u8RO
10030 - x错误字段最近几次错误ARRAYRO
1005 0 同步报文 COB-ID 标识符 u32RW
1008 0 设备名称 Vis-stringRO
1009 0 硬件版本 Vis-stringRO
100A 0 软件版本 Vis-stringRO
10100保存参数子索引数目u8RO
1-x 保存通讯参数、自定义参数、设备参数,全部参数u32RW
10110恢复出厂设置子索引数目u8RO
1-x 恢复通讯参数、自定义参数、设备参数,全部参数u32RW
1014 0 EMNC紧急报文COB-ID标识符 u32RW
1017 0 生产者心跳时间间隔(ms) u16 RW
1018 0 制造商信息 子索引u8 RO
1 供应商id u32 RO
2 供应商产品号 u32 RO
1200 0 服务器端SDO1信息 子索引u8 RO
1 COB-ID(从接收) 600h + Node_ID u32 RO
2 COB-ID(从发送) 581h + Node_ID u32 RO
1400 0 RPDO1参数 子索引u8 RO
1 COB-ID(RPDO1) 200h + Node_ID u32 RO
2 传输类型 *具体可以看ds301详细介绍(P106) u32 RW
3 抑制时间 not used for RPDO u32 RW
4 保留 u32 RO
5 事件定时器 not used for RPDO u32 RW
1401 0 RPDO2参数 子索引u8 RO
1 COB-ID(RPDO2) 300h + Node_ID u32 RO
2 传输类型 *具体可以看ds301详细介绍(P106) u32 RW
3 抑制时间 not used for RPDO u32 RW
4 保留 u32 RO
5 事件定时器 not used for RPDO u32 RW
1402 0 RPDO3参数 子索引u8 RO
1 COB-ID(RPDO3) 400h + Node_ID u32 RO
2 传输类型 *具体可以看ds301详细介绍(P106) u32 RW
3 抑制时间 not used for RPDO u32 RW
4 保留 u32 RO
5 事件定时器 not used for RPDO u32 RW
1403 0 RPDO4参数 子索引u8 RO
1 COB-ID(RPDO4) 500h + Node_ID u32 RO
2 传输类型 *具体可以看ds301详细介绍(P106) u32 RW
3 抑制时间 not used for RPDO u32 RW
4 保留 u32 RO
5 事件定时器 not used for RPDO u32 RW
1404-15FF X RPDOX参数 DISABLE -- --
1600 0 RPDO1映射 子索引u8 RO
1 RPDO1-映射1一般是60400010,控制字 u32 RW
2 RPDO1-映射2 一般是607a0020,目标位置 u32 RW
3 RPDO1-映射3 一般是60600008,控制模式,有时可以不需要 u32 RW
4-8 RPDO1-映射4 注意单个rpdo总字节不要超过8byte u32 RW
1601-17ff X RPDOX映射 最多使用到1603,其他的disable -- --
1800 0 TPDO1参数 子索引u8 RO
1 COB-ID(TPDO1) 180 + Node_ID u32 RW
2 传输类型 *具体可以看ds301详细介绍(P106) u32 RW
3 抑制时间 u32 RW
4 保留 u32 RO
5 事件定时器 u32 RW
1801-19FF X TPDOX参数 最多使用到1803,其他的disable,注意COB-ID号要跟着180x的‘x’ 变为 180 + x00 -- --
1A00 0 TPDO1映射 子索引u8 RO
1 TPDO1-映射1一般是60410010,控制字 u32 RW
2 TPDO1-映射2 一般是60640020,目标位置 u32 RW
3 TPDO1-映射3 一般是60610008,控制模式,有时可以不需要 u32 RW
4-8 TPDO1-映射4-8 注意单个Tpdo总字节不要超过8byte u32 RW
1A01-1Bff X TPDOX映射 最多使用到1A03,其他的disable -- --
cia 301对象参数简单解释
  1. 报文格式(以一帧SDO数据为例)
601 2B 40 60 00 00 00 00 00
COB-ID Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7
  在CANOPEN协议中,规定COB-ID的11位中包含4位的功能吗和7位的节点地址,节点地址范围 1-127.   CANOPEN 中包含以下几种报文,及其功能码如下:
对象功能码COB-ID
NMT00000H
SYNC000180H
TIME STAMP0010100H
EMGY000181H-FFH
PDO1(tx)0011181H - 1FFH
PDO1(rx)0100201H - 27FH
PDO2(tx)0101281H - 2FFH
PDO2(rx)0110301H - 37FH
PDO3(tx)0111381H - 3FFH
PDO3(rx)1000401H - 47FH
PDO4(tx)1001481H - 4FFH
PDO4(rx)1010401H - 47FH
SDO(tx)1011581H - 5FFH
SDO(rx)1100601H - 67FH
Heart Beat1110701H - 77FH
  1. 服务数据对象(SDO)
      SDO报文主要是访问设备对象字典,处理实时性不高的数据,SDO 通讯方式基于客户端/服务器模型,发送的报文会收到接收者的应答,访问者为客户端,被访问的设备为服务器,传输类型分为三种快速SOD传输,分段SDO传输,块传输。
      根据SDO upload协议,根据访问的对象字典数据类型,分为SDO upload expedited(小于4个字节)和SDO upload normal(大于4个字节,一般访问string或者文件传输可能用到) 两种;
    可以参考: 《CANopen原理–SDO(upload)》

  2. 过程数据对象(PDO)
      PDO报文主要用于处理实时性要求较高的数据,通讯方式基于生产者/消费者模型,数据从一个设备产生者发送到另一个或者多个设备,无需确认是否收到。数据传输范围1-8个字节。可以通过PDO的通讯参数(例如:1400)和映射参数(例如:1600)的配置完成接收或者发送.

  3. 网络管理对象(NMT)
      NMT 基于主从结构,主站可以通过NMT报文对从站进行状态切换控制。canopen从设备有 初始化状态,启动状态,预运行状态和运行状态。从设备上电时进入初始化状态,初始化结束进入启动状态,并上传启动报文,之后进入预运行状态。

  4. 同步对象(SYNC)
      同步对象为网络提供基准时钟用来同步can网络中的设备,SYNC同样属于生产者/消费者模型,网络中所有设备都可以接收SYNC,SYNC的COB-ID为80H,在上述表格中ID较小,具有很高的优先级,所以该报文尽可能的小,一般不带数据。

  5. 紧急对象(EMCY)
      紧急报文一般上传设备自身的内部故障,属于生产者/消费者模型,网络中的设备都可以消费该报文。紧急报文数据为8字节,其中字节0和1,为错误码,字节2 为错误寄存器,存放在1001h单元中,字节3-7,可以由厂家自定义的错误类型。

CIA 402 设备控制协议简单提要

  CIA 402协议中定义了运动控制相关的一些对象参数,状态机,和一些运行模式;

CIA 402对象字典中的部分参数

  CIA 402中规定了一系列完整的电机控制参数,这里简单提取了部分常用的参数(不包含探针功能)

索引子索引名称说明类型属性
603f 0 故障码 用于显示当前电机控制相关故障 u16 RO
6040 0 控制字 通过控制字的切换可以切换电机控制的状态机 u16 RW
6041 0 状态字 显示当前的状态机以及电机运行的状态 u16 RO
6060 0 控制模式 可以控制电机进行回原点,目标速度,目标位置,同步速度,同步位置,同步力矩等模式 u8 RW
6061 0 模式显示 当前的运行模式 u8 RO
6062 0 命令位置 命令位置模式需要用到,单位Pulse i32 RW
6064 0 当前的运行位置 一般单位是pulse i32 RO
606C 0 当前的运行速度 单位可以是r/min或者pulse/s 或者其他速度单位 i32 RO
607A 0 目标位置 同步位置模式需要用到目标位置 i32 RW
6081 0 目标位置下的最大速度 注意是位置模式下 u32 RW
6083 0 加速度 有些厂家认为该加速度为加速时间单位ms;有些则认为是加速度单位pulse/s^2,都可以 u32 RW
6084 0 减速度 有些厂家认为该减速度为减速时间单位ms;有些则认为是加速度单位pulse/s^2,都可以 u32 RW
60FF 0 最大速度(速度模式) 单位pulse/s 或者 r/min都可以 i32 RW
6098 0 回原点模式 原点加限位,原点...回原点模式 u8 RW
6099 0 子索引 回原点速度 u8 RW
1 回原点速度(高速) 单位pulse/s 或者 r/min都可以 u32 RW
2 回原点查询速度(低速) 单位pulse/s 或者 r/min都可以 u32 RW
609A 0 回原点加减速度 有些厂家认为该减速度为减速时间单位ms;有些则认为是加速度单位pulse/s^2,都可以 u32 RW
607C 0 回原点补偿值 单位pulse I32 RW
60FD 0 输入端子状态 有些厂家认为该减速度为减速时间单位ms;有些则认为是加速度单位pulse/s^2,都可以 u8 RW
对象字典参数简述(可以参考cia 402官方手册)
  1. 6040控制字参数(官方手册P49)
bit 15bit 14bit 13 bit 12 bit 11 bit 10 bit 9 bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
厂家自定义 保留 停止 复位错误 特殊运行模式 使能 急停 上电 开机
  这里特殊运行模式,在目标位置模式中,bit4会用做启动指令,bit5用作切换目标位置指令,bit6用作绝对位置,相对位置切换功能;
  1. 6041状态字(官方手册P50)

    bit 15bit 14bit 13 bit 12 bit 11 bit 10 bit 9 bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    厂家自定义 特殊的运行模式 内部限制行为 目标到达 远程参数 厂家自定义 报警 开机去使能 急停 上电使能 故障 运行使能 开机 准备开机

  状态字会根据系统的当前状态进行状态机切换。

  1. 6060 运行模式
    -1 - - 128 9-127 8 7 6 5 4 3 2 1 0
    厂家自定义运行模式 保留 同步位置模式* 插入位置模式 回原点模式 保留 力矩模式 速度模式 同步速度模式 位置模式 保留
  *同步位置模式在官方CIA 402文档中并没有提到,但是目前在ethercat中应用较多,故在这里也提出来;

CIA 402 状态机

CIA 402状态机
  状态说明

状态名说明
Not Ready to Switch on设备电源接通,已经初始化完毕,自检ok
Switch on DisabledCANopen通讯开始,可以利用SDO通讯服务对设备进行参数设置
Ready to Switch on准备阶段,可以继续设置参数
Switched on设备已经准备好,输出级电压在切换下个状态前接通,还不能执行电机运行
Operation Enable电机使能,可以按照运行模式执行动作
Quick Stop Active急停
Fault Reaction Active报警发生,电机停机,但是此时电机仍然使能
Fault错误发生

这篇博客暂时先写到cia 402状态机

含以下CANopen 协议及子协议,请选择 DS301 规范了对应用层、通信子协议进行了全面描述外,还为特定的应用提供了扩展架构,定义了更多规则和特殊通信对象。例如:定义 了网络管理对象(节点保护,寿命保护),并定义了使用这些对象的详细规则,是包含通信接口、应用过程以及对象字典的CANopen设备的基本 模型 DS301 应用层 DS302 CANopen 管理结构与可编程驱动器 DS303 1接线接头说明,2国际单位的表示和前缀,3指示灯说明(1,2,3) DS304 网络安全结构及相关说明 DS305 无 DS306 EDS电子数据表说明 DS308 性能测量说明 DS309 TCPIP(1,2,3) 1-通用原则与服务 2-Modbus/TCP 影射 3-ASCII码影射 EDS 文件规范 设备子协议: 通常命名编号为DS4XX DS401 通用IO模块 DS402 电机驱动器 DS404 闭环测控仪器 DS405 可编程设备 DS406 旋转与线性编码器 DS408 无 DS410 角度测量仪 DS412 医疗器械(1,2,6),1--通用定义,2---X光准直仪,3--x光发生器,4--疾人表配置,5--X光标准,6--剂量测量系统 DS414 织布机驱动(1,2) 1--通用定义 2--馈线 DS417 升降控制器 DS418 电池驱动模块 DS419 电池充电器 DS420 挤压设备(1,2,3,4,5,6) DS422 市政车辆 DS801 CANopen Automactic bit-rate detection DS802 CANopen CAN remote frames 远程帧-避免使用 DS808 CANopen CiA 444 应用注释和实施指南 CANopen CiA 444 application note and implementation guideline DS201207 DSV1.1 工业应用的应用层
含以下CANopen 协议及子协议,请选择 DS301 规范了对应用层、通信子协议进行了全面描述外,还为特定的应用提供了扩展架构,定义了更多规则和特殊通信对象。例如:定义 了网络管理对象(节点保护,寿命保护),并定义了使用这些对象的详细规则,是包含通信接口、应用过程以及对象字典的CANopen设备的基本 模型 DS301 应用层 DS302 CANopen 管理结构与可编程驱动器 DS303 1接线接头说明,2国际单位的表示和前缀,3指示灯说明(1,2,3) DS304 网络安全结构及相关说明 DS305 无 DS306 EDS电子数据表说明 DS308 性能测量说明 DS309 TCPIP(1,2,3) 1-通用原则与服务 2-Modbus/TCP 影射 3-ASCII码影射 EDS 文件规范 设备子协议: 通常命名编号为DS4XX DS401 通用IO模块 DS402 电机驱动器 DS404 闭环测控仪器 DS405 可编程设备 DS406 旋转与线性编码器 DS408 无 DS410 角度测量仪 DS412 医疗器械(1,2,6),1--通用定义,2---X光准直仪,3--x光发生器,4--疾人表配置,5--X光标准,6--剂量测量系统 DS414 织布机驱动(1,2) 1--通用定义 2--馈线 DS417 升降控制器 DS418 电池驱动模块 DS419 电池充电器 DS420 挤压设备(1,2,3,4,5,6) DS422 市政车辆 DS801 CANopen Automactic bit-rate detection DS802 CANopen CAN remote frames 远程帧-避免使用 DS808 CANopen CiA 444 应用注释和实施指南 CANopen CiA 444 application note and implementation guideline DS201207 DSV1.1 工业应用的应用层
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值