首页 > 其他分享 >modbus通信协议

modbus通信协议

时间:2023-03-01 12:00:57浏览次数:39  
标签:通信协议 起始 从机 modbus 地址 寄存器 CRCH CRCL

 一、Modbus通信协议概述

      Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的标准,是工业电子设备之间非常常见的通信方式。

二、Modbus寄存器地址

1、Modbus寄存器类型

      Modbus中,寄存器可以分为两大类,分别为位变量(Coils)和整形变量(Registers)。每一种寄存器类型,根据读写方式的不同,又可分为两种只读(R)和读写(R/W)。

2、Modbus寄存器地址

三、Modbus功能码

四、Modbus协议详解

0x01(读线圈)

请求:从机地址      功能码      寄存器起始地址H       寄存器起始地址L      读取数量H      读取数量L      CRCH      CRCL
响应:从机地址      功能码      字节数量      读取数据      CRCH      CRCL  (一个地址的数据为1位,数据可能有多个字节)

eg1:从从机0x01中,读取线圈寄存器起始地址为0x0001的寄存器数据,读1位

请求:

        

应答:

        

eg2:从从机0x01中,读取线圈寄存器起始地址为0x0000的寄存器数据,读4位

请求:

        

应答:

        

0x02(读离散量输入)

请求:从机地址      功能码      寄存器起始地址H       寄存器起始地址L      读取数量H      读取数量L      CRCH      CRCL
响应:从机地址      功能码      字节数量      读取数据      CRCH      CRCL  (一个地址的数据为1位,数据可能有多个字节)

eg:从从机0x01中,读取离散量输入寄存器起始地址为0x0000的寄存器数据,读4位

请求:

        

应答:

        

0x03(读保持寄存器)

请求:从机地址      功能码      寄存器起始地址H       寄存器起始地址L      读取数量H      读取数量L      CRCH      CRCL
响应:从机地址      功能码      字节数量      读取数据      CRCH      CRCL  (一个地址的数据为2个字节,数据可能有多个字节)

eg1:从从机0x01中,读取保持寄存器起始地址为0x03E8的寄存器数据,读1个

请求:

        

应答:

        

eg2:从从机0x01中,读取保持寄存器起始地址为0x03E8的寄存器数据,读3个

请求:

        

应答:

        

0x04(读输入寄存器)

请求:从机地址      功能码      寄存器起始地址H       寄存器起始地址L      读取数量H      读取数量L      CRCH      CRCL
响应:从机地址      功能码      字节数量      读取数据      CRCH      CRCL  (一个地址的数据为2个字节,数据可能有多个字节)

eg:从从机0x01中,读取输入寄存器起始地址为0x03E8的寄存器数据,读1个

请求:

        

应答:

        

0x05(写单个线圈)

请求:从机地址      功能码      寄存器地址H       寄存器地址L      输出值H      输出值L      CRCH      CRCL
响应:从机地址      功能码      寄存器地址H       寄存器地址L      输出值H      输出值L      CRCH      CRCL

eg:向从机0x01里,写入线圈寄存器起始地址为0x0000的数据0xFF00(打开,另关闭是0x0000)

请求:

        

应答:

        

0x06(写单个保持寄存器)

请求:从机地址      功能码      寄存器地址H       寄存器地址L      输出值H      输出值L      CRCH      CRCL
响应:从机地址      功能码      寄存器地址H       寄存器地址L      输出值H      输出值L      CRCH      CRCL

eg:向从机0x01里,写入保持寄存器地址为0x03EA的数据0x0002

请求:

        

应答:

        

0x0F(写多个线圈)

请求:从机地址      功能码      寄存器起始地址H       寄存器起始地址L      写入寄存器数量H       写入寄存器数量L      字节数量       输出值      CRCH      CRCL
响应:从机地址      功能码      寄存器起始地址H       寄存器起始地址L      写入寄存器数量H       写入寄存器数量L      CRCH      CRCL

