软件
通信协议(系统讲解PLC—第8课新手从入门到详解之通信协议)

1、协议定义

通信协议(国际组织IETF互联网工程任务组定义)是允许通信系统中多个实体传输信息的规则系统,包括语法、语义、同步方式及差错恢复方法,协议需经多方认可并形成技术标准,如 TCP/IP 协议族的 RFC 文档定义。

有时候我们咨询客户、供应商设备支持什么协议,总能听到支持RS485。

MODBUS是应用层报文规范。我们作为Modbus 协议的实际使用者(比如 PLC 工程师、工控调试人员)来说,核心关注点是应用层的报文规范(也就是协议定义中提到的语法、语义、同步方式及差错恢复方法等—— 底层的传输层(TCP/UDP)、网络层(IP)、物理层(以太网 / RS485)都是由设备固件或驱动自动处理的,我们几乎不需要手动干预。

2.1语法

如图1.1,以MODBUS RTU为例,语法实质是指:

  • 主站读数据:从站地址(1字节) + 功能码(1字节) + 数据起始地址(2字节) +寄存器个数(2字节)+ CRC校验(2字节)
  • 从站正确响应:从站地址(1字节)+功能码(1字节)+字节数(1字节)+数据内容(N字节)+CRC校验(2字节)
  • 从站的异常响应:从站地址(1字节)+功能码(功能码+0x80表示错误1字节)+异常代码(1字节)+CRC校验(2字节)

三种情况字节顺序、内容必须严格遵守描述,缺一不可。

MODBUS TCP/IP 无CRC校验,报文头部固定为MBAP,用于TCP通信管理(事务ID,协议ID,数据长度)。

MODBUS报文最先开始为从站地址,MODBUS TCP/IP为MBAP头部+PDU。

PDU除了第一个字节为单元ID,无CRC校验以外,其余与MODBUS RTU的报文相同。

单元ID,用于在多从站情况下标识逻辑设备。例如网关下通过MODBUS RTU采集了多个仪表。每个仪表设置不同的站地址。上位机通过MODBUS TCP/IP读取网关中所有的仪表数据,网关只有一个IP地址,此时通过单元ID区分不同仪表。工业物联网中数采网关模块应用较多(例如北辰的网关)。

2.2语义

Modbus RTU 是主从式同步:只能主站(上位机 / PLC)先发请求,从站(传感器 / 变频器)才能回应,从站不能主动发数据;

校验纠错:2.1章节提到的MODBUS RTU CRC 校验,也就是校验纠错。MODBUS TCP/IP不同,采用TCP本身的纠错机制。

经常听说MODBUS是应用层报文规范,RS485是物理层的接口电气标准。应用层和物理层等又是什么意思了?如表1。

核心功能(工控视角)

应用层

7-5 层(应用 + 表示 + 会话)

传输层

TCP/UDP 传输,端口 502 寻址

网络层

3层

数据链路层

以太网帧封装、MAC 地址识别、CRC 校验

网络接口层

1 层

为什么有这么多种不同层的模型?


3.2协议工作流程

那MODBUS RTU协议基于四层模型工作流程又是怎么一回事了?MODBUS RTU基于串口相对于MODBUS TCP/IP。无传输层和网络层,网络接口层要求RS485/RS422/RS232 串口电气标准。

不属于modbus协议。有人认为它属于数据链路层,有人认为它属于物理层,评论区发表你的个人看法。


顶一下()     踩一下()

热门推荐

发表评论
0评