Modbus RTU PWM Input 8CH

来自Waveshare Wiki
跳转至: 导航搜索

说明

Modbus RTU Relay
{{{name2}}}
{{{name3}}}
功能简介
特性 RS485 模拟量采集模块
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 RS485

产品参数

通信接口 RS485
通信波特率 4800,9600,19200,38400,57600,
115200,128000,256000
默认通信格式 9600,N,8,1
Modbus 协议 标准 Modbus RTU 协议
供电电压 DC 7~36V
脉冲输入电平范围 3.3V~30V
脉冲频率测量范围 400Hz~50KHz
脉冲分辨率 0.01Hz
脉冲精度 5‰
占空比测量范围 0~100%
占空比分辨率 0.01%
占空比精度 5‰

硬件说明

  • CHN+为正端输入,CHN-为负端输入。PWM测量频率范围为400Hz~50KHz,占空比范围为0~100%。

Modbus-RTU-Analog-Output-8CH-B-details-2-1.jpg

硬件连接

  • 将USB TO 485和目标板通过杜邦线,将A-->A和B-->B相连,如下图所示:

Modbus-RTU-Analog-Input-8CH-test-01.jpg

软件测试

SSCOM串口调试助手

  • 下载SSCOM 串口调试助手并在电脑上打开,打开对应的端口号,设置波特率为9600,选择hex发送和接收,加检验选择ModbusCRC16校验。
    发送如下指令,正常会返回八路脉冲输入数据。
01 04 00 00 00 18

Modbus RTU PWM Input 8CH 1.png

  • 如果需要发送其他命令则选择HEX发送,加检验选择ModbusCRC16校验,输入命令的前六个字节点击发送则会自动添加CRC校验码。
    例如发送如下指令,可以设置通道2脉冲输入数据。
01 04 00 03 00 03

Modbus RTU PWM Input 8CH 2.png

  • 更多详细的控制指令请查看请查看开发协议。

Modbus Poll软件

  • 串口软件不方便观察数据,可以选择Modbus Poll软件读取数据。下载并安装Modbus Poll软件。
  • 打开软件,选择setup->Read/Write Definition,Slave ID选择实际设备地址,Function选择04功能码,Quantity改为24。点击OK确认。

Modbus RTU PWM Input 8CH 3.png

  • 选择Connection->Connect...,选择对应的串口,波特率为9600,八位无校验模式。点击OK连接。

Modbus-RTU-Analog-Input-3.png

  • 连接正常后将显示寄存器数据,为方便观察需设置频率格式。选择1,3,6,9,12,15,18,21寄存器右键选择Format->32 Bit Unsigned->Big-endian,格式设置为无符号32位大段格式。同时可在Alias栏添加寄存器备注。

Modbus RTU PWM Input 8CH 5.png

  • 设置正常格式后显示正常八通道脉冲频率和占空比显示如下。

Modbus RTU PWM Input 8CH 6.png

开发协议 V2

功能码介绍

功能码 备注
03 读取保持寄存器
04 读取输入寄存器
06 写单个保持寄存器
10 写多个保持寄存器

寄存器地址介绍

