机器人开发--CanOpen

news2024/11/25 2:35:31

机器人开发--CanOpen

  • 1 介绍
    • 1.1 概述
    • 1.2 应用
  • 2 历史发展
  • 3 协议
    • 3.1 协议细节(来自CiA文档)
    • 3.2 协议框架
      • OSI 模型
      • 服务
      • COB-ID
      • NMT
      • SYNC
      • 紧急事件对象 (EMCY)
      • 服务数据对象 (SDO)
        • SDO 下载
        • SDO 上传
        • SDO 加速写传输报文
      • 过程数据对象PDO
    • 3.3 应用细节(伺服电机)
      • 通信(设置与连接)
      • 调试运行
      • 控制模式
      • CiA 402 电源状态机
      • 相关参数
      • 运动范围限制
      • 工作模式
        • 标准定位工作模式
        • 速度工作模式
        • 标准速度工作模式
        • 找零工作模式
        • 插补位置模式工作模式
        • 周期同步定位工作模式
        • 周期同步速度工作模式
        • 脉冲方向工作模式
      • 数字输入和输出
    • 3.3 应用细节(IO)
    • 3.4 对象目录说明
  • 4 组织
    • 4.2 CANopen Solutions
    • 4.3 nanotec 纳诺达克
  • 参考

1 介绍

1.1 概述

CANopen是一种架构在控制局域网络(Controller Area Network, CAN)上的高层通信协议,包括通信子协议及设备子协议,常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。
CANopen由非营利组织CiA(CAN in Automation)进行标准的起草及审核工作,基本的 CANopen 设备及通讯子协定定义在 CAN in Automation (CiA) draft standard 301中。针对个别设备的子协定以 CiA 301 为基础再进行扩充。如针对 I/O 模组的 CiA401 及针对运动控制的 CiA402。

1.2 应用

  • 机器控制
  • 工厂自动化
  • 实验室自动化
  • 交通运输
  • 多功能车
  • 楼宇自动化
  • 医疗系统

2 历史发展

  • 1994年:CiA发布了CANopen规范的第一个版本:CiA 301是最成功的Esprit研究项目之一。
  • 1997年:CiA发布了用于驱动和运动控制的CiA 402 CANopen设备配置文件。该配置文件规范了伺服驱动器变频器步进电机控制器的功能行为。介绍了几种操作模式及相应的配置参数。
  • 2001年:CiA 304 (CANopen Safety)规范发布,同时在EN 50325-5中标准化。
  • 2003年:CiA 417 (CANopen电梯控制系统应用概要)规范系列发布。它也称为CANopen Lift,为不同的虚拟设备指定通信接口。
  • 2009年:CiA组织了第一届CANopen Lift插件大赛。这些事件的目的是检查和提高CANopen设备的互操作性。
  • 2017年:CiA 1301 (CANopen FD应用层和通信配置文件)规范公布。CANopen FD利用CAN FD数据链路层提供更高的比特率和更大的有效负载(每帧高达64字节)。此外,CiA还发布了CiA 601 (CAN FD节点和系统设计)系列,包括规范、指南和建议。
  • 2019年:为了改善CAN FD网络的使用,CiA开发了SIC(信号改善能力)收发器规范,该规范已记录在CiA 601-4规范中。
  • 2020: CiA 510规范指定了sdo和EMCY等CANopen协议到J1939参数组(pg)的映射。结合将特定于概要文件的pdo映射到pg,这使得也可以在J1939应用层上使用CiA概要文件(CiA 4XX系列)。
  • 2021年:另一个里程碑是CAN XL的发展,这是第三代CAN数据链路和物理层。揭示了CiA 610-1(数据链路层和物理编码子层要求)和CiA 610-3(物理介质附件子层要求)规范。CAN XL帧格式允许数据字段的长度从1字节到2 048字节。
  • 2022年:6月初,中央情报局以为期两天的面对面会议的方式庆祝其30岁生日。该项目包括CiA技术小组(CAN XL和CAN FD Light)的最新CAN发展,从海事电子到牙医椅的应用,以及CiA规范的未来。
    在这里插入图片描述

3 协议

3.1 协议细节(来自CiA文档)

