MODBUS软件开发 (四) MODBUS协议的相关知识(上)

简介: MODBUS软件开发 (四) MODBUS协议的相关知识

第四章 MODBUS协议的相关知识


4.1 功能码概要

1670943955392.jpg

1670943964894.jpg

1670943974208.jpg

1670943982609.jpg

1670943992065.jpg

4.2 01(0x01读线圈/离散量输出状态)


4.2.1 功能说明

1670944003583.jpg


0x01: 读线圈寄存器

0x02: 读离散输入寄存器

0x03: 读保持寄存器

0x04: 读输入寄存器

0x05: 写单个线圈寄存器

0x06: 写单个保持寄存器

0x0f: 写多个线圈寄存器

0x10: 写多个保持寄存器

如上所示一共8种功能码。这其中有涉及到线圈、离散输入、保持、输入四种寄存器。

线圈寄存器:线圈寄存器:实际上就可以类比为开关量(继电器状态),每一个bit对应一个信号的开关状态。所以一个byte就可以同时控制8路的信号。比如控制外部8路io的高低。 线圈寄存器支持读也支持写,写在功能码里面又分为写单个线圈寄存器和写多个线圈寄存器。对应上面的功能码也就是:0x01 0x05 0x0f


4.2.2 查询报文

1670944030682.jpg

1670944038463.jpg

1670944046065.jpg

1670944052348.jpg

4.2.3 响应报文

1670944061953.jpg

1670944068644.jpg

1670944076860.jpg

4.2.4 借助工具软件观察和理解

1670944085918.jpg

1670944094574.jpg

1670944102887.jpg

1670944111173.jpg

1670944120443.jpg

1670944129135.jpg

1670944136268.jpg

1670944144175.jpg

1670944153562.jpg

1670944160339.jpg

1670944167465.jpg

1670944174906.jpg

1670944182092.jpg

1670944189069.jpg

针对上图,我们拿下来做分析一下大小端:首先收到的信息是53,6B,01…而在线圈寄存器中存储的类似开关量的东西如下图:

1670944201242.jpg

我们画一个图分析一下:

1670944210483.jpg

你会发现几个规律并验证了前文:

1.按字节读取,从字节的角度来看,按字节从小到大的存储顺序来读。

2.一个字节内部存在大小端,其中53,3是低位,5是高位。地位存在低地址,所以是小端传输。

1670944219285.jpg

1670944227370.jpg

1670944233796.jpg

4.3 02 (0x02)读取离散量输入值


4.3.1 功能说明

1670944243051.jpg

4.3.2 查询报文

1670944251646.jpg

1670944257654.jpg

1670944268426.jpg

4.3.3 响应报文

1670944276455.jpg

1670944286276.jpg

0x01: 读线圈寄存器

0x02: 读离散输入寄存器

0x03: 读保持寄存器

0x04: 读输入寄存器

0x05: 写单个线圈寄存器

0x06: 写单个保持寄存器

0x0f: 写多个线圈寄存器

0x10: 写多个保持寄存器

如上所示一共8种功能码。这其中有涉及到线圈、离散输入、保持、输入四种寄存器。


离散输入寄存器:如果线圈寄存器理解了这个自然也明白了。离散输入寄存器就相当于线圈寄存器的只读模式,他也是每个bit表示一个开关量,而他的开关量只能读取输入的开关信号,是不能够写的。比如我读取外部按键的按下还是松开。所以功 能码也简单就一个读的0x02

相关文章
EMQ
|
传感器 监控 网络协议
使用 Neuron 接入 Modbus TCP 及 Modbus RTU 协议设备
作为一款支持数十种工业协议转换的物联网边缘工业协议网关软件,Neuron也已经实现了基于Modbus RTU协议TCP传输的功能。本文将在Ubuntu 20.04.3、X86_64的环境下,介绍如何使用Neuron接入Modbus TCP及Modbus RTU协议设备。
EMQ
722 0
使用 Neuron 接入 Modbus TCP 及 Modbus RTU 协议设备
|
2月前
|
传感器 数据采集 网络协议
什么是网络通信中的 Modbus协议?
网络协议是网络通信中至关重要的一部分,它定义了网络中两个或多个设备之间通信的规则、过程和格式。这些规则确保了计算机网络设备能够使用一种通用语言来传输和接收数据,而不管它们的设计、硬件或基础设施如何。
49 1
|
2月前
|
开发框架 网络协议 前端开发
Modbus协议和应用开发介绍
Modbus协议和应用开发介绍
|
4月前
|
存储 监控 网络协议
【MODBUS】Modbus协议入门简介
【MODBUS】Modbus协议入门简介
112 1
|
4月前
|
网络协议 算法
【MODBUS】Modbus的3种传输方式
【MODBUS】Modbus的3种传输方式
93 1
|
4月前
|
传感器 监控
【MODBUS】Modbus协议和PLC协议的区别和联系
【MODBUS】Modbus协议和PLC协议的区别和联系
175 0
|
存储 网络协议
Modbus通信协议学习笔记
Modbus通信协议学习笔记
126 0
LabVIEW实现Modbus通信
Modbus只是工业控制中常用的一种协议方式,本篇博文依旧是通过串口通信的方式实现基本的Mosbus操作。
MODBUS软件开发 (一) 初识MODBUS
MODBUS软件开发 (一) 初识MODBUS
133 1
MODBUS软件开发 (一) 初识MODBUS