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

article/2025/10/28 23:33:30

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状态机


http://chatgpt.dhexx.cn/article/yhmwJZrW.shtml

相关文章

CiA402驱动架构

原文:https://blog.csdn.net/huangxianxinalice/article/details/8706684 自version4.30以后的SSC都包含有一个简单的CiA402驱动架构的应用程序(如[1]描述)。这个应用提供了一个接口在电机控制程序和通信层之间。 下面的特性被支持 - CiA4…

计算机考研402,考研402分经验谈

考研402分经验谈 作者 小坦克 次阅读 2008-05-13 考研是个痛苦却充实的过程。尤其对我而言。 我考的是哈尔滨工业大学企业管理专业。总分402,英语82,政治80,数学三111,专业课129. 我是07级毕业生。本来应该得到系里保送研究生得机…

语音数据采集-实时语音数据可视化

1、安装依赖 pip install pyaudiopip install pylab 2、语音数据展示 import pyaudioimport numpy as np CHUNK 4096 # 每次采集的数据点数RATE 44100 # 采样频率 ppyaudio.PyAudio() # 启动类streamp.open(formatpyaudio.paInt16,channels1,rateRATE,inputTrue, …

Speech | 提取语音(数据集)的语音特征合集

本文主要讲解了提取数据集的一些主要工具,以及如何使用这些工具,包含安装以及运行命令。 提取语音(数据集)的语音特征工具(Extract audio features toolkits) • openSMILE • COVAREP • ESPNet • YAAF…

简单的语音数据集制作方案

众所周知,深度学习现阶段还是以数据为驱动,然后我们需要simsiam等的自监督算法来自动标注数据集以及特征,但是初始阶段还是回到我们的音频数据本身。 我们提取音频特征有数种方式,首先是可以直接进行音频波形的提取: …

数据集 | 基于语音(Speech)/多模态(Multimodal)的情绪识别数据集,格式及下载

本文主要介绍了一些常用的语音🗣识别数据集,文件格式以及下载地址: 目录 1.IEMOCAP Emotion Speech Database(English) 2.Emo-DB Database(German) 文件命名 对象 3.Ryerson Audio-Visual Database of Emotional Speech and Song (Engli…

历史最全开放语音/音频数据集整理分享

本资源整理了40多个语音和音频处理相关的开源数据集,分享给有需要的朋友。 资源整理自网络,源地址:https://github.com/jim-schwoebel/voice_datasets 有两种主要类型的音频数据集:语音数据集和音频事件/音乐数据集。 语音数据集…

语音识别数据集-TIMIT数据集-中文超详细解析

TIMIT数据集 前言 该文章会详细介绍TIMIT数据集的文件组成、内部文件格式以及如何使用TIMIT数据集。同时还会介绍TIMIT是如何组织数据以及划分训练集与测试集的,可以为今后自己构建数据集提供一种思路。 关键词:TIMIT数据集、语音识别、音素、人工音频…

语音增强数据集总结【持续更新】

语音增强数据集总结 语音增强的第一步一般是准备数据,包含带噪语音和纯净语音。一般这些数据都是人工合成的,以纯净语音和噪声数据为基础即可合出带噪语音信号。以下介绍一些语音增强领域常用的数据集。 纯净语音 Common Voice(2019首次发布&#xff…

DuDuTalk语音工牌:语音数据分析在销售场景的应用价值

在现今这个数字时代,企业需要更高效、更有效地沟通和合作。语音数据的收集和分析能够增加销售团队和客户之间的联系,同时提高销售闭合率。因此,了解和利用销售沟通语音数据的价值,是现代企业所必须的。 销售沟通语音数据指的是在…

VoxCeleb1 语音数据集下载

前言 VoxCeleb1 是广泛使用的 说话人识别、验证 数据集。由于是从 YouTube 视频中提取,有比较丰富的噪声。(有空补介绍)由于我只使用音频数据,这里只介绍音频数据相关的下载流程。 如果可以使用谷歌表单和翻译软件应该就可以顺利…

语音识别之语音数据预处理

Email:ht0909mail.ustc.edu.cn 原创内容,转载请标明 数据集 1.清华大学THCHS30中文语音数据集 data_thchs30.tgz http://cn-mirror.openslr.org/resources/18/data_thchs30.tgz test-noise.tgz http://cn-mirror.openslr.org/resources/18/test-noi…

中文语音识别数据集总结

目录 OpenSLR国内镜像1.Free ST Chinese Mandarin Corpus2.Primewords Chinese Corpus Set 13.爱数智慧中文手机录音音频语料库(Mandarin Chinese Read Speech )4.THCHS305.ST-CMDS6.MAGICDATA Mandarin Chinese Read Speech Corpus7.AISHELL7.1 AISHELL…

语音数据集整理

语音数据集整理 目录 1.Mozilla Common Voice. 2 2.翻译和口语音频的大型数据库Tatoeba. 2 3.VOiCES Dataset 3 4. LibriSpeech. 4 5.2000 HUB5 English:... 4 6.VoxForge:... 4 7.人类语音的大规模视听数据集 (VoxCeleb)…

语音数据集

最大的语音数据下载网站: openslr.org vox-celeb说话人识别数据集:无法下载 OpenSpeaker之声纹数据整理 - 知乎本文是OpenSpeaker系列的第二篇文章,全系列可参考这篇文章或者文末的专栏: 蘑菇炖提莫:OpenSpeaker&…

Ubuntu 16.04网络配置

A lazy youth, a lousy age. 1.用root账号进行登录。Files–>Computer–>etc–>network–>interfaces 2.使用以下命令可查看网卡编号、IP地址、子网掩码。 ifconfig3.使用以下命令可查看网关号。 route4.最后,在interfaces中填写配置信息。 2021.10…

Ubuntu20配置网络 ssh

Ubuntu20配置网络 ssh Ubuntu20的网络配置文件位置: /etc/netplan/01-network-manager-all.yaml确定要配置的地址配置VMnet8地址设置虚拟网络地址配置ubuntu地址 Ubuntu20的网络配置文件位置: /etc/netplan/01-network-manager-all.yaml 确定要配置的地址 VMnet8: 192.168.12…

Ubuntu 14.04 网络配置

VMware中网络设置有三种,分别是:NAT、桥接和Host-only。本文仅说明NAT连接,配好后可让虚拟机上网,操作简单图文并茂。 1、首先打开虚拟机的设置 2、设置成NAT模式 3、打开虚拟网络编辑器 4、打开权限 5、设置虚拟网络编辑器为…

Ubuntu如何配置桥接网络

1、Ubuntu的网络配置分类 Ubuntu的主要三种网络配置 (1)桥接模式:Ubuntu和主机各有一个IP地址。(重点) (2)NAT模式:Ubuntu和主机共享IP地址。 (3)主机模式…

VMware虚拟机Ubuntu连接网络设置

VMware虚拟机Ubuntu连接网络设置 前言 学校发了新电脑不想装双系统,装了VMware虚拟机,但是在联网是遇到了困难。在网上找了方法连接成功。现在做一下记录。 方法 一般虚拟机联网方法有两种:NAT 和 桥接。 参考 知乎:Vmware虚拟…