地址:https://www.can-cia.org/groups/specifications/
基本的 CANopen 设备及通讯子协定定义在 CAN in Automation (CiA) draft standard 301中。针对个别设备的子协定以 CiA 301 为基础再进行扩充。如针对 I/O 模组的 CiA401 及针对运动控制的 CiA402。

  • CiA 301 CANopen 应用层和通信配置文件 - 应用层和通信配置文件,日期:2011 年 2 月 21 日,版本:4.2.0
  • CiA 402 驱动和动作控制设备配置文件 - 第 1 部分:一般性定义,日期:2007 年 12 月 14 日,版本:3.0.0
  • CiA 402 驱动和动作控制设备配置文件 - 第 2 部分:操作模式和应用数据,日期:2007 年 12 月 14 日,版本:3.0
  • CiA 402 驱动和动作控制设备配置文件 - 第 3 部分:PDO 映射,日期:2007 年 12 月 14 日,版本:3.0
  • CiA 306 电子设备描述 - 第 1 部分:电子数据手册和设备配置文件,日期:2012 年 2 月 8 日,版本:1.3.5
  • CiA 305 底层设置服务 (LSS) 和协议,日期:2013 年 5 月 8 日,版本:3.0.0

3.2 协议框架

OSI 模型

在这里插入图片描述

服务

在这里插入图片描述
在这里插入图片描述

COB-ID

在这里插入图片描述

NMT

NMT 服务可用于启动、开始、监控、重置或停止 CANopen 设备。
这样,控制器即可遵循下图所示的状态图。只有在打开后或通过发送“重置通信”或“重置节点”NMT 命令才能达到“初始化”状态。 初始化之后可自动激活“预操作”状态。
在这里插入图片描述
nmt 消息的 CAN-ID 为 0。消息长度始终为两字节,结构如下:
在这里插入图片描述
的值可为 00h;在这种情况下,NMT 命令适用于 CAN 总线(广播)上的所有设备。如果使用了非零数字,则只对具有相应节点 ID 的设备进行寻址。

SYNC

同步对象用于同时验证总线上所有设备的 PDO 数据的时间。同步消息的结构如下:
在这里插入图片描述
对于 SYNC 操作,通常为 RX-PDO 使用传输模式(传输类型)0(数据对下次 SYNC 有效);对于 TX-PDO,则选择 1 到 240 的传输模式。
接收到 SYNC 消息后,会有一个判定时间(“同步判定时间”),在此时间范围内可以发送和接收 PDO 消息;达到此判定时间后,所有设备都必须停止发送 PDO。可在对象 1007h:00h 中设置“同步判定时长”(毫秒)。

  • 典型 CAN-SYNC 操作分为四个阶段:
  • 接收 SYNC 消息。从而将之前接收到的 RX-PDO 数据复制到对象目录(如有)中。此时,也会对数据进行采样,并将数据复制到 TX-PDO,同时启动这些消息的发送。
  • 然后通过总线上的所有从站发送 TX-PDO。
  • 随后,通过 CANopen 主站发送 PDO。达到“同步判定时长”后,不再允许发送 PDO。
  • “同步判定时间”再次关闭后,SDO 消息可进行最新交换。
    在这里插入图片描述

紧急事件对象 (EMCY)

只要控制器中发生不是由 SDO 访问引起的错误,就会发送“紧急事件”类型的消息。该服务未经确认,通过 CAN-ID 80h+节点 ID 发送。
紧急事件消息的结构如下:
在这里插入图片描述

服务数据对象 (SDO)

“服务数据对象”允许对对象目录进行读取或写入访问。
将对象目录的所有者称为“服务器”;将想要请求或写入数据 CAN 节点称为“客户端”。“上传”是指从对象目录读取对象的值;“下载”是指将值写入对象目录。
在这里插入图片描述

SDO 下载

用于向服务器的对象目录写入数据的加速 SDO 消息结构如下:
在这里插入图片描述在这里插入图片描述

SDO 上传

用于从对象目录中读取对象的 CAN 消息的结构如下:
在这里插入图片描述
在这里插入图片描述

SDO 加速写传输报文

对于不高于 4 个字节的读写, 采用加速 SDO 传输。 按照读写方式及内容数据长度的不一致,传输报文各不相同。加速 SDO 写报文如下表:
在这里插入图片描述

过程数据对象PDO

