网络协议——Modbus-TCP

目录

1、简介

2、Modbus-TCP与Modbus-RTU的区别

3、消息格式

4、功能码01H

5、功能码02H

6、功能码03H

7、功能码04H

8、功能码05H

9、功能码06H

10、功能码0FH

11、功能码10H


1、简介

  • Modbus-TCP(Modbus Transmission Control Protocol)是一种工业控制系统中常用的通信协议,它基于TCP/IP协议栈,用于在网络中传输数据和命令,实现设备之间的通信和控制。
  • 基于TCP/IP协议栈:Modbus-TCP使用TCP作为传输层协议,通过以太网或者其他支持TCP/IP的网络实现设备之间的通信。
  • 面向连接:与Modbus-RTU不同,Modbus-TCP是面向连接的协议,通信的两端(客户端和服务器)在通信前需要建立连接,通信结束后再断开连接。
  • 与传统的Modbus相同,Modbus-TCP也采用主从模式。主设备(通常是一个计算机或控制器)发起请求,从设备(如传感器、执行器)响应请求。

2、Modbus-TCP与Modbus-RTU的区别

  • 从机地址不再重要
    • Modbus-TCP可以通过IP地址区别从机。
  • 取消了CRC校验
    • TCP/IP数据包中已经存在校验,所以不再需要CRC校验。
  • 多了MBAP报文头

3、消息格式

  • Modbus-TCP消息格式包含TCP头部和Modbus应用数据单元(ADU)。
    • TCP头部:包含源端口号、目标端口号、序列号等TCP协议相关信息。
    • Modbus ADU:包含Modbus功能码、数据字段、校验和等信息。
    • 事务处理标识:可以理解为报文序列号,每次通讯后+1,以区别不同的通信。
    • 协议标识:0000H表示Modbus-TCP协议。
    • 长度:表示数据长度, 单位为字节。
    • 单元标识:设备的从站地址。
  • 功能码

4、功能码01H

  • 01H:读线圈状态。读取一组线圈的状态,返回一个字节数组,其中每个位表示一个线圈的状态。
  • 发送报文(PDU报文)
    • 含义:寄存器起始地址为0000H,线圈寄存器数量为0008H。
  • 响应报文
    • 返回一个字节数据为0FH。
    • 按位操作,需要将返回的数据转换位二进制。
    • 从右到左,表示第一通道到第八通道的输入状态。

5、功能码02H

  • 02H:读离散输入状态。读取一组离散输入的状态,返回一个字节数组,其中每个位表示一个输入的状态。
  • 发送报文
    • 含义:0000H开始,读取8个寄存器。
  • 响应报文
    •  
    • 含义:返回1个字节,为0FH。
    • 按位操作,需要将返回的数据转换位二进制。

6、功能码03H

  • 03H:读保持寄存器。读取一组保持寄存器的值,每个寄存器返回16位(2字节)数据。
  • 发送报文
    • 含义:寄存器起始地址为0000H,读取1个保持寄存器。
  • 响应报文
    • 含义:返回2个字节,数据为0001H。

7、功能码04H

  • 04H:读输入寄存器。读取一组输入寄存器的值,每个寄存器返回16位(2字节)数据。
  • 发送报文
    • 含义:寄存器起始地址为0000H,读取1个寄存器。
  • 响应报文
    • 含义:返回2个字节,数据为0001H。

8、功能码05H

  • 05H:写单个线圈。设置一个线圈的状态,写入一个位(0或1)。
  • 发送报文和响应报文一致。
    • 含义:控制第二通道(0001H)线圈闭合(FF00H)。(断开为0000H)

9、功能码06H

  • 06H:写单个保持寄存器。设置一个保持寄存器的值,写入16位(2字节)数据。
  • 发送报文和响应报文一致。
    • 含义:控制第一通道(0000H)写入保持寄存器值0001H。

10、功能码0FH

  • 0FH:写多个线圈。设置多个线圈的状态,写入一个字节数组,其中每个位表示一个线圈的状态。
  • 发送报文
    • 含义:从第一通道(0000H)开始,写4个线圈寄存器,1个字节,数据为0FH。
    •   按位操作,需要将返回的数据转换位二进制。
  • 响应报文
    • 含义:寄存器起始地址和写的寄存器数量。

11、功能码10H

  • 10H:写多个保持寄存器。设置多个保持寄存器的值,写入多个16位(2字节)数据。
  • 发送报文
    •  
    • 含义:从第一通道(0000H)开始,写2个保持寄存器,共4个字节,数据1为0001H,数据2为0001H。
  • 响应报文
    • 含义:寄存器起始地址和写的寄存器数量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恣睢s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值