地址(HEX) 地址存储内容 寄存器取值 权限 Modbus 功能码
3x0000
4x0001
道通1频率高16位
道通1频率低16位
数值为无符号32进制,单位0.01Hz,范围:400~5000000,即400Hz~50KHz 0x04
3x0002 道通1占空比 数值为无符号16进制,单位0.01%,范围0~1000,即0~100% 0x04
3x0003
4x0004
道通2频率高16位
道通2频率低16位
数值为无符号32进制,单位0.01Hz,范围:400~5000000,即400Hz~50KHz 0x04
3x0005 道通2占空比 数值为无符号16进制,单位0.01%,范围0~1000,即0~100% 读/写 0x04
3x0006
4x0007
道通3频率高16位
道通3频率低16位
数值为无符号32进制,单位0.01Hz,范围:400~5000000,即400Hz~50KHz 0x04
3x0008 道通3占空比 数值为无符号16进制,单位0.01%,范围0~1000,即0~100% 读/写 0x04
3x0009
4x000A
道通4频率高16位
道通4频率低16位
数值为无符号32进制,单位0.01Hz,范围:400~5000000,即400Hz~50KHz 0x04
3x000B 道通4占空比 数值为无符号16进制,单位0.01%,范围0~1000,即0~100% 读/写 0x04
3x000C
4x000D
道通5频率高16位
道通5频率低16位
数值为无符号32进制,单位0.01Hz,范围:400~5000000,即400Hz~50KHz 0x04
3x000E 道通5占空比 数值为无符号16进制,单位0.01%,范围0~1000,即0~100% 读/写 0x04
4x000F
4x0010
道通6频率高16位
道通6频率低16位
数值为无符号32进制,单位0.01Hz,范围:400~5000000,即400Hz~50KHz 0x04
4x0011 道通6占空比 数值为无符号16进制,单位0.01%,范围0~1000,即0~100% 读/写 0x04
4x0012
4x0013
道通7频率高16位
道通7频率低16位
数值为无符号32进制,单位0.01Hz,范围:400~5000000,即400Hz~50KHz 0x04
4x0014 道通7占空比 数值为无符号16进制,单位0.01%,范围0~1000,即0~100% 读/写 0x04
4x0015
4x0016
道通8频率高16位
道通8频率低16位
数值为无符号32进制,单位0.01Hz,范围:400~5000000,即400Hz~50KHz 0x04
4x0017 道通8占空比 数值为无符号16进制,单位0.01%,范围0~1000,即0~100% 读/写 0x04
4x2000 串口参数 高八位为校验方式:0x00~0x02
低八位为波特率方式:0x00~0x07
读/写 0x03,0x06
4x4000 设备地址 直接存储 Modbus 地址
设备地址:0x0001-0x00FF
读/写 0x03,0x06
4x8000 软件版本 转为十进制然后小数点左移两位即表示软件版本
0x0064 = 100 = V1.00
0x03

操作指令介绍

读取脉冲输入指令

发送码:01 04 00 00 00 03 B0 0B

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
04 04指令 读取输入寄存器
00 00 寄存器起始地址 读取通道起始寄存器,每个通道占三个寄存器,前两个寄存器保存频率,后一个寄存器保存占空比。
00 03 寄存器数量 读取寄存器数量,不能超过最大寄存器数量
B0 0B CRC16 前6字节数据的CRC16校验和

返回码: 01 04 06 00 3B 83 A5 03 01 7D C1

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
04 04指令 读取输入寄存器
06 字节数量 数据长度
3B 83
A5 03
03 01
寄存器数据
频率高16位
频率低16位
占空比
每个通道占三个寄存器,前两个寄存器保存频率,后一个寄存器保存占空比。
频率为无符号32进制,单位0.01Hz,范围:100~20000000,即1Hz~200KMHz
占空比为无符号16进制,单位0.01%,范围0~1000,即0~100%
7D C1 CRC16 前6字节数据的CRC16校验和

示例:[1号地址设备]

读取1-8通道 : 01 04 00 00 00 18 F0 00
读取  1通道 : 01 04 00 00 00 03 B0 0B
读取  2通道 : 01 04 00 03 00 03 40 0B
读取3-5通道 : 01 04 00 06 00 09 D0 0D

设置波特率指令

发送码:00 06 20 00 00 05 43 D8

字段 含义 备注
00 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
06 06指令 设置波特率,设备地址
20 00 指令寄存器 0x2000为设置波特率,0x4000为设置设备地址
00 校验方式 0x00为无校验,0x01为偶检验,0x02为奇校验
05 波特率数值 波特率数值对应
0x00 : 4800
0x01 : 9600
0x02 : 19200
0x03 : 38400
0x04 : 57600
0x05 : 115200
0x06 : 128000
0x07 : 256000
43 D8 CRC16 前 6 字节数据的 CRC16 校验和

返回码:00 06 20 00 00 05 43 D8

字段 含义 备注
00 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
06 06指令 设置波特率,设备地址
20 00 指令寄存器 0x2000为设置波特率,0x4000为设置设备地址
00 校验方式 0x00为无校验,0x01为奇检验,0x02为偶校验
05 波特率 波特率数值对应
0x00 : 4800
0x01 : 9600
0x02 : 19200
0x03 : 38400
0x04 : 57600
0x05 : 115200
0x06 : 128000
0x07 : 256000
43 D8 CRC16 前 6 字节数据的 CRC16 校验和

示例:[1号地址设备]