过程数据对象 (PDO) 用来传输实时的数据,是 CANopen 中最主要的数据传输方式。由于 PDO 的传输不需要应答,且 PDO 的长度可以小于 8 个字节,因此传输速度快。
PDO 的映射配置遵循流程如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照接收与发送的不同,PDO 可分为 RPDO 和 TPDO。 PDO 由通信参数和映射参数共同决定最终传输的方式及内容。 本伺服驱动器使用了 4 个 RPDO 和 4 个 TPDO 来实现 PDO 的传输,相关对象列表如下:
在这里插入图片描述

3.3 应用细节(伺服电机)

https://us.nanotec.com/products/manual/PD4E_CANopen_ZH/pd4e%2Fintroduction.html?cHash=d3b43174da641a1d53fca9c28d935948

通信(设置与连接)

  • 设置节点和波特率
  • 使用 CAN- 和 CAN+ 电缆将控制器连接到 CANopen 主站。检查 CAN-GND 的连接,根据实际调整终端电阻。
  • 可以通过 6041 状态字来测试通信连接状态。

调试运行

  • 确定编码器线数、倍频、减速比等参数
  • 设置工作模式(6060)、速度参数(6042)、控制字(6040)等

控制模式

没有反馈的系统控制模式称为开环,有反馈的系统控制模式称为闭环。在闭环控制模式中,无论反馈信号来自电机本身还是来自受影响进程,最初都是无关紧要的。
对于有反馈的控制器,会不断地将测量的控制变量(实际值)与设置点(设置值)进行比较。如果这些值之间存在偏差,控制器将根据规定的控制参数重新调节。
在这里插入图片描述
除物理反馈系统(如通过编码器或霍尔传感器)以外,还使用基于模型的反馈系统,统称为无传感器系统。这两种反馈系统也可组合使用,从而进一步提高控制质量。
在这里插入图片描述
开环优化:
开环模式下可能会发生共振;在低负载时尤其容易受共振影响。实践经验表明,根据不同应用,多种措施均能够大幅减少共振:

  • 降低或增大电流,请参见对象 2031h(最大电流)。过多的转矩储备会助长共振。
  • 降低或增大工作电压,同时考虑产品特定范围(具有足够的转矩储备)。请参见产品数据表查看允许的工作电压范围。
  • 通过对象 3210h:09h (I_P) 和 3210h:0Ah (I_I) 优化电流控制器的控制参数。
  • 根据所选控制模式调整加速度、减速度和/或目标转速:

闭环:
在这里插入图片描述

CiA 402 电源状态机

在对象 6040h(控制字)中请求状态更改。
在对象 6041h(状态字)中查看状态机的实际状态。

相关参数

在这里插入图片描述

运动范围限制

数字输入可用作限位开关。控制器也支持软件限位开关。
在这里插入图片描述
限位开关后即是公差带的起点。在此公差带内可自由运动。可在对象 2056h 中设定公差带的长度。
如果电机进入禁止范围,则控制器将触发立即停止,并切换到故障状态。
软件限位开关
控制器会考虑软件限位开关(607Dh(软件位置限制))。通过 607Dh 限制目标位置 (607Ah);要求位置 (6062h) 不得大于 607Dh 中的限值。如果设置限位开关时,电机处于允许范围以外,则仅接受允许范围方向的行程命令。

工作模式

标准定位工作模式

对象 6060h(操作模式)设定值“1”。
对象 6083h(标准加速度)、6084h(标准减速度)和 6081h(标准速度)。
标准定位模式用于移至最后目标位置的相对位置或绝对位置(最后参考位置)。在运动过程中,会考虑转速、启动加速度/制动减速度以及加加速的限值。

速度工作模式

对象 6048h(速度加速度)、6049h(速度减速度)和 6042h(目标速度)。

标准速度工作模式

对象 6083h(标准加速度)、6084h(标准减速度)和 6081h(标准速度)。

找零工作模式

对象 609Ah(找零加速度)、6099h:01h(搜索开关时的速度)和 6099h:02h(搜索零点时的速度)。

插补位置模式工作模式

可通过高级控制器影响加速和减速斜坡。

周期同步定位工作模式

可通过外部“定位规定/时间单位”目标影响加速和减速斜坡。

周期同步速度工作模式

可通过外部“定位规定/时间单位”目标影响加速和减速斜坡。

