【曹俊义专栏】Modbus协议简介(2)

上一节为大家对Modbus协议做了简单的概述,本节为大家介绍Modbus协议栈的主要内容。

Modbus是一种简单客户机/服务器应用协议

§ 客户机能够向服务器发送请求

§ 服务器分析请求,处理请求,向客户机发送应答

Modbus协议数据单元(PDU)

标准的Modbus由功能码和用户数据构成,功能码用来实现用户数据的读和写,可实现开关量的位读写,模拟量(寄存器)的读写。从站对相关功能码进行响应。并发送响应PDU给主站。

Modbus无差错事务处理

§ 当服务器对客户机响应时,它使用功能码域来指示正常(无差错)

§ 响应或者出现某种差错(称为异常响应)

§ 对于一个正常响应来说,服务器仅复制原始功能码

Modbus异常响应事务处理

§ 对于异常响应,服务器将原始功能码的最高有效位设置逻辑1后返回

§ 异常码指示差错类型

也就是说当Modbus从站发出一条错误指令时如响应功能码03的数据,则响应报文功能码部分会返回一个83。

Modbus PDU的长度

§ Modbus最初在串行链路上的实现(最大RS485ADU=256字节)限制了Modbus PDU的长度。

§ 因此,对串行链路通信来说,Modbus PDU=256-服务器地址(1字节)-CRC(2字节)=253字节。

§ 从而:RS232 / RS485 ADU = 253字节+服务器地址(1字节) + CRC (2字节)= 256字节。

§ TCP Modbus ADU = 253字节+ MBAP (7字节) = 260字节。

下节为大家介绍Modbus数据模型,请关注!