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

索引子索引名称说明类型属性
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状态机

  • 27
    点赞
  • 129
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
CANopen是一种基于CAN网络通信协议的开放式通信标准,它定义了设备之间的通信机制和通信对象的结构。而CIA301则是CANopen协议的物理层和数据链路层的规范标准。 CANopen CIA301的下载过程主要涉及到以下几个步骤: 首先,需要确定所需的CANopen软件包和工具。可以通过访问CANopen联盟的官方网站,下载相关的软件包和工具。确保所下载的软件包和工具与所使用的硬件设备和系统相匹配,以便能够正常使用。 接下来,打开所下载的软件包,并按照其中的说明进行安装。通常,安装界面会提供相关的选项,用户可以根据自己的需求进行选择和配置。请确保选中的安装项包括CIA301以及其他相关的模块和组件。 安装完成后,可以开始进行CANopen CIA301的配置。这通常需要通过编辑配置文件或者调用相关的命令进行完成。配置文件包含了设备的参数设置、通信对象的映射等信息。根据实际需求,进行适当的配置,以及进行必要的测试和验证。 最后,进行CANopen CIA301应用的开发和调试。根据设备的需求,编写相应的CANopen应用程序,并进行编译和调试。可使用CIA301规范中定义的对象和函数接口,实现设备间的数据交换和通信。 总结来说,CANopen CIA301的下载是通过获取和安装相关的软件包和工具,进行配置和调试,最终实现设备间的数据交换和通信的过程。在整个过程中,用户需要根据实际需求进行适当的配置和编程,以确保CANopen协议的正常使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值