单相电源 MODBUS 通讯协议
本协议采用 Modbus 规约RTU 模式,可以方便地与多种形式的组态软件连接。
一、接口定义
接口定义:标准 RS232/485 口定义 (如图所示)
波特率:9600bps (默认)
注:SG 为公共地。
字节格式:一位起始位,八位数据位,一位停止位
设备地址:1- 127 可设 (更改设备地址详细操作见说明书) ,本协议以地址 100 为例。
二、帧格式
2. 1 读取设备寄存器内容 (功能码 0x03)
2. 1. 1 上位机发送的帧格式
顺序 | 代码 | 示例 | 说明 |
1 | 设备地址 | 0x64 | 0x64 即设备地址 100 |
2 | 0x03 | 0x03 | 读寄存器功能码 |
3 | 起始寄存器地址高字节 | 0x00 | 寄存器起始地址 |
4 | 起始寄存器地址低字节 | 0x00 | |
5 | 寄存器个数高字节 | 0x00 | 寄存器个数 |
6 | 寄存器个数低字节 | 0x01 | |
7 | CRC16 校验低字节 | 0x8D | CRC 校验数据 |
8 | CRC16 校验高字节 | 0xFF |
2. 1.2 设备回送的帧格式
顺序 | 代码 | 说明 |
1 | 设备地址 | 设备地址 100 即 0x64 |
2 | 0x03 | 功能码 |
3 | 回送数据域字节数 (M) | |
4 | 第一个寄存器数据 |
… … | ...... | |
第 N 个寄存器数据 | ||
M 4 | CRC16 校验低字节 | CRC 校验数据 |
M 5 | CRC16 校验高字节 |
2. 1.3 如果起始寄存器地址错误或者寄存器数量错误,仪表回送:
顺序 | 代码 | 示例 | 说明 |
1 | 设备地址 | 0x64 | 0x64 即设备地址 100 |
2 | 0x83 | 0x83 | 功能码 最高位置 1 |
3 | 0x02 | 0x02 | 错误代码 |
4 | CRC16 校验低字节 | 0xD0 | CRC 校验数据 |
5 | CRC16 校验高字节 | 0xEE |
2.2 设置设备寄存器内容 (功能码 0x06)
2. 1. 1 将数据写入单个设备寄存器中,上位机发送的帧格式:
顺序 | 代码 | 示例 | 说明 |
1 | 设备地址 | 0x64 | 0x64 即设备地址 100 |
2 | 0x06 | 0x06 | 写寄存器功能码 |
3 | 寄存器地址高字节 | 0x00 | 寄存器起始地址 |
4 | 寄存器地址低字节 | 0x0D | |
5 | 写入数据高字节 | 0x04 | 数据 |
6 | 写入数据低字节 | 0x4C | |
7 | CRC16 校验低字节 | 0x12 | CRC 校验数据 |
8 | CRC16 校验高字节 | 0xC9 |
2. 1.2 设备回送 (写入成功):
如果写入正确,则设备回送相同的数据即原命令返回,设备接受执行.
2. 1.3 设备回送 (地址错误):
顺序 | 代码 | 示例 | 说明 |
1 | 设备地址 | 0x64 | 0x64 即设备地址 100 |
2 | 0x86 | 0x86 | 功能码 最高位置 1 |
3 | 0x02 | 0x02 | 错误代码 |
4 | CRC16 校验低字节 | 0xD3 | CRC 校验数据 |
5 | CRC16 校验高字节 | 0xBE |
2. 1.4 设备回送 (写入的数据超出设备执行范围):
顺序 | 代码 | 示例 | 说明 |
1 | 设备地址 | 0x64 | 0x64 即设备地址 100 |
2 | 0x86 | 0x86 | 功能码 最高位置 1 |
3 | 0x03 | 0x03 | 错误代码 |
4 | CRC16 校验低字节 | 0x12 | CRC 校验数据 |
5 | CRC16 校验高字节 | 0x7E |
三、 设备数据寄存器地址
3. 1 数据寄存器地址
序 号 | 参数名称 | 数据 类型 | 单位 | 访 问 规则 | 寄 存 器 地址 | 说明 |
1 | 电源工作状态 | UINT | R | 0x0000 | 电源工作状态查询 | |
2 | 输出频率 Hz | UINT | 0. 1Hz | R | 0x0001 | 电源输出参数查询 |
3 | 输出电压 | UINT | 0. 1V | R | 0x0002 | |
4 | 输出电流 | UINT | R | 0x0003 | ||
5 | 输出有功功率 | UINT | R | 0x0004 | ||
6 | 输出功率因数 | UINT | R | 0x0005 | ||
7 | 高低档状态 | UINT | R | 0x0006 | ||
8 | 设置频率 | UINT | 0. 1Hz | R/W | 0x0007 | 电源设置参数 |
9 | 设置电压 | UINT | 0. 1V | R/W | 0x0008 | |
10 | 控制命令 | UINT | W | 0x0009 | 电源控制命令 | |
说明: 所有参数均为无符号双字节组成的字,数据放置为:高位高字节,低位低字节
访问规则中R:表示只可读取、W:表示只可写入、R/W:表示可读可写。
3.2 参数说明
3.2. 1 电源工作状态数据说明:
状态数据 | 状态说明 | 状态数据 | 状态说明 |
0x0000 | 待机态 | 0x0004 | 过热报警 |
0x0001 | 启动态 | 0x0005 | 过载报警 |
0x0002 | 设置态 | 其他保留 | |
0x0003 | 短路报警 |
3.2.2 输出频率
读取的参数值表示当前设备输出的频率值,单位为 0. 1Hz
例如:读取的数据为 0x0258 即十进制 600 ,表示当前输出频率为 60.0Hz
3.2.3 输出电压
读取的参数值表示当前设备输出的电压值,单位为 0. 1V
例如:读取的数据为 0x044C 即十进制 1100 ,表示当前输出电压为 110.0V 3.2.4 输出电流
读取的参数值表示当前设备输出的电流值。单位为 0.01A,
例如:读取的数据为 0x00D0 即十进制 208 ,表示当前输出电流为 2.08A; 3.2.5 输出有功功率
读取的参数值表示当前设备输出的有功功率值,单位为 1W
例如:读取的数据为 0x00E4 即十进制 228 ,表示当前输出有功功率为 228W 3.2.6 高低档状态
当前设备输出档位状态:0x00 为低档 0x01 为高档
3.2.7 设置频率
设置频率单位为 0. 1Hz ,设置频率参数为可读可写类型,即可以更改设置频率 也可以读出当前设备的设置频率
例如:欲设置频率 62Hz ,在寄存器地址 0x0C 中写入 0x026c 即可。
3.2.8 设置电压
设置电压单位为 0. 1V ,设置电压参数为可读可写类型,即可以更改设置电压也 可以读出当前设备的设置电压
例如:欲设置电压 120V ,在寄存器地址 0x0D 中写入 0x04B0 即可。
3.2.9 控制命令
控制命令数据 | 控制命令说明 |
0x0000 | 控制设备停止输出 |
0x0001 | 控制设备启动输出 |
0x0002 | 保留 |
0x0003 | 设备切换至低档 (此条无效) |
0x0004 | 设备切换至高档 (此条无效) |
其他 | 保留 |
说明:设备在任何状况下都可执行 0x0000 命令即设备停止输出命令
设备只有在待机状态下才可以执行 0x0001 命令即设备启动输出命令
注:设备启动状态时均不可跨档设置电压
举例说明: 电源通讯地址设置为 1 ,波特率固定 9600 ,指令如下:
1 、设置 110V ,01 06 00 08 04 4C 0B 3D
2 、设置 220V ,01 06 00 08 08 98 0E 62
3 、启动,01 06 00 09 00 01 98 08
4 、停止,01 06 00 09 00 00 59 C8
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved