Modbus RS485 设备的串口调试


准备

硬件设备:
电脑
RS485 温湿度传感器
RS485 土壤温湿度传感器
RS485 继电器控制模块
TTL转RS485模块
TTL转USB模块
软件:
串口调试助手

Modbus功能码

Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。
关于协议的的具体内容比较复杂,我们是通过串口来与Modbus设备通讯,所以并不需要了解更多具体内容,只需要知道Modbus是主从机制,主机发送问询,从机回复,对于功能码需要了解,能够使用功能码通过串口实现信息下发与回收即可。
Modbus 有两种通信传输方式,一种是 ASCII 模式,一种是 RTU 模式。第一种不常用,我们这里使用的是RTU模式。一条典型的RTU数据帧如下:

起始位设备地址功能码数据CRC校验结束符
T1-T2-T3-T48bit8bitn个8bit16bitT1-T2-T3-T4

二、使用步骤

1.接线

传感器的A接RS485模块A,传感器的B接RS485模块B,传感器电源按其要求提供(多数是5-24V直流供电,但要仔细阅读传感器说明书,以免错接损坏传感器)。RS485模块与USB模块连接:RX接RX,TX接TX,GND接GND,VCC接VCC。

在这里插入图片描述

2.串口调试

我调试所使用的传感器如图。
在这里插入图片描述
串口助手:在这里插入图片描述
MODBUS部分功能码

代码功能
01读线圈状态
02读离散输入状态
03读保持寄存器状态
04读输入寄存器状态
05写单个线圈
06写单个保持寄存器
15写多个线圈
16写多个保持寄存器

在这里插入图片描述
读取温度请求码:01 04 00 01 00 01 60 0A
从机返回码:01 04 02 01 04 B9 63
读取湿度请求码:01 04 00 02 00 01 90 0A
从机返回码:01 04 02 02 1A 39 9B

温湿度的计算

返回码中的第4位和第5位是返回的温湿度值,但是16进制的显示方式,需要换算才能得到我们需要的十进制表示。
在这里插入图片描述
计算方法是:
先将16进制书转为10进制数:(01)16=(1)10,(04)16=(4)10,(02)16=(2)10,(1A)16=(26)10
温度值 = (返回值高位256+返回值低位)/10 = (1256+4)/10 = 26.0摄氏度
湿度值 = (返回值高位256+返回值低位)/10 = (2256+26)/10 = 53.8%
如果高位大于7F,计算方法为:
先将16进制书转为10进制数,然后
数值 = (返回值高位*256+返回值低位-65535)/10

  • 6
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Modbus Poll是一个主机仿真器,用来帮助开发人员测试Modbus设备,或者其它MOdbus协议的测试和仿真。它支持多文档接口,即,可以同时监视多个从设备/数据域。每个窗口简单地设定从设备ID,功能,地址,大小和轮询间隔。你可以从任意一个窗口读写寄存器和线圈。如果你想改变一个单独的寄存器,简单地双击这个值即可。或者你可以改变多个寄存器/线圈值。提供数据的多种格式方式,比如浮点、双精度、长整型(可以字节序列交换)。 状态条显示错误信息。 如果你是一个从设备开发者,你可以通过"test center" 菜单,组织并发送你自己的测试字符串,并以16进制形式检查从设备返回的结果。 为VB,EXCEL等提供了OLE自动化接口。可以用OLE接口解析和显示Modbus数据,然后送达你指定的设备,即,在EXCEL中编辑数据,然后发送到你的从设备!示例参看安装后的Excel example.xls。 支持下列协议: Modbus RTU Modbus ASCII Modbus TCP/IP Modbus RTU Over TCP/IP Modbus ASCII Over TCP/IP Modbus UDP/IP Modbus RTU Over UDP/IP Modbus ASCII Over UDP/IP MODBUS POLL功能: OLE自动化可以简单地与Visual Basic接口,使用起来类似于ActiveX控件。参见 VBExample.vbp 读/写多达125个寄存器 读/写多达2000个输入/线圈 Test Center菜单 (组织你自己的测试字串) 打印和打印预览 监视串行数据流量serial data traffic Data logging to a text file Data logging direct to Excel 上下文敏感的HLP文件 10 Display formats such as float, double etc. Adjustable Address Base (0 or 1). 字体和颜色选项 广播功能(从设备ID=0) Easy control of RS-485 converters with RTS toggle. 支持MODBUS功能: 01: Read coil status 读线圈状态 02: Read input status 读输入状态 03: Read holding register读保持寄存器 04: Read input registers 读输入寄存器 05: Force single coil 强制单线圈 06: Preset single register 预置单寄存器 15: Force multiple coils 强制多线圈 16: Preset multiple registers 预置多寄存器 17: Report slave ID 报告从设备ID 22: Mask write register 屏蔽写寄存器 23: Read/Write registers 读/写寄存器
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值