串行线路Modbus协议规范及实现指南.doc
文本预览下载声明
串行线路MODBUS协议的规范和实施指南
1.02版
1.引言
1.1本文论述的范围
MODBUS标准定义了应用层通信协议,是位于提供“客户机/服务器“之间不同类型连接设备的总线或网络OSI模型的第七层。它也是对标准化的串行端口在一个主机和一个或多个从站之间交换MODBUS请求的具体协议。
本文的目的是介绍串行口MODBUS协议,以供所有要在他们的串行线路产品实现Modbus协议的系统设计者使用。因此,本文将促进使用Modbus协议设备的互换性。
本文件可补充到“Modbus应用协议规范“的文件中。在第五节不同的实现类定义为“Modbus串行线路“。此类规范是一个属于这一类设备必须遵守的总和要求。
MODBUS串行线路规格及实施指南MODBU通信应用协议规范MODBUS应用协议(OSI的第七层)
MODBUS串行线路规格及实施指南
MODBU通信应用协议规范
MODBUS应用协议(OSI的第七层)
串行线路规范
本论文
表1 通用的MODBUS文件概述
1.2协议概述
本文介绍了串行线路MODBUS协议。 Modbus串行线路协议是一种主从协议,该协议发生在OSI模型的第二层。主从式系统有一个节点(主节点)会发出明确命令给“从站”节点和产生响应。从节点通常不会发送未经从主节点请求数据,并且不与其他的从站通讯。在物理层,在系统MODBUS串行线路可能使用不同的物理接口(接口RS485,RS232)。 TIA/EIA-485(RS485)的两线接口是最常见的。作为一个附加选项,RS485的四线接口也可以实现。当需要近距离点对点通信,ATIA/EIA-232-E(RS232)的串行接口也可以用来作为一个接口。 (见“物理层“)
下图给出了一般描述的串行线路Modbus通讯协议栈与7层OSI模型比较图形。
图2:Modbus协议和ISO/ OSI模型
层
ISO / OSI模型
7
应用层
Modbus应用协议
6
表示层
空
5
会话层
空
4
传输层
空
3
网络层
空
2
数据链路层
Modbus串行行协议
1
物理层
EIA/TIA-485(或的EIA/TIA-232)
Modbus应用层通讯协议,位于OSI模型的第7层,提供了在关于总线或网络的连接设备之间客户机/服务器的通信。基于Modbus串行线的客户端角色是主站的串行总线和从站节点作为服务器。
2 Modbus数据链路层
2.1 MODBUS主/从站协议原理
Modbus串行线路的协议是一个主从站协议。同一时间只有一个主节点连接到总线上,和一个或几个(最多247号)从站节点也连接到相同的串行总线。一个Modbus通信总是由主机启动。没有收到从主节点请求从节点不会发送数据,从节点不会互相通信。主节点启动同一时间内只有一个Modbus传输。
主节点发出两个不同的模式从节点MODBUS请求:
在单播模式下主机访问单个从站。在接收和处理的要求,从机给主机返回一个消息。在这种模式下,一 个Modbus处理包括2个消息:来自主机的要求和来自从站的答复。每个从机必须有一个唯一的地址(从1到247),以便它可以独立访问来区别其他节点。
在广播模式下,主机可以发送一个要求与所有从站通讯。无响应返回给主机发出的广播请求。广播要求必需是写指令,所有设备必须接受写功能的广播。 0是保留的地址,来确保一个广播交流。
主机从站01从站02
主机
从站01
从站02
从站
图2 单播模式
主机从站01从站02
主机
从站01
从站02
从站
图3 广播模式
2.2 Modbus寻址规则
MODBUS地址空间由256个不同的地址组成。
0
1~247
248~255
广播地址
从站地址
保留
地址0保留作为广播地址,所有从节点必须识别广播地址。MODBUS主节点没有具体地址,只有从节点必须有一个地址,在Modbus串行总线上这个地址必须是唯一的。
2.3 Modbus帧描述
针对Modbus应用协议[1]定义了一个简单的独立的底层通信层协议数据单元(PDU):
功能代码数据
功能代码
数据
图5 MODBUS协议数据单元(PDU)
MODBUS协议在特定总线或网络映射上引入了协议数据单元(PDU)上的一些附加信息。启动一个Modbus事务处理的客户端构建了MODBUS 协议数据单元,然后添加信息组以便建立适当的通信的协议数据单元。
Modbus串行线的PDU地址域功能代码
Modbus串行线的PDU
地址域
功能代码
数据
LRC(或CRC)
图6 串行线路Modbus帧
串行线路Modbus的地址域只包含从地址。正如上一节所描述,从站地址是的从0到247得有效节点。单个从站
显示全部