脉冲方向工作模式

通过对象 2057h(脉冲方向乘法器)和 2058h(脉冲方向除法器)更改步进分辨率。通过调整脉冲频率优化加速/减速斜坡,以尽快传递共振范围。

数字输入和输出

控制器的软件为各个对象中的输入和输出分配两个位(如 60FDh Digital Inputs 或 60FEh Digital Outputs):

3.3 应用细节(IO)

3.4 对象目录说明

https://us.nanotec.com/products/manual/PD4E_CANopen_ZH/object_dictionary%2Fobject_dir_intro.html?cHash=d3b43174da641a1d53fca9c28d935948
在这里插入图片描述
CANOPEN使用心得1-cia301、cia402简单提要

4 组织

4.2 CANopen Solutions

https://www.canopensolutions.com/
在这里插入图片描述

4.3 nanotec 纳诺达克

https://us.nanotec.com/
https://us.nanotec.com/products/manual/PD4E_CANopen_ZH/pd4e%2Fintroduction.html?cHash=d3b43174da641a1d53fca9c28d935948
在这里插入图片描述

参考

1、官方–CANopen
2、百科–CANopen
3、CanOpen通信----PDO与SDO
4、CanOpen学习记录
5、CanOpenSolutions
6、nanotec–CANOPEN
7、20210714学习手记 CANopen 协议
8、学习CANopen — [5] SDO
9、OSI七层模型、CAN、CiA、CANopen、CiA301CiA402和EtherCAT介绍
10、CANOpen轻松入门—对象字典OD
11、CANOPEN使用心得1-cia301、cia402简单提要
12、CAN总线与CANOPEN协议入门
13、canopen报文格式,通信及映射参数
14、CANopen版本控制产品修改映射PDO对象方法
15、从CAN到CANOpen——准入门大全(三)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/102230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于springboot+mybatis+mysql+layui员工工资管理系统

基于springbootmybatismysqllayui员工工资管理系统一、目的二、需求功能划分系统结构设计软件界面截图三、系统开发配置一、目的 ​ 运用JavaEE企业级系统开发、数据库系统、面向对象技术及UML以及软件需求工程所学专业知识,解决所设定业务领域软件开发中的需求分析…

2021一带一路暨金砖大赛之企业信息系统安全赛项AWD_writeup

更多详情私聊博主 订阅专栏解锁更多~~觉得不错麻烦点个赞~~~ AWD_writeup 主要考点:后门账户、数据库操作、cve漏洞、后门漏洞、自动化攻击 1、解法一 ssh弱口令账户 用户登录后cat /etc/passwd 发现系统存在额外账户 使用msf进行ssh爆破尝试 msfconsole use auxiliary/sca…

洛谷 最长公共子序列

LCS 题面翻译 题目描述: 给定一个字符串 sss 和一个字符串 ttt ,输出 sss 和 ttt 的最长公共子序列。 输入格式: 两行,第一行输入 sss ,第二行输入 ttt 。 输出格式: 输出 sss 和 ttt 的最长公共子序…

程序的动态链接(4):动态链接信息

前言 操作系统在执行动态链接的可执行文件时,会首先加载动态链接器,然后由动态链接器根据保存在可执行文件中的动态链接信息,完成依赖动态库的加载、符号解析以及重定位等工作。这些动态链接信息包括但不限于: 动态链接器路径&a…

联邦调查局和国际执法合作加强打击非法DDS攻击

©网络研究院 美国司法部在12月14日查封了48个出售“booter”或“stresser”服务的域名,这些服务使非技术用户可以轻松、廉价地发起强大的分布式拒绝服务(DDoS)攻击,旨在离线攻击目标。 司法部还指控六名美国男子犯有计算机罪,他们涉嫌…

基于simulink的PV光伏发电MPPT仿真

up目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 由于人口增加、城市化和工业化,能源需求与日俱增,可再生能源是我们传统能源的替代品,因为传统能源是有限的,而且会过期。 太阳能、风能和水能等清洁能源变得越来越…

老生常谈React的diff算法原理-面试版

第一次发文章 not only(虽然)版式可能有点烂 but also (但是)最后赋有手稿研究 finally看完他你有收获 diff算法:对于update的组件,他会将当前组件与该组件在上次更新是对应的Fiber节点比较,将比…

