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

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 ):

索引 子索引 名称 说明 类型 属性
1000 0 设备类型 支持CIA301协议 u32 RO
1001 0 错误状态 u8 RO
1003 0 - x 错误字段 最近几次错误 ARRAY RO
1005 0 同步报文 COB-ID 标识符 u32 RW
1008 0 设备名称 Vis-string RO
1009 0 硬件版本 Vis-string RO
100A 0 软件版本 Vis-string RO
1010 0 保存参数 子索引数目 u8 RO
1-x 保存通讯参数、自定义参数、设备参数,全部参数 u32 RW
1011 0 恢复出厂设置 子索引数目 u8 RO
1-x 恢复通讯参数、自定义参数、设备参数,全部参数 u32 RW
1014 0 EMNC紧急报文COB-ID标识符 u32 RW
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
NMT 0000 0H
SYNC 0001 80H
TIME STAMP 0010 100H
EMGY 0001 81H-FFH
PDO1(tx) 0011 181H - 1FFH
PDO1(rx) 0100 201H - 27FH
PDO2(tx) 0101 281H - 2FFH
PDO2(rx) 0110 301H - 37FH
PDO3(tx) 0111 381H - 3FFH
PDO3(rx) 1000 401H - 47FH
PDO4(tx) 1001 481H - 4FFH
PDO4(rx) 1010 401H - 47FH
SDO(tx) 1011 581H - 5FFH
SDO(rx) 1100 601H - 67FH
Heart Beat 1110 701H - 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 15 bit 14 bit 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 15 bit 14 bit 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 状态机

CANOPEN使用心得1-cia301、cia402简单提要_第1张图片
  状态说明

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

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

你可能感兴趣的:(can,canopen,嵌入式)