Modbus协议数据类型

数据种类

图片

离散输入(Discrete Inputs):

这是1位的布尔型数据,通常用于表示设备的状态,比如传感器的开关状态、报警的信号等。

线圈(Coils):

同样是1位的布尔型数据,通常用于控制继电器或其他输出设备,比如电机的启动或停止、阀门的开启或关闭等。

输入寄存器(Input Registers):

16位无符号整数或16位带符号整数,占两个字节,用于表示模拟量输入、计数器或温度等测量值。

保持寄存器(Holding Registers):

也是16位的整数,可以读写,用来存储数据量、累计值或任何需要远程读取或修改的参数(时间年月日等)。

数据类型

位(Bit)

  • 长度:1个字节包含8位

  • 举例:继电器的开关状态

  • 描述:包含离散输入和线圈,一个字节包含8位,用来表示设备状态信息,也可以控制设备的状态(如开启关闭)。

整数(Integer)

  • 长度:通常是两个字节16位

  • 举例:读取压力变送器的数据102kPa

  • 描述:包含保持寄存器和输入寄存器,用来表示各种整数的数据量。

浮点数(Float)

  • 长度:通常是四个字节32位

  • 举例:压力12.0523MPa

  • 描述:两个连续的寄存器存储,通常用来表示高精度数值,如压力、温度等。

字符串(String)

  • 长度:不固定(通常占用多个字节)

  • 举例:设备的序列号

  • 描述:通常是厂家信息,比如设备序列号(2024XXXXXXXXX)可能占用6到12个字节不等。

功能码

Modbus功能码有21种,但是常用的只有下面8种:

  • 0x01: 读线圈寄存器

  • 0x02: 读离散输入寄存器

  • 0x03: 读保持寄存器

  • 0x04: 读输入寄存器

  • 0x05: 写单个线圈寄存器

  • 0x06: 写单个保持寄存器

  • 0x0f: 写多个线圈寄存器

  • 0x10: 写多个保持寄存器

 

存储区

Modbus协议规定了4个存储区 分别是0、1、3、4区 其中0区和4区是可读可写,1区和3区是只读。

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值