Modbus协议很简单,结合温湿度传感器手把手教你使用Modbus协议

createh53个月前 (02-01)技术教程23

一、阅读温湿度传感器产品手册

1、产品参数

2、产品所用到的Modbus协议功能号

3、产品通讯协议


二、利用PC串口调试助手与温控传感器进行通信设置

设置串口调试助手通讯格式字:波特率9600,校验位NONE,数据位8,停止位1。


三、读取输入寄存器的内容(0x04)

1、PC读取温湿度传感器温度值(0x04)

1.1、主机发送——主机发送命令帧格式如下:


根据产品通讯协议,存放温度寄存器地址为:0x0001,寄存器数量为:1,根据命令帧格式,填表如下:


1.2、从机响应——从机响应数据帧格式如下:


温湿度传感器响应数据帧为:


温度值包含2个字节,值=0x00FE,转换为十进制=254,根据产品手册,温度单位为0.1℃,因此实际温度值=254×0.1℃=25.4℃。


2、PC连续读取温湿度传感器湿度值、湿度值(0x04)

2.1、主机发送——主机发送命令帧格式如下:

根据产品通讯协议,存放温度值、湿度值寄存器地址为连续的地址,分别为:0x0001、0x0002,因此起始地址=0x0001,寄存器数量=0x0002,填表如下:


2.2、从机响应——从机响应数据帧格式如下:


读取温度值=0x0112,转换为十进制=274,实际温度=274×0.1℃=27.4℃;

读取湿度值=0x0231,转换为十进制=561,实际温度=561×0.1%RH =56.1%RH。


四、读取保持寄存器内容(0x03)

根据产品通信协议,保持温湿度传感器设定了四个保持寄存器,分别为:

设备地址(0x0101)、波特率(0x0102)、温度修正值(0x0103)、湿度修正值(0x0104)

1、PC读取从机设备地址(0x03)

1.1、主机发送——主机发送命令帧格式如下:


根据产品通讯协议,存放设备地址的寄存器地址为:0x0101,寄存器数量为:1,根据命令帧格式,填表如下:


1.2、从机响应——从机响应数据帧格式如下:


温湿度传感器响应数据帧为:


设备地址值包含2个字节,值=0x0001,与我们预想的一致。


2、PC连续读取从机设备地址、波特率、温度修正值、湿度修正值(0x03)

1.1、主机发送——主机发送命令帧格式如下:

根据产品通讯协议,“设备地址、波特率、温度修正值、湿度修正值”为连续的四个地址,起始地址为:0x0101,寄存器数量为:4,根据命令帧格式,填表如下:


1.2、从机响应——从机响应数据帧格式如下:


设备地址=0x0001、波特率=0x258,十进制9600、温度修正=0、湿度修正=0。


五、修改单个保持寄存器内容(0x06)

1、PC修改从机设备地址(0x06)

例如,将从机设备地址由01改为05

1.1、主机发送——主机发送命令帧格式如下:


根据产品通讯协议,存放设备地址的寄存器地址为:0x0101,寄存器修改值为:05,根据命令帧格式,填表如下:


1.2、从机响应——从机响应数据帧格式如下(与发送相同):



以上已经完成了对从机设备地址的修改,断送电重启一次温湿度传感器,再次发送“01 04 00 01 00 01 60 0A”读取温度时,已经无法收到响应,因为,设备地址已经改为“05”,需要发送“05 04 00 01 00 01 61 8E”,即可收到响应,读取温度值为0x0277,转换为十进制=277,因此实际温度=277×0.1℃=27.7℃。


六、修改多个保持寄存器内容(0x10)

1、PC同时修改从机设备地址、波特率、温度修正值、湿度修正值

例如,要求如下:


1.1、主机发送——主机发送命令帧格式如下:


说明:第7位“字节数”=寄存器数的2倍,这里修改4个寄存器的内容,因此字节数为8,填表如下:


1.2、从机响应——从机响应数据帧格式如下(与发送相同):



相关文章

基于Netty的ModbusRtu和云服务器(java)通讯

上篇讲了modbus协议的基础。今天说下问题的场景及过程的困扰,断断续续历时个把月才把问题解决。场景(农污):站点分散分布在农村,不具备有线网络。每站点现场通过plc接现场设备,比如泵、液位计、鼓风机...

【开源】一个基于java语言的物联网中间件,支持常用物联网协议

项目介绍iot-ucy是使用java语言且基于netty, spring boot, redis等开源项目开发来的物联网网络中间件, 支持udp, tcp, 串口(com)通讯(window、linu...

Java 泛型使用(类、方法、接口协议、类型通配符、通配符上下限)

一、简介泛型:是 JDK5 中引入的特性,它提供了编译时类型安全检测机制,该机制允许在编译时检测到非法的类型,它的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。一提到参数,最熟悉的就是定...

分布式协议与算法,你了解多少?(分布式协议 paxos)

我这里将主要列举一致性Hash算法、Gossip协议、QuorumNWR算法、PBFT算法、PoW算法、ZAB协议,Paxos会分开单独讲。一致性Hash算法一致性Hash算法是为了解决Hash算法的...

HUAWEI内网最新发布了一份452页网络协议手册,GitHub一夜霸榜

前言《圣经》中有一个通天塔的故事,大致是说,上帝为了阻止人类联合起来,就让人类说不同的语言。人类没法儿沟通,达不成“协议”,通天塔的计划就失败了。但是千年以后,有一种叫“程序猿”的物种,敲着一种这个群...