西驰变频器不能从 “主状态字” 里直接读出频率。
主状态字 = 只报状态(运行 / 停机 / 正反转 / 故障)
频率要单独读 “输出频率寄存器”(不是状态字)
下面按西驰 XFC500/XFC580 系列(最常见)给你完整地址和用法。
一、先分清三个寄存器(Modbus RTU)
1)主控制字(写命令)
地址:2000H(十进制 8192)
功能:启停、正反转、复位
常用值:
0001H = 正转运行
0002H = 反转运行
0005H = 停机
0007H = 故障复位
2)主状态字(读状态,不含频率)
地址:2101H(十进制 8449,只读)
位定义(关键几位):
Bit0:1 = 运行中,0 = 停机
Bit1:1 = 反转,0 = 正转
Bit2:1 = 欠压
Bit3:1 = 故障
这里没有频率! 只告诉你 “在不在转、正转还是反转、有没有故障”。
3)输出频率(真正读转速,必须单独读)
地址:2102H(十进制 8450,只读)
单位:0.01 Hz
范围:0 ~ 最大频率(如 5000 = 50.00 Hz)
二、正确读取频率步骤(XFC500/580)
功能码 03H(读保持寄存器)
从站地址:变频器地址(默认 1)
起始地址:2102H
寄存器数量:1(只读频率)
举例(RTU 报文)
读地址 1 变频器的输出频率:
plaintext
01 03 21 02 00 01 CRC
返回(例如 50.00Hz):
plaintext
01 03 02 13 88 CRC
1388H = 十进制 5000 → ÷100 = 50.00 Hz
三、和森兰 / 雷诺尔的区别(你之前问过)
森兰 / 雷诺尔:控制字 = 启停,频率 = 单独寄存器;状态字 = 状态(都不含频率)
西驰:完全一样 ——状态字只报状态,频率必须读 2102H
四、常见坑
❌ 只读 2101H(状态字)→ 永远拿不到频率
❌ 把 2102H 写成 2001H → 读到的是设定频率,不是实际输出频率
❌ 单位不除以 100 → 5000 当成 5000Hz(错)
五、参数必须先设对(否则读不到)
F0-01 命令源 → 设为 2(通讯)
F0-02 频率源 → 设为 2(通讯)
通讯参数:9600bps、8N1、从站地址≠0。