eg:向从机0x01里,写入线圈寄存器起始地址为0x0000的数据0xFF00(打开,另关闭是0x0000),写入4位

请求:

        

应答:

        

0x10(写多个保持寄存器)

请求:从机地址      功能码      寄存器起始地址H       寄存器起始地址L      写入寄存器数量H       写入寄存器数量L      字节数量       输出值      CRCH      CRCL
响应:从机地址      功能码      寄存器起始地址H       寄存器起始地址L      写入寄存器数量H       写入寄存器数量L      CRCH      CRCL

eg:向从机0x01里,写入保持寄存器起始地址为0x03EA的数据0x00030000,写入了2个寄存器数据

请求:

        

应答:

        

标签:通信协议,起始,从机,modbus,地址,寄存器,CRCH,CRCL
From: https://www.cnblogs.com/kn-zheng/p/17167690.html

相关文章

  • Modbus指令CRC校验位生成例程解析
    010607D001F48950,可以分为以下部分:项目Value从机地址01功能号06数据地址07D0数据01F4CRC8950循环冗余校验(CyclicRedundancyCheck,CRC)是一种根据网络数据包或计算机文......
  • AllenBradley罗克韦尔CIP通信协议介绍 C# AllenBradley(CIP)读写操作PLC数据 C#罗克韦
      罗克韦尔CIP通信协议(ControlandInformationProtocol)是一种面向对象的通信协议,它是用于工业自动化领域的数据通信协议。CIP协议可以在不同厂商、不同类型的自动化......
  • modbus移植到S32K146
    1、认识modbus协议在工程应用领域非常广泛,本质上通过UART串口让主机和从机之间进行通信,modbus移植需要的知识涉及到:串口电路(485或者232),UART驱动,modbus协议UART串口搞过单......
  • MPU6050开发 -- 进阶之I2C/SPI通信协议
    上一篇基本概念讲了一通,大体上对MPU6050有了一个了解。对于MPU6050开发来讲主要的应该就是I2C/SPI通信和寄存器控制了吧。接下来我们继续看芯片手册,简单了解一下I2C/SPI通......
  • ModBus RTU与ModBus TCP通信协议详解
    1、Modbus简介   Modbus通信协议由Modicon公司(现已经为施耐德公司并购,成为其旗下的子品牌)于1979年发明的,是全球最早用于工业现场的总线规约。由于其免费公开发行,该协议......
  • ModBus RTU与ModBus TCP通信协议详解
    1、Modbus简介   Modbus通信协议由Modicon公司(现已经为施耐德公司并购,成为其旗下的子品牌)于1979年发明的,是全球最早用于工业现场的总线规约。由于其免费公开发行,该协......
  • 使用C++实现Modbus CRC16检验相关内容
    使用C++实现ModbusCRC16检验相关内容ModbusCRC-16校验代码以下为ModbusCRC-16校验代码函数:其中参数int*crc_sum为校验返回值,分为两个字节;参数int*data_blk_ptr......
  • C#websocket及时通信协议的实现方法示例
    传统“长轮询”实现Web端即时通讯的问题WebSocket出现之前,Web端为了实现即时通讯,所用的技术都是Ajax轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发......
  • RS485 MODBUS转PROFINET网关案例 | 超声波明渠流量计接入到PLC1200 PROFINE
    本案例介绍的是用北京小疆智控(北京)技术有限公司生产的GW-PN5003型RS485转PROFINET网关将超声波明渠流量计接入西门子PLC1200PROFINET网络的使用方法:  1、首先创建新......
  • Modbus TCP / BACnet IP 网关BMT-370
    基本说明:BMT-370是BACnetIP从站协议与ModbusTCP主站协议转换的通信网关,可以实现BACnetIP主站与多个ModbusTCP从站之间的数据通信。同时该网关的以太网端支持双以太网......