离散输入(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区是只读。
| 需要注意的是,MODBUS协议本身并不定义具体的数据类型表示,而是由具体的设备制造商或应用程序决定如何解释寄存器中的数据。因此,在开发或配置MODBUS设备时,必须参考相关的设备手册或协议规范,以确保正确地读取和写入数据。 |