modbus报文解读 | 您所在的位置:网站首页 › 1kb字节中有多少位数的存储单位 › modbus报文解读 |
modbus报文解读
一、概念:二、换算公式:三、字节数python读取16进制的有效数据计算`上行报文`数据的长度读取`16进制`的有效数据
modbus报文解读
一、概念:
参考: 位、字节、char、int(32位系统) 之间的关系_wenfei11471的博客-CSDN博客 位(bit):计算机中最小的数据单位。每一位的状态只能是0或1。字节(byte):存储空间的基本计量单位,8 个二进制位构成1个字节。1 个字节可以储存 1 个英文字母或者半个汉字。KB:表示1024。1KB表示 1024 个字节。char:字符型数据,表示 2 个字节,也就是 16 位。int:整型数据,表示4个字节。字(word):由若干个字节构成,字的位数叫做字长,不同档次的机器有不同的字长,它是计算机进行数据处理和运算的单位,也就是 CPU 一次能处理的二进制代码的长度,即CPU一次所能处理的二进制代码的位数,也就是CPU的地址线的个数,即CPU的位宽。我们平时说的32位处理器,64位处理器中的 32、64 就是对应处理器的字长。半字(halfword):字的一半长度 二、换算公式: 1 Byte = 8 bit1 KB = 1024 Byte = 8192 Bit1 MB = 1024 KBchar = 2 Byte = 16 Bitint = 4 Byte = 32 Bitword = 32 bitshalfword = 16 bits 三、字节数长度限制最大为128位,字母和数字都是一个字母或一个数字占一个字节,汉字就是1个汉字2个字节;一般开发设置的都是字节数,如果输入汉字的话就只能输入64个汉字,对应的varchar类型,128字节;所以对应到英文就是128个英文字母。 python读取16进制的有效数据 计算上行报文数据的长度 # 响应数据 是 数据段拼接 response_data = 数据段1+数据段2 # 统计的数据不能直接/2,提示是folat类型 response_data_length = len(response_data) # 转int后再/2 response_data_length = hex(int(response_data_length / 2))[2:] 读取16进制的有效数据 # 16进制数据前两位是0x,跳过前两位读取即可 响应报文数据长度= hex(len(response_message_data)/2)[2:] modbus报文解读下行报文: 01 03 00 00 00 01 04 0E 下行报文就是设备接收到的报文,也就是用户发送给设备的报文 地址位功能码寄存器地址寄存器长度CRCF50300 0000 0191 7E1字节1字节2字节2字节2字节上行报文: F5 03 02 00 45 (CRC) # 02 代表要读取的数据字节长度= 下行报文寄存器长度*2 # 00 45 是寄存器地址00 00的数据,也就是温度值上行报文就是设备发送出去的报文,也就是用户收到的来自设备的报文 上行报文: 01 03 00 1E 如果后面有多个,就写多个值 F5030200 45地址位功能码返回字节长度(下行报文_寄存器长度*2)DATA1DATA2读几个寄存器长度,就返回几个DATACRC1字节1字节1字节规定的是几个字节就是几个字节规定的是几个字节就是几个字节2字节 |
CopyRight 2018-2019 实验室设备网 版权所有 |