关于2022年国内软件质量调查问卷的一些感悟与收获

📋前言 1️⃣关于2022年国内软件质量调查主题征文活动 CSDN《2022年国内软件质量调查》正式开启,我们诚邀各位博主,特别是测试领域的各位技术er参与调查,并围绕主题,撰写《我填写“2022年国内软件质量调查问卷”的感想…

刷了一个月面试题,终于拿到了字节跳动的offer

一面 自我介绍项目中的监控:那个监控指标常见的有哪些?微服务涉及到的技术以及需要注意的问题有哪些?注册中心你了解了哪些?consul 的可靠性你了解吗?consul 的机制你有没有具体深入过?有没有和其他的注册…

(二)fiber的基本认识

上一篇文章我们了解了react新老结构的差异以及存在的缺点,其中react的解决方案就是采用fiber架构和添加Schedule模块。 ✍️:Schedule模块的主要工作是任务的调度,负责调度不同优先级任务的执行时机,这个我们后面再讲,…

Ardor公链生态与Jelurida产业区块链布局

Ardor公链 Ardor公链(ARDR)基于NXT公链,并于2018年1月1日推出了多链架构,旨在克服单链本质上的局限性。根据Ardor平台的白皮书,其主要目标是: 解决最终用户必须拥有作为手续费(Gas费&#xff…

FineReport复杂表格软件- 相对层次坐标

1. 概述 相对层次坐标是用来描述目标单元格和当前单元格之间的位置关系的表达式,概念图如下图所示: 说明: 参数 说明 Cellx 表示需要返回结果的单元格 Celly 表示位移时参考的单元格 z 代表相对位移的位置 注:相对后移需要…

【Linux】必须掌握的Linux常见指令分类讲解

目录一.Linux下的文件树二.工作目录切换命令1.ls——显示当前路径下的文件和目录2.pwd——显示当前目录的绝对值路径3.cd——切换至指定目录三.文件目录管理命令1.touch——创建空文件2.tree——树状打印目录3.mkdir——创建目录4.rmdir 和 rm ——删除目录5.cp——拷贝文件或目…

Python编程小白入门技巧,从入门到精通只需一个月。

毫无疑问,Python 是当下最火的编程语言之一。对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握 Python 看似是一件十分困难的事。其实,只要掌握了科学的学习方法并制定了合理的学习计划,Python 从 入门到精通只需要一个月…

【iOS】接口与API设计

文章目录前言用前缀避免命名空间冲突提供“全能初始化方法”实现description方法尽量使用不可变对象使用清晰而协调的命名方式方法命名类与协议的命名为私有方法名加前缀理解Objective-C错误模型理解NSCopying协议前言 我们在构建程序应用时,如果决定重用代码&…

DPDK 网卡驱动学习

DPDK版本19.02 初始化: /* Launch threads, called at application init(). */ int rte_eal_init(int argc, char **argv) {.../* rte_eal_cpu_init() ->* eal_cpu_core_id()* eal_cpu_socket_id()* 读取/sys/devices/system/[cpu|node]* 设置lcore_con…

考试管理系统

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 模块划分:老师模块、班级模块、学生模块、课程模块、试题模块、试卷模块、 组卷模块、考试模块、答题模块 管…

Python数据分析实战之用户消费行为数据分析

任务1:数据预处理 表格数据资源如下百度网盘👇 链接:https://pan.baidu.com/s/1pUYfRIe557v6O9ByB2rhEw 提取码:ovgl import numpy as np import pandas as pd import matplotlib.pyplot as plt # %matplotlib inline # 更改绘…

OrangePi 5 Docker下安装OpenWRT作软路由(同样适用于树莓派等设备)

OrangePi5 Docker下安装OpenWRT作软路由(同样适用于树莓派等设备) 说明 本文的软路由作为家中的二级路由,用一根网线连接主路由的LAN口和二级路由的WAN口(当主路由使用配置类似) 如果你想要作为旁路由或中继路由使用…

VUE中render渲染函数(h函数)

vue在绝大多数情况下都推荐使用模板来编写html结构,但是对于一些复杂场景下需要完全的JS编程能力,这个时候我们就可以使用渲染函数 ,它比模板更接近编译器 vue在生成真实的DOM之前,会将我们的节点转换成VNode,而VNode组合在一起形…