为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > modbus 协议字节传送顺序

modbus 协议字节传送顺序

2021-05-31 3页 doc 71KB 100阅读

用户头像

is_037433

暂无简介

举报
modbus 协议字节传送顺序modbus协议字节传送顺序在Modbus总线中,数据传输时是低位字节先传送,传送过来后如果不进行交换,二进制的数值排列是反向的,即原来的低字节在高位,高字节在低位,所以得到的数据和原数据相差甚远。只要将数据的高低位字节进行交换(swap位置1),就可解决此问题。32位数据与ModbusRTUModbus协议是一种通用工业标准,国家标准位GB/T19582-2008。只要遵循Modbus协议,不同厂商生产的设备可以连成工业网络,进行互相通信。Modbus协议中规定寄存器是16位长度,但是随着芯片处理能力的加强及现场要求的提高,...
modbus 协议字节传送顺序
modbus字节传送顺序在Modbus总线中,数据传输时是低位字节先传送,传送过来后如果不进行交换,二进制的数值排列是反向的,即原来的低字节在高位,高字节在低位,所以得到的数据和原数据相差甚远。只要将数据的高低位字节进行交换(swap位置1),就可解决此问题。32位数据与ModbusRTUModbus协议是一种通用工业标准,国家标准位GB/T19582-2008。只要遵循Modbus协议,不同厂商生产的设备可以连成工业网络,进行互相通信。Modbus协议中规定寄存器是16位长度,但是随着芯片处理能力的加强及现场要求的提高,32位数据在各类工业设备上使用日渐增多,因此本文主要梳理ModbusRTU协议与32位数据之间的关系,给产品开发提供理论支持。为行文方便,下面将ModbusRTU协议简称为协议。协议中规定16位数据排列顺序位先高后低,例如ushort数据0x0102,字节01为高字节,02为低字节。这个顺序我个人理解是按照人的书写阅读顺序习惯定义的,从左到右,高字节在前,低字节在后。数据传输帧如下:下面看32位数据,例如ulong数据0x01020304。由于协议中寄存器大小为16位,该数据需要两个寄存器才能存储,因此将该数据拆分为两个16位数据0x0102与0x0304。这两个16位数据在寄存器中的顺序没有疑问,先高后低排列,但是关键问题是协议未规定这两个寄存器的先后顺序,因此在实际使用中会有2种情况出现,先0x0102后0x0304,或者先0x0304后0x0102,这2种排列顺序都是允许的,根据协议内容,建议首选先0x0102后0x0304,协议标准测试软件Modscan提供交换选项。但是绝对不会出现0x0201或0x0403的排列,违反了协议先高后低的规范,是不标准的。数据传输帧如下:或最后来看32位浮点数,同样我们需要定义浮点数的书写阅读顺序,根据IEEEE754标准,浮点数的书写顺序为:符号、阶码、尾数。例如-4.00,编码顺序为0xC0800000,得出2个寄存器内容分别为0xC080与0x0000,这2个寄存器同样可以交换,但寄存器内部数据顺序不能变动。数据传输帧如下:或,根据ModbusRTU标准协议,对于32位数据,只存在寄存器交换与不交换2种选项,当有涉及到寄存器内部字节交换的时候,都是非标准的。
/
本文档为【modbus 协议字节传送顺序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索