问: 为什么SDO修改参数的命令字为2F、2B、23、27,还有的是22?这些值是怎么定义的?

答:

先看下图:

答案是:

数据的定义请看下图。

  1. 首先我们确定e的值:因为我们正常的SDO通讯都是使用的加速传送(最多传输4字节数据),所以e = 1
  2. 然后我们确定s的值:如果我们不指定数据长度,则s=0,否则s=1
  3. 然后我们确定n的值:根据e和s的值,如果我们不指定数据长度,则n无意义,n=0,那么命令字就等于00100010b,即0x22
    如果指定数据长度,则s=1,这时候n有效,n表示数据部分无意义数据的字节数,注意是无意义的字节数。
    如果我们只使用1个字节,则无意义字节数为3 (BYTE6-8)。n=11b,那么命令字就等于00101111,即0x2F(这里要注意SDO的数据格式,八个字节依次是:命令字(BYTE1),索引(BYTE2-3),子索引(BYTE4),数据(BYTE5-8))
    同理,如果我们使用两个字节,则无意义字节数为2,(BYTE7-8),n=10b。那么命令字就等于00101011,即0x2B。
    三个字节的0x27和四个字节的0x23,想必你一定能算出来吧。

转载于:https://www.cnblogs.com/CiACAN/p/4929134.html

[CANopen] SDO的命令字相关推荐

  1. CANOpen SDO

    文章目录 SDO分类 SDO 段下载 快速SDO下载 普通SDO段下载发起 普通SDO段下载 SDO 段上传 快速SDO上传 普通SDO发起段上传 普通SDO段上传 SDO 块下载 SDO块下载发起 ...

  2. canopen sdo帧格式详解

    参考地址:https://www.pianshen.com/article/4379694213/

  3. CANOPEN 协议 命令字

        CANOPEN 协议操作命令字                                                                                 ...

  4. CanOpen通信协议python实现

    1. CANOpen--在ISO层级中位置和诞生 CAN(Controller Area Network)现场总线仅仅定义了第1层(物理层,见ISO11898-2标准).第2层(数据链路层,见ISO1 ...

  5. igh ethercat主站文档(中文翻译上)

    此翻译主要是用翻译软件翻译,部分自己修改,若有不当之处,可以下方评论或私聊我提醒修改,若转载,请注明出处 本文是1-4章节. 1 The IgH EtherCAT Master 本章介绍有关Ether ...

  6. C#开发CANopen主站(SDO收发数据)

    C#开发CANopen主站(SDO收发数据) 一.准备工作 熟悉CANopen相关知识,可以参考我的另一篇博客<CANopen学习笔记> 获取周立功或者广成科技的上位机二次开发包及驱动 熟 ...

  7. CANopen中SDO、PDO、以及COB-ID理解

    CAN 总线是一种串行通信协议,具有较高的通信速率的和较强的抗干扰能力,可以作为现场总线应用于电磁噪声较大的场合. 由于CAN 总线本身只定义ISO/OSI 模型中的第一层(物理层)和第二层(数据链路 ...

  8. CANopen | 对象字典OD 03 - 启动CANopen节点的服务数据对象SDO

    文章目录 一.前言 二.实验的目的 三.对象字典OD 3.1.Slave1.od 3.2.Slave1.c 四.CAN盒子(收发器) 4.1.通过SDO方式修改CANopen从站的心跳时间 一.前言 ...

  9. CANOpen中SDO和PDO的COB-ID理解

    CANOpen用来收发数据的通信对象有SDO(Service Data Object)和PDO(Process Data Object) 一 SDO和PDO的区别 SDO使用对象字典的Index和Su ...

最新文章

  1. Flutter事件与手势识别
  2. java 如何让HashMap变成线程安全的
  3. python详细安装教程环境配置-[Python] 安装及环境配置
  4. Filter若不写chain.doFilter(request,response)原Servlet路径代码不会被执行
  5. 阿里云IoT百万资源,寻找极客合作伙伴
  6. Django在根据models生成数据库表时报 missing 1 required positional argument on_delete(亲测)
  7. 字符串混淆技术应用 设计一个字符串混淆程序 可混淆.NET程序集中的字符串
  8. 标准正态分布表_表达矩阵的归一化和标准化,去除极端值,异常值
  9. 考研 | 先预览一下考研真题是考研小白最快的入门方法(含21考研最新真题)
  10. 正则表达式【第二卷】
  11. 战网下载CDN重定向失败_卧槽,又开源一个下载神器,利用各种平台下载任意文件...
  12. 调试器工作原理--CPU软件断点/硬件断点/单步执行标识
  13. mysql报错1241_flask内的mysql插入语句报错:1241, 'Operand should contain 1 column(s)
  14. Oracle EBS二次开发简介
  15. 云龙51单片机视频教程+课件+程序代码+课后作业,零基础入门视频教程
  16. 笔记本电脑桌面计算机图标不见了怎么办,桌面图标不见了怎么办,教您电脑桌面图标不见了怎么办...
  17. 安装MySQL说cab文件损坏_安装Office出现的CAB文件受损解决方法
  18. html5离散数学,离散数学怎样判断合取范式和析取范式
  19. jS 清除form表单
  20. 软件人员绩效考核新思路

热门文章

  1. OpenSergo 正式开源,多家厂商共建微服务治理规范和实现
  2. CFM与RPM-名词解释
  3. 移动平台的产品设计世界
  4. Jmeter启用英文界面
  5. 目前企业用得比较多的AD域管理工具是什么?
  6. WGS84坐标系发展历程
  7. OpenGL之几何、投影、裁剪、视口变换以及全局变换与局部变换
  8. GRPC在k8s中的服务发现和负载均衡_traefik-ingress
  9. mysql怎么查看字符集设置_mysql 设置查看字符集
  10. Java毕设项目葡萄酒销售管理系统(java+VUE+Mybatis+Maven+Mysql)