设置波特率  4800 :00 06 20 00 00 00 83 DB
设置波特率  9600 :00 06 20 00 00 01 42 1B
设置波特率115200 :00 06 20 00 00 05 43 D8

设置设备地址指令

发送码:00 06 40 00 00 01 5C 1B

字段 含义 备注
00 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
06 06指令 设置波特率,设备地址
40 00 指令寄存器 0x2000为设置波特率,0x4000为设置设备地址
00 01 设备地址 设置的设备地址,0x0001-0x00FF
5C 1B CRC16 前 6 字节数据的 CRC16 校验和

返回码:00 06 40 00 00 01 5C 1B

字段 含义 备注
00 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
06 06指令 设置波特率,设备地址
40 00 指令寄存器 0x2000为设置波特率,0x4000为设置设备地址
00 01 设备地址 设置的设备地址,0x0001-0x00FF
5C 1B CRC16 前 6 字节数据的 CRC16 校验和

示例[1号地址设备]:

设置设备地址为0x01 :00 06 40 00 00 01 5C 1B
设置设备地址为0x02 :00 06 40 00 00 02 1C 1A
设置设备地址为0x03 :00 06 40 00 00 03 DD DA

读取设备地址指令

发送码:00 03 40 00 00 01 90 1B

字段 含义 备注
00 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
03 03指令 读取设备地址指令
40 00 指令寄存器 0x4000为读取设备地址,0x8000为读取软件版本
00 01 字节数 固定0x0001
90 1B CRC16 前 6 字节数据的 CRC16 校验和

返回码:01 03 02 00 01 79 84

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
03 03指令 读取软件版本,读取设备地址指令
02 字节数 返回字节数
00 01 设备地址 设置的设备地址,0x0001-0x00FF
79 84 CRC16 前 6 字节数据的 CRC16 校验和

示例:[2号地址设备]

发送 : 00 03 40 00 00 01 90 1B
返回 : 02 03 02 00 02 7D 85     //地址0x02

读取软件版本指令

发送码:00 03 80 00 00 01 AC 1B

字段 含义 备注
00 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
03 03指令 读取软件版本,读取设备地址指令
80 00 指令寄存器 0x4000为读取设备地址,0x8000为读取软件版本
00 01 字节数 固定0x0001
AC 1B CRC16 前 6 字节数据的 CRC16 校验和

返回码:01 03 02 00 64 B9 AF

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
03 03指令 读取软件版本,读取设备地址指令
02 字节数 返回字节数
00 64 软件版本 转为十进制然后小数点左移两位即表示软件版本
0x0064 = 100 = V1.00
B9 AF CRC16 前 6 字节数据的 CRC16 校验和

示例:

发送:00 03 80 00 00 01 AC 1B
返回:01 03 02 00 64 B9 AF       //0x0064 = 100 =V1.00

异常功能码

当接收到的指令出错或者异常设备将会返回异常响应,异常响应格式如下。

返回码:01 85 03 02 91

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
85 异常功能吗 异常功能码 = 请求功能码 + 0x80
03 字节数 异常码
02 91 CRC16 前 6 字节数据的 CRC16 校验和

异常码是一个单字节值,用于指示错误的类型。Modbus协议定义的几个常用异常码:

异常码 名称 描述
0x01 非法功能 请求的功能码不支持
0x02 非法数据地址 请求的数据地址错误
0x03 非法数据值 请求的数据值或操作无法执行
0x04 服务器故障 服务器设备故障
0x05 应答 已接收到请求并正在处理
0x06 设备繁忙 设备当前正忙无法执行请求的操作

FAQ


设备无需额外下载驱动,通过设备的485接口发送modbus指令即可控制设备继电器的开关或者查询继电器状态

{{{5}}}


没有拨码,只能通过指令设置

{{{5}}}


请参考 Modbus系列BootLoader说明 进入boot模式,然后就可以选择选项3来读取通信参数或者选择选项2来重置通信参数

{{{5}}}


检查一下485总线是否反接,没反接的话在A、B线之间跨接上120Ω的终端电阻

{{{5}}}


5V供电情况下,待机时的功耗参考值:0.445w。具体功耗请以实际情况为准

{{{5}}}




技术支持


联系人:邓工
EMAIL:3005766107@qq.com
QQ:3005766107
微信:扫下方二维码添加
Dhz-wx.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证