modbus协议

用人话读懂modbus协议

modbus协议简介:Modbus协议是一种串行通信协议,主要用于工业自动化领域。它是由Modicon公司(现为施耐德电气的一部分)于1979年发明的,用于可编程逻辑控制器(PLC)之间的通信 |

modbus通讯规则

  1. 主从架构:Modbus网络采用主从架构,即只有一个主机(Master)可以发送请求,而多个从机(Slave)则响应这些请求。这种架构确保了网络中的数据流是有序的,避免了冲突和混乱。

  2. 通讯方式:Modbus支持多种通讯方式,包括串行通讯(如RS-232、RS-485)、以太网通讯(如TCP/IP)以及无线通讯等。不同的通讯方式适用于不同的应用场景和需求。

  3. 数据帧格式:Modbus协议定义了数据帧的格式,包括地址域、功能码域、数据域和错误校验域。地址域用于标识目标从机;功能码域指定要执行的操作;数据域包含要传输的数据;错误校验域用于验证数据的完整性。

  4. 功能码:Modbus协议定义了一系列功能码,用于指定从机要执行的操作。例如,读线圈状态(功能码0x01)、读保持寄存器(功能码0x03)、写单个寄存器(功能码0x06)等。这些功能码使得主机能够对从机进行精确的控制和数据交换。

  5. 错误校验:为了确保数据传输的准确性,Modbus协议采用了错误校验机制。常用的校验方法是CRC(循环冗余校验)。在发送数据时,发送方会计算并附加一个CRC校验码;接收方在接收到数据后,会重新计算CRC校验码并与接收到的校验码进行比较,以验证数据的完整性。

  6. 通讯过程:Modbus通讯过程通常包括查询和回应两个步骤。主机首先发送一个查询消息给从机,从机接收到查询消息后,会根据查询内容执行相应的操作,并返回一个回应消息给主机。这种查询-回应机制确保了主机和从机之间的有效通信。

  7. 存储区:Modbus协议还规定了从机的存储区结构,包括线圈(Coils)、离散量输入(Discrete Inputs)、输入寄存器(Input Registers)和保持寄存器(Holding Registers)等。这些存储区用于存储不同类型的数据,以便主机进行读写操作。

    image.png

modbus通讯讲解

假设你在现在要去小明家读电表度数。

你: 小明,你好我是抄电表的。

小明: 哥,你来了。我这边有二款电表。一款电表是走网线的。需要你用网线来读出我的电表数据。另一款电表是RS485的电表。需要你接线走串口读数据。

你: 没问题,都是小问题。

你 :这个走网线的电表IP地址是多少啊?端口号又是多少?电表度数地址是多少?

小明 : 这个网线IP是127.0.0.1 端口号是502。电表度数是1.3.0。

你: 好。

这个时候你打开modbus调试工具配置信息。


image.png
image.png

你: 小明啊!你家第一个电表,这个月用了100度电表啊

小明 : 那你再看看,另一个电表用了多少度电。

你 : 另一个电表的,波特率、数据位、停止位、校验位是多少啊?

小明 : 9600波特率 8数据位、1停止位、无校验位。

你: 好的,我读一下。

这个时候你打开modbus调试工具。用RS485转USB串口调试工具连接上RD,RX,GND这个三根线连接到你电脑上。

image.png

打用modbus调试工具。选择好串口配置好工具。

image.png

image.png

你:小明你的第二个电表这个月用了150度的电。

这个时候小刚走了过来。说道

小刚: 你是用软件读出来,你知道这中间发生了什么???

你 :我给你看看哦。

image.png

Tx:064-06 B0 00 00 00 06 01 03 00 00 00 01 Rx:065-06 B0 00 00 00 05 01 03 02 00 96

我们TX:代表是我发送的数据。RX代表接收到的数据。

要064-06 B0 00 00 00 06和065-06 B0 00 00 00 05这几个是我们软件模仿的所以多了出来。实际有郊报文是

TX:01 03 00 00 00 01

RX:01 03 02 00 96

数据帧1 (Tx:01 03 00 00 00 01)

  • 地址: 01,表示目标设备的地址。
  • 功能码: 03,表示读取保持寄存器。
  • 起始地址: 00 00 (十进制: 0),表示读取的起始寄存器地址。
  • 寄存器数量: 00 01 (十进制: 1),表示读取一个寄存器。

这个请求是向地址为1的设备读取一个保持寄存器的值,从地址0开始。

数据帧2 (Rx:01 03 02 00 96)

  • 地址: 01,表示响应设备的地址。
  • 功能码: 03,表示读取保持寄存器的响应。
  • 字节计数: 02,表示后续数据的字节数为2个字节。
  • 数据: 00 96,表示实际读取的数据。

你: 你看哦我读出来的有效数据是 00 96这个数据是16进制的所以我们要转换成十进制

说者你打开计算机,你看这个电表转出来数据是150也就是说你这个月的电表用了150度电

你们明白了吗?

image.png

modbus调试工具安装与使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化部门的一部分,现在Mo...
    得奕阅读 2,045评论 1 0
  • 一、Modbus 协议简介 ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或...
    漠漠彡阅读 94,907评论 2 21
  • Modbus协议 概述 Modbus是全球第一个真正用于工业现场的总线协议。Modbus网络是一个工业通信系统,由...
    雪域迷影阅读 1,129评论 0 1
  • 一、Modbus 协议简介 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制...
    lx_jian阅读 46,243评论 2 14
  • 概念 Modbus是一种串行通信协议,Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。...
    浪人残风阅读 1,276评论 0 1