什么是“协议”
大白话解释:协议是用来正确传递消息数据而设立的一种规则。传递消息的双方(两台计算机)在通信时遵循同一种协议,即可理解彼此传递的消息数据。
Modbus协议模型
Modbus协议模型较为简单,使用一种称为应用数据单元ADU(Application Data Unit)的模型,而应用数据单元模型ADU又由地址域+PDU+校验域组成。
地址域:设备的地址标识。
PDU:协议数据单元(Modbus协议模型的核心),由功能码+数据组成。
校验域:用于检查传输的数据是否准确(数据在链路中传输有可能会失真,如0变1,1变0,接收端可通过校验域来检查是否有失真的情况)
具体协议模型如图所示:
Modbus协议运行机制
Modbus协议的通信双方一般被称之为主机设备(客户端)和从机设备(服务端,提供数据)。主机设备创建Modbus应用数据单元ADU形成查询报文,其中的功能码是指向从机设备表明将要执行哪种操作,比如读数据等。功能码占用一个字节,有效的范围为1-255(其中128-255为异常响应保留)。查询报文创建完毕,主机设备向从机设备发送报文,从机设备接收到该报文,根据功能码来执行相应操作,并将响应报文返回给主机设备,如图所示(响应正常情况)。
专业术语
常用专业术语如下:
Master:主设备
Slave:从设备
Client:客户端
Server:服务端
ADU:应用数据单元(Application Data Unit)
PDU:协议数据单元(Protocol Data Unit)
MSB:最高有效位(Most Significant Bit)
LSB:最低有效位(Least Significant Bit)
MBAP:Modbus应用协议(ModBus Application Protocol)
PLC:可编程逻辑控制器(Programmable Logic Controller)
写在最后
因工作需要而接触Modbus,正在恶补知识,利用博客的方式来加深理解和记忆,同时希望同行大佬能一起交流。