首页 > 其他分享 >Modbus字节序说明-汇川PLC用littly endine byte swap【低位优先传输且反序】 解析寄存器

Modbus字节序说明-汇川PLC用littly endine byte swap【低位优先传输且反序】 解析寄存器

时间:2024-03-03 19:34:41浏览次数:25  
标签:正序 字节 汇川 endine swap endian byte 反序

Modbus字节序说明-汇川PLC用littly endine byte swap 解析寄存器

最近做ModBus TCP方面的测试有点多,尽管对于ModBus协议算是比较了解了,也经常知道字节传输序列的不同对工程师带来了很多不必要的麻烦,这不是一个技术难题,仅仅只是过去各家各户开发遗留下来的标准统一问题,所以这里写下这篇文章作为备忘。
在Modbus通信中,目前我们主要有16bit(AB)、32bit(AB CD)和最新的64bit(AB CD EF GH)三种数据长度。每个字母代表一个字节。
 针对16bit传输,只存在正序(AB)或反序(BA)两种方式,也就所谓的正序先传高位,以及反序先传低位,为什么会出现这样的现象,可以联系堆栈处理的方式,不过这个不重要。

更多的应用场景针对的是双字32位数据传输。那么同样的正序(ABCD)以及反序(DCBA)似乎就够用了,但是却还有字节交换这样的问题,所以你经常会看到SWAP函数,这样的我们衍生出了以下四种排序方式。

Big-endian :ABCD
Little-endian :DCBA
Big-endian byte swap :BADC
Little-endian byte swap :CDAB

对于32bit的Real类型:对应十六进制:ABCD。

1. Big-endian: 大端模式,正序。即:大端排序,先传递高位A依次传递到低位D。压入发送队列发送。

所以在通讯中,收发到的数据不对,先要做的就是确定确定数据类型,其次要确定数据传输时的字节序是如何的,这有确保了这两点的正确性,才可以正确的解析出数据。

2. Little-endian:小端模式,正序。即:依次从低位到高位。压入发送队列,发送。

3. Big-endian byte swap: 大端模式,反序。先将寄存器内部字节交换,然后按照大端模式发送。 

4. Little-edian byte swap : 小端模式,反序。 先将寄存器内部字节交换顺序,然后按照小端模式依次压入发送队列,发送。

 

 

 

 

 

 

 

 

 

 

 

 

endl;

标签:正序,字节,汇川,endine,swap,endian,byte,反序
From: https://www.cnblogs.com/icmzn/p/18050535

相关文章

  • C#序列化和反序列化
    在C#编程中,序列化和反序列化是两个核心概念,它们分别代表着将对象状态转换为可以存储或传输的形式(通常是字节流),以及将这种形式的数据恢复为原始对象状态的过程。简单来说,序列化就是将对象转换为流(如文件、网络流等),而反序列化则是将这些流转换回原始对象。为什么要序列化和反序列化......
  • [DotnetSec]XmlSerializer 反序列化 分析
    Dotnet-XmlSerializer反序列化序列化和反序列化的演示Demo参考微软的文档:https://learn.microsoft.com/zh-cn/dotnet/api/system.xml.serialization.xmlserializer?view=net-5.0XmlSerializer命名空间:System.Xml.Serialization程序集:System.Xml.XmlSerializer.dll演示......
  • [dotnet-Sec]初探反序列化
    [dotnet-Sec]初探反序列化参考Github上y4✌的开源笔记,狠狠学!环境搭建.NET:5.0IDE:Rider(JB家族)新建项目选择.NETCore(支持跨平台)下的控制台应用程序,然后创建这是接触到的关于dotnet的第一个反序列化demo,使用的是BinaryFormatter生成二进制流//Disablethewarning.#pragma......
  • Weblogic XMLDecoder反序列化漏洞(CVE-2017-10271)复现
    0x00漏洞简介OracleFusionMiddleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台。该平台提供了中间件、软件集合等功能。OracleWebLogicServer是其中的一个适用于云环境和传统环境的应用服务器组件。OracleFusionMiddleware中的Oracle......
  • Apache Shiro反序列化漏洞 (CVE-2016-4437)复现
    0x00漏洞简介ApacheShiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。ApacheShiro1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触......
  • PHP项目&变量覆盖&反序列化&未授权访问&身份验证
    CNVD拿1day-验证&未授权-xhcms&Bosscms此种漏洞由于没有什么关键函数,所以需要通过功能点去进行测试。Bosscms未授权访问CNVD官网上搜索Bosscms未授权访问漏洞。根据描述,影响的是1.0版本。看到发送时间为21年12月29好,收录时间为22年1月18号。再去官网看版本更新的时间点,V1.0版......
  • 反序列化漏洞
    反序列化漏洞什么是序列化、反序列化例子引入序列化是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象状态,重新创建该对象。简单的来讲:(含例子easy.php)序列化:把对象转换......
  • EtherCAT转PROFINET网关TEC-380助力汇川伺服与西门子PLC实现高效协同
    在食品饮料生产线中,正杯机以其高精度的定位和运动控制能力确保每个杯子的精准填充与严密封口,而这一切得益于伺服驱动器的强大支持。浙江某饮料加工生产线,中控系统使用S7-1511PLC控制伺服驱动器作为正杯机的动力与控制核心,对电机的转动进行精细控制以响应各种复杂的控制信号,确保正......
  • net8 对接webapi接口通过 GetFromJsonAsAsyncEnumerable方法直接得到对象,无需进行反序
    调用API直接获取到对象现在有一个接口返回如下图中的数据:如果是在8以前的版本中获取该接口的数据,需要先获取到接口内容,然后进行反序列化,代码如下conststringRequestUri="http://localhost:5145/user";usingvarclient=newHttpClient();varstream=awaitclient......
  • 每日一道面试题:Java中序列化与反序列化
    写在开头哈喽大家好,在高铁上码字的感觉是真不爽啊,小桌板又拥挤,旁边的小朋友也比较的吵闹,影响思绪,但这丝毫不影响咱学习的劲头!哈哈哈,在这喧哗的车厢中,思考着这样的一个问题,Java中的对象是如何在各个方法,或者网络中流转的呢?通过这个问题便引出了我们今天的主人公:序列化与反序列化!......