1、MODBUS通讯协议介绍

MODBUS通讯协议是一种串行通信协议,是自动化仪表与可编程逻辑控制器(PLC)之间交换信息的一种方式。通过该协议,可将自动化仪表测量的流量、压力、温度、频率等电信号转换成工程量,用于自动化控制。

2、串口调试软件(ComMonitor)介绍

可以用串口调试软件调试自动化仪表(须支持RS485通讯),安装USB转485通讯电缆的驱动,查看计算机端口号:右击我的电脑图标,选择管理,单击设备管理器,单击端口,即可显示USB转485通讯电缆所使用的端口号。

将自动化仪表接上DC24V电源,并将RS485通讯的A、B两根线分别接至USB转485通讯电缆的A、B,然后将USB转485通讯电缆的USB口接至电脑的USB3.0口。

查看自动化仪表的站地址,打开温湿度传感器的参数配置工具,如下图所示。




freemodbus多个串口通信_校验码


将串口号选择计算机实际使用的端口号COM3,点击测试波特率,将显示设备地址与设备波特率,并可根据实际情况修改。


freemodbus多个串口通信_freemodbus多个串口通信_02

修改设备站地址与波特率


打开串口调试软件,设置软件端口,波特率,数据位,校验位,停止位。点击“打开串口”按钮。


freemodbus多个串口通信_freemodbus多个串口通信_03

串口调试软件


freemodbus多个串口通信_校验码_04


3、现在即可读取温湿度传感器的温湿度值:按如下写入代码(读取湿度)

发送帧(十六进制):02 03 00 00 00 01 84 39

发送帧解读:02----设备站地址 03----功能码(读保持寄存器)

0000----寄存器起始地址 0001----寄存器长度

84----校验码低位 39----校验码高位

接收帧(十六进制):02 03 02 02 EF BC A8

接受帧解读:02----设备站地址 03----功能码(读保持寄存器)

02----有效字节数 02EF----湿度值(十六进制)

BCA8----校验码

将02EF十六进制)转换为十进制为751,即湿度值为75.1%


freemodbus多个串口通信_freemodbus多个串口通信_05

读取仪表湿度值


4、现在即可读取温湿度传感器的温湿度值:按如下写入代码(读取温度)

发送帧(十六进制):02 03 00 01 00 01 D5 F9

发送帧解读:02----设备站地址 03----功能码(读保持寄存器)

0001----寄存器起始地址 0001----寄存器长度

D5----校验码低位 F9----校验码高位

接收帧(十六进制):02 03 02 00 BA 7D F7

接受帧解读:02----设备站地址 03----功能码(读保持寄存器)

02----有效字节数 00BA----温度值(十六进制)

7DF7----校验码

将00BA(十六进制)转换为十进制为186,即温度值为18.6℃


freemodbus多个串口通信_校验码_06

读取仪表温湿度值


5、现在即可读取温湿度传感器的温湿度值:按如下写入代码(读取温湿度)

发送帧(十六进制):02 03 00 00 00 02 C4 38

发送帧解读:02----设备站地址 03----功能码(读保持寄存器)

0000----寄存器起始地址 0002----寄存器长度

C4----校验码低位 38----校验码高位

接收帧(十六进制):02 03 04 02 DF 00 B5 38 C6

接受帧解读:02----设备站地址 03----功能码(读保持寄存器)

04----有效字节数 02DF----湿度值(十六进制)

00B5----温度值(十六进制)

38C6----校验码

湿度转换:将02DF(十六进制)转换为十进制为735,即湿度值为73.5%

温度转换:将00B5(十六进制)转换为十进制为181,即温度值为18.1℃


freemodbus多个串口通信_freemodbus多个串口通信_07

读取仪表温湿度值