当前位置: 首页 > ds >正文

CanOpen--SDO 数据帧分析

CanOpen--SDO 数据帧分析

  • 1 介绍
    • 1.1 概述
    • 1.2 主站与从站
  • 2 数据帧详细分析
    • 2.1 主站发送的请求帧 (Client → Server)
    • 2.2 从站响应的确认帧 (Server → Client)
      • 成功数据帧内容
      • 示例错误帧
    • 2.3 命令字
    • 2.4 小端格式:低字节在前
  • 3 其他示例
    • 60FF index 发送 数值 1000 数据帧分析
      • 数据帧结构
      • 完整报文
  • 参考

1 介绍

1.1 概述

在 CANopen 中,SDO (Service Data Object) 用于主站与从站之间的参数配置和数据传输。当需要向对象字典索引 0x6083 写入值 100 时,需要使用 SDO 写操作。

1.2 主站与从站

在上位机与伺服电机的通信系统中,上位机通常是主站(Master),而伺服电机作为执行机构,通常作为从站(Slave)运行。
主站(Master):发起通信请求、发送控制指令、协调数据交换的设备。
从站(Slave):响应主站请求、执行指令、反馈状态信息的设备。

2 数据帧详细分析

假设条件:
从站节点ID:1
对象字典索引:0x6083
子索引:0x00 (通常默认)
写入值:100 (0x64)

2.1 主站发送的请求帧 (Client → Server)

COB-ID:0x600 + NodeID = 0x601
数据帧内容:

Byte说明
00x23写入4字节数据的命令字
1-20x83 0x60索引 0x6083 (小端格式)
30x00子索引 0x00
4-70x64 0x00 0x00 0x00值 100 (小端格式,4字节)

完整数据帧

601 23 83 60 00 64 00 00 00

2.2 从站响应的确认帧 (Server → Client)

COB-ID:0x580 + NodeID = 0x581

成功数据帧内容

Byte说明
00x60写操作成功的响应
1-20x83 0x60索引 0x6083 (小端格式)
30x00子索引 0x00
4-70x64 0x00 0x00 0x00值 100 (小端格式,4字节)

完整数据帧

581 23 83 60 00 64 00 00 00

示例错误帧

完整数据帧

581 80 83 60 00 06 00 00 05 

0x80:表示错误响应

2.3 命令字

  • 请求帧命令字 0x23:
    0x2:表示写请求
    0x3:表示数据大小指定为4字节

  • 响应帧命令字 0x60:
    表示写操作成功完成

2.4 小端格式:低字节在前

索引 0x6083 → 传输为 0x83 0x60
值 100 (0x00000064) → 传输为 0x64 0x00 0x00 0x00

3 其他示例

60FF index 发送 数值 1000 数据帧分析

从站节点ID: 1 (示例)
COB-ID: 0x600 + NodeID = 0x601
对象字典索引: 0x60FF
子索引: 0x00 (默认)
写入值: 1000 (0x000003E8)

数据帧结构

Byte说明
00x23写入4字节数据的命令字
10xFF索引低字节 (0xFF)
20x60索引高字节 (0x60)
30x00子索引
40xE8数据字节0 (1000的低字节)
50x03数据字节1
60x00数据字节2
70x00数据字节3

完整报文

ID: 0x601
Data: 23 FF 60 00 E8 03 00 00

参考

1、机器人开发–CanOpen

http://www.xdnf.cn/news/16163.html

相关文章:

  • Hugging Face 模型的缓存和直接下载有什么区别?
  • 【C++】第十八节—一文万字详解 | map和set的使用
  • 7.22 Java基础 | I/O流【下】
  • 小米视觉算法面试30问全景精解
  • HCIA/IP(一二章)笔记
  • Redis 初识
  • vcs门级仿真(后仿真)指南
  • Linux研学-Tomcat安装
  • 深入解析Hadoop中的Region分裂与合并机制
  • [pdf epub]《软件方法》电子书202507更新下载
  • 如何安装没有install.exe的mysql数据库文件
  • C# 析构函数
  • 虚幻5入门教程:如何在虚幻5中创建一个C++的Plugin
  • Zabbix 6.0+ 使用官方模板监控 Redis 数据库的完整配置指南
  • Linux 内核不能直接访问物理地址,必须通过虚拟地址访问。
  • Java+Vue构建的固定资产内控管理系统,融合移动端便捷与后台管理强大功能,模块完备,提供全量源码,轻松实现资产智能管控
  • 【uboot/kernel1】启动流程,环境变量,内存,initramfs
  • 构建智能视频中枢--多路RTSP转RTMP推送模块在轨道交通与工业应用中的技术方案探究
  • 知识库搭建之Meilisearch‘s 搜索引擎 测评-东方仙盟测评师
  • 二分查找-852.山峰数组的峰顶索引-力扣(LeetCode)
  • 【coze扣子】第1篇:coze快速入门
  • 【Spring AI 0基础教程】1、基础篇 环境搭建 - 智能天气预报助手
  • csp基础知识——递推
  • OpenCV快速入门之CV宝典
  • axios统一封装规范管理
  • oracle查询数据结构滤涉及的sql语句
  • Oracle 12c 创建数据库初级教程
  • 消息队列学习
  • .net 警告【代码 CS1998】此异步方法缺少 “await“ 运算符,将以同步方式运行。
  • VRRP技术