模型介绍
Modbos是OSI模型第七层(应用层)报文传输协议,主要是在不同类型的总线或网络设备间提供主站设备/从站设备(客服机/服务器)通信。
协议栈模型如下:
协议版本
Modbus通信协议一般用于串行链路、TCP/IP以太网以及其他支持互联玩协议的网络版本。
通信介质
大多数的Modbus设备通信时通过串口(RS232/RS485)或TCP/IP物理层进行连接(在上一节中有提到,含图),即RTU模式与ASCII模式。
两种串行网络结构图
通信场景
通常情况下,Modbus协议是一个主/从(Master/Slave)或客户端/服务器(Client/Server)架构协议。一般网络中有一个节点是Master节点,其他使用该协议参与网络通信的节点一般为Slave节点,每个Slave设备都有唯一的地址标识。
每一个Modbus报文均包含准备执行质量的设备的Modbus地址,线路上的所有设备都会收到指令(因为有PearToPear与广播的方式)。指定地址的设备会执行并回应主设备的指令,地址为0的除外,因为地址0表示的是广播指令(收到指令的设备都会执行指令,但无需回复指令)。
支持的设备
PLC、HMI、控制面板、驱动程序、动作控制、输入/输出设备等。
通信过程
正常通信过程
- 主机设备(客户端)创建Modbus应用数据单元形成报文;
- 将功能码(1byte,范围为十进制的:1-255(128-255保留异常使用))标识从机设备(服务端)执行那种指令;
- 主机设备(客户端)→从机设备(服务端)发送报文;
- 从机设备(服务端)接收报文并执行指令,依据功能码做相应动作;
- 返回相应报文至主机设备(客户端)。
整个过程与回答是非题的一应一答比较相似。
异常通信过程
如果出现差错,在走完正常流程的过程后,从机设备(服务端)返回的响应报文中的功能码域将包含一个异常码,主机设备(客户端)依据异常码确定下一个执行的操作。
专业术语
- Master:主(站)设备
- Slave:从(站)设备
- Client:客户端
- Server:服务端
- PLC(Programmable Logic Controller):可编程逻辑控制器
- ADU(Application Data Unit):应用数据单元
- PDU(Protocol Data Unit):协议数据单元
- MSB(Most Significant Bit):最高有效位
- LSB(Least Significant Bit):最低有效位
- MBAP(Modbus Application Protocol):Modbus应用协议