行业动态

Modbus TCP通信协议介绍

Modbus TCP通信协议介绍

1、相关概念

  1.1 Modbus

  Modbus是一种广泛应用于工业自动化领域的通信协议, Modbus提供了通用的语言在设备之间建立主从式的通信,Modbus协议简单、开放、易于实现,且支持多种物理层通信介质(RS232、RS485、TCP/IP网络等),因此成为了工业领域通信协议的业界标准之一。我们今天要介绍的是一种基于以太网TCP/IP的应用层协议——Modbus TCP/IP协议。

 1.2 Modbus TCP

  Modbus TCP是Modbus协议在以太网上的一种实现,它保留了Modbus协议的核心功能和数据模型,但对消息封装进行了调整,使其符合TCP/IP的要求。在进行下一步之前我们首先对Modbus中的一些概念做一个了解。

  1.3存储区

  存储的数据类型分为布尔量和寄存器

  1.3.1布尔量

  如水阀的开关、灯的开关等数据。

  1.3.2寄存器

  如流速、导电率、温湿度、空气浓度等数据。

  Modbus规定了4个存储区,分别是0、1、3、4,对应下面表格内容,具体为:

  0区:可读可写的布尔量

  1区:只读布尔量

  3区:只读寄存器

  4区:可读可写的寄存器


 1.4功能码

  Modbus定义了一系列的功能码,这些功能码表示了主站请求从站执行的具体操作,下面表格是一些常见的功能码,具体为:

  1.4.1读操作

  0x01:读输出线圈状态。

  0x02:读输入线圈状态。

  0x03:读输出寄存器的值。

  0x04:读输入寄存器的值。

  1.4.2写操作

  0x05:写单个线圈状态。

  0x06:写单个寄存器的值。

  0x0F:写多个线圈状态。

  0x10:写多个寄存器的值。

 1.5 协议报文

  Modbus TCP/IP的报文被封装在一个标准的TCP数据段内,而不是像串行通信那样直接在物理层上发送。TCP报文提供了端到端的可靠传输,包括数据分段、重传、流量控制和拥塞控制等机制。

  Modbus TCP/IP的报文帧主要包括:

  MBAP头:包含事务标识符、协议标识符、消息长度、设备地址

  Modbus PDU:原始Modbus协议的数据部分,包括功能码、数据地址和数据值。

下面我们用一个表格来根据一段报文解释这两部分的具体内容:

  主站发送报文:

 从站响应报文:

 从上面的报文中我们可以知道:

  事务标识符:占2个字节,一次通信的过程中主站和从站的报文帧的事务标识符是一致的。

  协议标识符:占2个字节,00 00表示Modbus TCP协议。

  后面报文的长度:占2个字节,表示后面报文的长度。

  从站地址:占1个字节,表示设备的地址,也就是Salve ID的值。

  功能码:占1个字节,例子中的03表示的是读输出寄存器的值。

  起始地址:占2个字节,表示从该设备的哪个位置开始读。

  读取数量:占2个字节,表示从起始位置往后读的数量。

  长度:占2个字节,表示后面还报文的长度。

  对应的值:根据不同的存储类型所占的字节不同。



联系电话

0536-8835138

联系电话

19153633358

Email

1461166387@qq.com