首页 > 其他分享 >多摩川编码器协议理解与自做经历-(2)

多摩川编码器协议理解与自做经历-(2)

时间:2023-09-06 15:45:45浏览次数:34  
标签:编码器 多摩 00 信息 理解 单圈 驱动器

1,前言:上一期介绍了多摩川协议里面的数据介绍,这期我们将使用实物多摩川编码器通过485和逻辑分析仪,来实操了解多摩川协议

纸上得来终觉浅,绝知此事要躬行。

 

我先介绍一下我用到的实物。

多摩川编码器,伺服驱动器,梦源逻辑分析仪。

通过伺服驱动器,看一下了解多摩川编码器和驱动器的通讯

 

我们通过转接板中间用梦源的逻辑分析仪,通过R485 A去抓取中间的通讯(虽然485是是差分信号,其实在干扰不大的情况下,可以通过485A去看他们的通讯),这边我们用的是单圈的多摩川17位磁编码器,

 

我们通过逻辑分析仪抓取到了如下其中的一段信息,我们看一下

 

 

 

 

 

 同过上期我写的笔记我们分析一下 1A是驱动器发给编码器的指令,获取全部信息然后返回1A 00 C5 00 00 11 00 00 00 00 CD

 这里面是有17位的有单圈信息 也就是0到131072(十进制),其中信息排列是C5低八位1到8,00 是中间位8到16,00最后一位是0,所以单圈位置是C5转换为hex为197

 

 这个三个的单圈信息,我们这边来看一下驱动器,下面是显示是197也就是16进制C5

 

 

我们再举例我旋转电机轴

这个是驱动器显示的单圈位置

 

逻辑分析仪抓取

 

 

 我们分析一下现在单圈的绝对值信息

 

 

单圈信息是2B F4 01,其中应该就是如果通过代码计算  (0x2B)|(0xF4>>8)|(0x01>>16) = 0x2b+f400+0x10000= 0x1f42 = 十进制128064,和驱动器的位置对上了,

这里如果是C语言代码里建议用联合体减少位移运算

 

 

 

 我们在分析一下多圈信息,虽然这是单圈编码器,但是不代表他没有多圈信息,而是不带电池重新上电多圈清零。

我们分析一下上图的多圈信息

  一共有3个字节代表多圈信息,单圈信息为16为,最后一个字节会一直为00,所以这里FB为低8位,FF为高八位 所以是0XFFFB = 十进制 65531

和驱动器上的对应

 

 

 

 

 我们再看一下多摩川的校验,是否和我上期说是就是异或校验

 

 1A^00^2E^F4^01^11^FB^FF^00^00 = D4

这个通过异或得到的结果,为D4

 由于时间问题,这期我这边就只将了获取全部信息中 1A指令得到多圈信息,和单圈信息,下期会继续解析其他指令

PS,由于还不习惯写博客拖了几天,我会坚持写下去的,

logo

标签:编码器,多摩,00,信息,理解,单圈,驱动器
From: https://www.cnblogs.com/dudulu002/p/17648122.html

相关文章

  • 基本类型的理解
    byte:0-27—-27-1short:0-215—-215-1int:0-231—-231-1long:0-263—-263-1float:0.0f-231—-231-1double:0.0d-263—-263-1char:'\u0000'0—-2^16-1boolean:falsetrue......
  • 10-2 PVID抓包理解
    拓扑:PC1配置,其余PC配置参考PC1LSW1配置LSW2配置PC1pingPC3在LSW1的GE0/0/3抓包通信过程:一.PC1的ICMP数据包在到达LSW1的GE0/0/1口后被打上VLAN10的标签,二.根据LSW1的MAC地址表寻址后数据包需要从GE0/0/3口出去,GE0/0/3的允许VLAN列表中有VLAN10所以成功接受数......
  • 深入理解零拷贝技术
    注意事项:除了DirectI/O,与磁盘相关的文件读写操作都有使用到pagecache技术。数据的四次拷贝与四次上下文切换很多应用程序在面临客户端请求时,可以等价为进行如下的系统调用:File.read(file,buf,len);Socket.send(socket,buf,len);例如消息中间件Kafka就是这个应用场......
  • 深入理解ArrayList的动态扩容机制及应用
    在java编程中,数据结构起着至关重要的作用,而ArrayList作为一种常用的动态数组,为我们在处理数据时提供了便利。其中,其独特的动态扩容机制更是为其赢得了广泛的应用。我们不管在工作还是面试中,都会遇到ArrayList,本文将深入探讨ArrayList的动态扩容机制,以便我们在工作或者面试中用到。A......
  • dotnet 理解 IConfigurationProvider 的 GetChildKeys 方法用途
    我最近遇到了一个有趣的Bug让我调试了半天,这个Bug的现象是我的好多个模块都因为读取不到配置信息而炸掉,开始我没有定位到具体的问题,以为是我的配置服务器挂掉了。经过了半天的调试,才找到了是我新加入的使用COIN配置库的ReadonlyCoinConfiguration类型导致的,此ReadonlyCoi......
  • 《费曼学习法:理解更快、保留更高,27个高级学习模型》
    作者:彼得·霍林斯推荐指数:一般,但非常值得一读:缺点:条理不清晰:全书读完并不能确定27个高级学习模型是哪些;内容重复:前后章节一些内容是重复出现的,例如学习步骤;优点:观点清晰;技巧实用;  ......
  • 自编码器:数据降维和特征提取的新方法
    文章目录自编码器的原理编码过程解码过程自编码器的应用数据降维特征提取拓展应用总结......
  • Python接口编程:理解、设计和实现
    在当今的软件开发世界中,接口(API)是应用程序之间进行数据交换和通信的关键方式。这种通信可以在同一应用程序的各组件之间,也可以在完全不同的系统和平台之间进行。Python作为一种功能强大的编程语言,因其易用性和丰富的库而广泛用于开发接口。理解接口在计算机科学中,接口通常是一种定......
  • cross-env的理解
    1、什么是cross-env?它是运行跨平台设置和使用环境变量(Node中的环境变量)的脚本。2、cross-env的作用是什么?当我们使用NODE_ENV=production来设置环境变量的时候,大多数windows命令会提示将会阻塞或者异常,或者,windows不支持NODE_ENV=development的这样的设置方式,会报错。因......
  • 理解Qt中的setViewport和setWindow
    概念相关Qt的2D变换中有逻辑坐标(窗口)和物理坐标(视口)划重点:窗口(逻辑坐标)与视口(物理坐标)的关系:窗口的四个角会映射到视口的四个角,它们四个角之间一一对应,两者的比例是1:1。它们默认的状态下,逻辑坐标和物理坐标都是一一对应的,起始点都是(0,0),长度高度也一致即两者重合,对应......