一、起源
Modbus由Modicon公司于1979年开发,是一种工业现场总线协议标准。Modbus通信协议具有多个变种,其中有支持串口,以太网多个版本,其中最著名的是Modbus RTU、Modbus ASCII和Modbus TCP三种其中Modbus TCP是在施耐德收购Modicon后1997年发布的。
二、分类
1) Modbus RTU2)Modbus ASCII
3)Modbus TCP
三、应用场景
Modbus协议是现在国内工业领域应用最多的协议,不只PLC设备,各种终端设备,比如水控机、水表、电表、工业秤、各种采集设备。
四、ModbusTCP的协议
ModbusTcp协议包含三部分:报文头、功能码、数据
- 报文头
2.寄存器
一共有四种类型的寄存器,分别是:线圈、离散量输入、输入寄存器、保持寄存器。
离散量和线圈其实就是位寄存器(每个寄存器数据占1字节),工业上主要用于控制IO设备。输入和保持寄存器是字寄存器(每个寄存器数据占2个字节),工业上主要用于存储工业设备的值。
- 离散量和线圈其实就是位寄存器(每个寄存器数据占1字节),工业上主要用于控制IO设备。
线圈寄存器,类比为开关量。 线圈寄存器支持读也支持写,写在功能码里面又分为写单个线圈寄存器和写多个线圈寄存器。
读单个或多个 写单个 写多个 3个功能码实现
离散输入寄存器,离散输入寄存器就相当于线圈寄存器的只读模式,他也是8个bit表示一个开关量,而他的开关量只能读取输入的开关信号,是不能够写的。比如我读取外部按键的按下还是松开。
对应功能码1个 读单个或多个
2. 输入和保持寄存器是字寄存器(每个寄存器数据占2个字节),工业上主要用于存储工业设备的值。
保持寄存器,这个寄存器的单位不再是bit而是两个byte,也就是可以存放具体的数据量的,并且是可读写的。比如空调检测到的室温,这是不可以修改的,因为室温是根据实际的物理环境决定的。
功能码有对应的三个
输入寄存器,这个和保持寄存器类似,但是也是只支持读而不能写。一个寄存器也是占据两个byte的空间。类比我我通过读取输入寄存器获取现在的温度传感器的值
3.功能码
功能码占一个字节
具体协议分析可参考:
标签:Modbus,字节,寄存器,modbus,线圈,工业,输入 From: https://blog.csdn.net/weixin_63207763/article/details/142341989