WepeX-Modbus 通信协议及应用说明
WepeX-Modbus 通信协议及应用说明
Rev.: A2
文件编号:
发行日期: 2014 年 10 月 20 日
编 制: | 温正文 | 审 核: | 批 准: |
* 深圳市麦格xx电气股份有限公司 *
NO | 制定 / 修订 履历表 | 日 期 | 版本/次 | 页数 |
1 | 首版发行 | 2014-10-20 | A2 | 9 |
WepeX-Modbus 通讯协议及应用说明
3PIN 通信端口
5PIN 通信端口
5
1
5PIN 端口定义:
1.+12 至+24V
2.GND
3.RS485-B
4.GND
5.RS485-A
3PIN 端口定义:
1.反馈信号
2.GND
3.功率信号
一、 WepeX-Modbus 端口说明:
* WepeX-Modbus 上电控制顺序:
①控制器及中继器上电。
②控制板发生功率命令到中继器(首次上电功率代码数值必须在 25-100 范围内)
③至少 1 秒后电源模块上电。
注:通信控制必须严格遵守上电时序。
二、WepeX-Modbus 通信协议说明:
中继板地址拨码举例:
地址:0x01
地址;0x02
1、串口设置协议:
(标准 Modbus 规约的RTU 方式)xx率:19200
数据校验方式:偶校验数据位:8 位
停止位:1 位
中继器地址范围:1~32 广播地址:0x00帧校验方式:CRC16
2、寄存器说明:
寄存器地址 0x0000(十六进制数) | 磁控管 01 输出功率代码 |
寄存器地址 0x0001 | 磁控管 02 输出功率代码 |
寄存器地址 0x0002 | 磁控管 03 输出功率代码 |
寄存器地址 0x0003 | 磁控管 04 输出功率代码 |
寄存器地址 0x0004 | 磁控管 05 输出功率代码 |
寄存器地址 0x0005 | 磁控管 06 输出功率代码 |
寄存器地址 0x0006 | 磁控管 07 输出功率代码 |
寄存器地址 0x0007 | 磁控管 08 输出功率代码 |
寄存器地址 0x0008 | 磁控管 09 输出功率代码 |
寄存器地址 0x0009 | 磁控管 10 输出功率代码 |
寄存器地址 0x000A | 磁控管 11 输出功率代码 |
寄存器地址 0x000B | 磁控管 12 输出功率代码 |
寄存器地址 0x000C | 磁控管 13 输出功率代码 |
寄存器地址 0x000D | 磁控管 14 输出功率代码 |
寄存器地址 0x000E | 磁控管 15 输出功率代码 |
寄存器地址 0x000F | 磁控管 16 输出功率代码 |
寄存器地址 0x0010 | 磁控管 17 输出功率代码 |
寄存器地址 0x0011 | 磁控管 18 输出功率代码 |
寄存器地址 0x0012 | 通道 01 工作状态代码 |
寄存器地址 0x0013 | 通道 02 工作状态代码 |
寄存器地址 0x0014 | 通道 03 工作状态代码 |
寄存器地址 0x0015 | 通道 04 工作状态代码 |
寄存器地址 0x0016 | 通道 05 工作状态代码 |
寄存器地址 0x0017 | 通道 06 工作状态代码 |
寄存器地址 0x0018 | 通道 07 工作状态代码 |
寄存器地址 0x0019 | 通道 08 工作状态代码 |
寄存器地址 0x001A | 通道 09 工作状态代码 |
寄存器地址 0x001B | 通道 10 工作状态代码 |
寄存器地址 0x001C | 通道 11 工作状态代码 |
寄存器地址 0x001D | 通道 12 工作状态代码 |
寄存器地址 0x001E | 通道 13 工作状态代码 |
寄存器地址 0x001F | 通道 14 工作状态代码 |
寄存器地址 0x0020 | 通道 15 工作状态代码 |
寄存器地址 0x0021 | 通道 16 工作状态代码 |
寄存器地址 0x0022 | 通道 17 工作状态代码 |
寄存器地址 0x0023 | 通道 18 工作状态代码 |
寄存器地址 0x0024 | 通道 01 工作温度 |
寄存器地址 0x0025 | 通道 02 工作温度 |
寄存器地址 0x0026 | 通道 03 工作温度 |
寄存器地址 0x0027 | 通道 04 工作温度 |
寄存器地址 0x0028 | 通道 05 工作温度 |
寄存器地址 0x0029 | 通道 06 工作温度 |
寄存器地址 0x002A | 通道 07 工作温度 |
寄存器地址 0x002B | 通道 08 工作温度 |
寄存器地址 0x002C | 通道 09 工作温度 |
寄存器地址 0x002D | 通道 10 工作温度 |
寄存器地址 0x002E | 通道 11 工作温度 |
寄存器地址 0x002F | 通道 12 工作温度 |
寄存器地址 0x0030 | 通道 13 工作温度 |
寄存器地址 0x0031 | 通道 14 工作温度 |
寄存器地址 0x0032 | 通道 15 工作温度 |
寄存器地址 0x0033 | 通道 16 工作温度 |
寄存器地址 0x0034 | 通道 17 工作温度 |
寄存器地址 0x0035 | 通道 18 工作温度 |
注意:1、寄存器地址 0x0000-0x0011 磁控管输出功率代码设定范围 25-132(十进制)
功率代码说明: | ||
25 | 微波输出功率 250W | 电源输入功率 375W |
50 | 微波输出功率 500W | 电源输入功率 750W |
…… | …… | …… |
80 | 微波输出功率 800W | 电源输入功率 1200W |
100 | 微波输出功率 1000W | 电源输入功率 1500W |
132 | 微波输出功率 1320W | 电源输入功率 2000W |
2、寄存器地址 0x0024-0x0035 温度数值输出范围为 70 至 88 摄氏度(88 摄氏度过温保护,电源模块自动停机
Ⅰ.连接状态代码说明(取工作状态代码高 4 位):
0x00(取高 4 位数) | 电源模块通信线连接正常 |
0xF0 | 电源模块通信线非正常连接 |
Ⅱ.工作状态代码说明(取工作状态代码低 4 位):
0x00(取低 4 位数) | 工作正常 |
0x01 | 无反馈信号 |
0x02 | 欠压保护 |
0x03 | 过压保护 |
0x04 | 过流保护 |
0x05 | 过温保护 |
0x06 | 磁控管故障 |
0x07 | 浪涌保护 |
0x08 | 高压故障 |
0x09 | 开关管故障 |
0x0A | 无功率信号 |
0x0B | Vcc 保护 |
3、帧数据说明:
功能代码 | 功能说明 |
03 | 读保持寄存器 |
06 | 预置单个寄存器 |
16 | 预置多个寄存器 |
读保持寄存器主机帧格式:(功能码 03) | ||||||
0x01 | 地址 1 | |||||
0x03 | 功能码 03 | |||||
0x00 | 寄存器起始地址高字节 | |||||
0x12 | 寄存器起始地址低字节(起始地址 0) | |||||
0x00 | 数据个数高字节 | |||||
0x02 | 数据个数低字节(读 2 个数据) | |||||
0x64 | CRC16 效验码高字节 | |||||
0x0E | CRC16 效验码低字节 | |||||
功能说明:读取物理地址 01 寄存器地址 00 起始的 2 个数据。 | ||||||
开始静止时间 | 物理地址 | 功能码 | 寄存器地址 | 数据长度 | CRC16 校验码 | 终止静止时间 |
T1-T2-T3-T4 | 01 | 03 | 00 12 | 00 02 | 64 0E | T1-T2-T3-T4 |
读保持寄存器从机帧格式:(功能码 03) | ||||||
0x01 | 地址 1 | |||||
0x03 | 功能码 03 | |||||
0x04 | 应答数据字节数 (1 个数据包含高低 2 字节 2x2=4) | |||||
0x00 | 第 1 个数据高字节 | |||||
0xF1 | 第 1 个数据低字节 (此寄存器数值为十进制 100) | |||||
0x00 | 第 2 个数据高字节 | |||||
0xF1 | 第 2 个数据低字节(此寄存器数值为十进制 25) | |||||
0x6A | CRC16 效验码高字节 | |||||
0x44 | CRC16 效验码低字节 | |||||
功能说明:反馈物理地址 01 寄存器地址 00 起始的 2 个数据。 | ||||||
开始静止时间 | 物理地址 | 功能码 | 数据长度 | 数据 | CRC16 校验码 | 终止静止时间 |
T1-T2-T3-T4 | 01 | 03 | 04 | 00 F1 00 F1 | 6A 44 | T1-T2-T3-T4 |
预置单个寄存器主机帧格式:(功能码 06) | ||||||
0x01 | 地址 1 | |||||
0x06 | 功能码 06 | |||||
0x00 | 寄存器地址高字节 | |||||
0x00 | 寄存器地址低字节 | |||||
0x00 | 寄存器数据高字节 | |||||
0x64 | 寄存器数据低字节 | |||||
0x88 | CRC16 效验码高字节 | |||||
0x21 | CRC16 效验码低字节 | |||||
功能说明:设置物理地址 01 寄存器地址 0F 的数据为 0x64。 | ||||||
开始静止时间 | 物理地址 | 功能码 | 寄存器地址 | 数据 | CRC16 校验码 | 终止静止时间 |
T1-T2-T3-T4 | 01 | 06 | 00 00 | 00 64 | 88 21 | T1-T2-T3-T4 |
预置单个寄存器从机帧格式:(功能码 06) | ||||||
0x01 | 地址 1 | |||||
0x06 | 功能码 06 | |||||
0x00 | 寄存器地址高字节 | |||||
0x00 | 寄存器地址低字节 | |||||
0x00 | 寄存器数据高字节 | |||||
0x64 | 寄存器数据低字节 | |||||
0x88 | CRC16 效验码高字节 | |||||
0x21 | CRC16 效验码低字节 | |||||
功能说明:反馈接收到的数据。 | ||||||
开始静止时间 | 物理地址 | 功能码 | 寄存器地址 | 数据 | CRC16 校验码 | 终止静止时间 |
T1-T2-T3-T4 | 01 | 06 | 00 00 | 00 64 | 88 21 | T1-T2-T3-T4 |
预置多个寄存器主机帧格式:(功能码 16) | ||||||||
0x01 | 地址 1 | |||||||
0x10 | 功能码 16 | |||||||
0x00 | 起始寄存器地址高字节 | |||||||
0x00 | 起始寄存器地址低字节 | |||||||
0x00 | 寄存器数目高字节 | |||||||
0x03 | 寄存器数目低字节 | |||||||
0x06 | 字节数为 6 | |||||||
0x00 | 数据 1 高字节 | |||||||
0x64 | 数据 1 低字节 | |||||||
0x00 | 数据 2 高字节 | |||||||
0x64 | 数据 2 低字节 | |||||||
0x00 | 数据 3 高字节 | |||||||
0x64 | 数据 3 低字节 | |||||||
0xD7 | CRC16 效验码高字节 | |||||||
0x7C | CRC16 效验码低字节 | |||||||
功能说明:设置物理地址 01 寄存器地址 00、01、02 的数据为 0x64。 | ||||||||
静止时间 | 地址 | 功能码 | 寄存器地址 | 寄存器个数 | 字节数 | 数据 | CRC16 效验码 | 静止时间 |
T1-T2-T3-T4 | 01 | 10 | 00 00 | 00 03 | 06 | 00 64 00 64 00 64 | D7 7C | T1-T2-T3-T4 |
预置多个寄存器从机帧格式:(功能码 16) | ||||||
0x01 | 地址 1 | |||||
0x10 | 功能码 16 | |||||
0x00 | 起始寄存器地址高字节 | |||||
0x00 | 起始寄存器地址低字节 | |||||
0x00 | 寄存器个数高字节 | |||||
0x03 | 寄存器个数低字节 | |||||
0x80 | CRC16 效验码高字节 | |||||
0x08 | CRC16 效验码地字节 | |||||
功能说明:反馈接收到的数据。 | ||||||
开始静止时间 | 物理地址 | 功能码 | 寄存器起始地址 | 寄存器个数 | CRC16 校验码 | 终止静止时间 |
T1-T2-T3-T4 | 01 | 10 | 00 00 | 00 03 | 80 08 | T1-T2-T3-T4 |
MODBUS 调试方法
硬件:
一台主机(PLC)、多台中继器(WepeX-Modbus)作为 MODBUS 通信用,一条 RS-485 转 USB 通信线和一台 PC 用于监控 RS-485 总线通信数据,一台微波电源用于查看控制效果。
软件:
Modbus 调试精灵 、串口调试助手 用于监控 RS-485 总线数据。
通信前检查串口设置,包括xx率、校验位、数据位、停止位等参数,有条件的可以用示波器测量一下xx率等实际设置情况。把 RS-485 转 USB 通信线并在 RS-485 总线上,打开串口调试助手查看总线上的通信。以判断 PLC 可以正确发送数据。
PLC 和中继器通信例举:
a.读寄存器。读取 18 个通道中的第 1、2 通道工作状态。PLC 往中继器发送的数据应为 01 03 00 12 00 02
64 0E 待中继器处理完数据后会往 PLC 发送的数据(未连接电源模块通信 0xF1,已连接 0x01)应为 01 03 04
00 F1 00 F1 6A 44 。每成功通信一次,中继器侧边绿色状态灯会闪一下。
b.写单个寄存器。设置 18 个通道中的第 1 个通道输出 1000 瓦微波功率(功率参数十进制 100,十六进制 64)。首先把变频电源模块上的 3pin 通信线插到中继器第 1 通道(左上角第 1 个),PLC 往中继器发送数据 01 06 00 00 00 64 88 21 待中继器处理完数据后会往 PLC 发送的数据 01 06 00 00 00 64 88 21 作为应答。设置好功率参数后再给电源模块接上 220V 交流电(注意:变频电源模块通电之前必须先设定功率参数最小为 25,表示输出 250W 微波,最大功率参数视电源型号而定)。若电源模块工作正常,其工作状态数据应由 0x0001变为 0x0000 。此时可用钳流表测量电流为 6.8A 左右。改变功率寄存器参数可改变输出功率,如输出 250W微波功率(功率寄存器参数十进制 25,十六进制 19):01 06 00 00 00 19 48 00 。
c.写多个寄存器。设置多个连续寄存器参数,请参考功能码 16 例举。
d.广播命令。设置已经连接总线的所有物理地址中 18 个通道都输出 500W,应使用广播地址 0x00,功能码 0x06,PLC 往中继器发送的数据应为 00 06 xx xx 00 32 ?? ?? (xx xx 可为任何数据,??为校验码) 注意:进行广播通信时,从机不反馈任何应答数据。
Modbus RTU 模式说明:
RTU 模式中,信息开始至少需要有 3.5 个字符的静止时间,依据使用的xx率,计算这个静止的时间(上述中的 T1-T2-T3-T4)。接着,第一个区的数据为中继器地址。
各个区允许发送的数据为 16 进制数。
网络上的设备连续监测网络上的信息,包括静止时间。当接收第一个地址数据时,每台设备立即对它解码,以决定是否是自己的地址。发送完最后一个字符号后,也有一个 3.5 个字符的静止时间,然后才能发送一个新的信息。
整个信息必须连续发送。如果在发送帧信息期间,出现大于 1.5 个字符的静止时间时,则接收设备刷新不完整的信息。
同样一个信息后,立即发送的一个新信息,(若无 3。5 个字符的静止时间)这将会产生一个错误。是因为合并信息的 CRC 校验码无效而产生的错误。