硬件:FX3U + FX3U‑485‑ADP‑MB;三菱主站;西驰 CFC1000 从站站号 = 1 西驰 CFC1000 常用寄存器(0 基址,MODRW 填偏移地址) | 寄存器偏移 (0 基址)| 功能 | 说明 | |---|---|---| |0 | 控制字(写)|H0001 正转运行;H0002 反转;H0000 停止;H0004 自由停机 | |1 | 频率给定(写)|0‑10000 →0~ 最大频率百分比 | |2 | 状态字(读)| 读取运行、故障状态 | |3 | 输出频率(读反馈)| 实际输出频率反馈 0‑10000|
变频器侧先设置: F0‑00=2 通讯命令源;F0‑01=2 通讯频率源;站号 1;9600‑8‑N‑1;RTU 模式;断电重启变频器。
PLC 特殊寄存器(485‑ADP‑MB 通道 CH2)
D8420:CH2 通讯格式 H0000 →9600‑8‑N‑1
D8429:通讯超时 K300(300ms)
M8429:MODRW 执行完成标志(ON = 本条读写完成)
程序逻辑思路
M8002 上电初始化通讯参数;
使用标志位分时轮询:先写控制 / 频率 →等待 M8429 完成延时;再读状态与频率反馈;
D0 存放控制字;D1 存放频率给定值;D10 读取状态字;D11 读取实际频率反馈;
M0:PLC 内部启动命令;M1 停止。
梯形图逻辑(指令说明,GX‑Works2/3)
①上电初始化
M8002
|---[MOV H0000 D8420] //9600 8‑N‑1
|---[MOV K300 D8429] //超时300ms
②启停逻辑(内部软元件 M0 启动 M1 停止)
M0
|---[MOV H0001 D0] //D0=控制字 正转运行
M1
|---[MOV H0000 D0] //D0=控制字 停止
③分时轮询读写(使用 M0、M1 交替触发 MODRW,利用 M8429 完成标志)
MODRW 格式:
MODRW S(从站号) D(变频器0基址地址) n(点数) [S]PLC寄存器MODRW K1 K0 K2 D0 含义:从站 1;从偏移地址 0 开始写 2 个寄存器;D0(控制字)、D1(频率给定)
写完之后等待 M8429 完成,再执行读;读:MODRW K1 K2 K2 D10;读取偏移 2 开始 2 个寄存器到 D10 D11。
MODRW 不能一直导通;用脉冲触发,轮询状态位切换,不要长 ON。 下面是轮询标志思路,用 M2 作为写请求;M3 读请求。
M0
|---[SET M2] //置位写请求
M1
|---[SET M2] //停止同样要下发写命令
M2
|---[MODRW K1 K0 K2 D0] //写控制字D0、频率D1
|---LD M8429
|---[RST M2] //写完复位写请求
|---[SET M3] //写完置位读请求
M3
|---[MODRW K1 K2 K2 D10] //读状态字D10;实际频率D11
|---LD M8429
|---[RST M3]
|---[RST M3] //读完复位读请求;等待下次M0/M1置位M2
上面简化逻辑;实际工程建议加定时器 T0 K50(50ms)间隔,写完延时再读;国产变频器响应慢。
频率换算示例
假设变频器最大频率 50Hz;需要 PLC 触摸屏输入 Hz 值 D20 (0‑50),换算为 0‑10000 写入 D1。 \(D1 = D20 × 10000 ÷50\) 梯形图:
MUL D20 K10000 D22
DIV D22 K50 D1
触摸屏输入 D20=25 →D1=5000,50% 对应 25Hz。
注意事项
寄存器基址确认!务必核对你手上西驰变频器手册:
如果手册写 40001(1 基址),MODRW 偏移填0;
部分老西驰寄存器定义不一样,以本机手册寄存器表为准。
MODRW 不能同时多条并行触发;必须等待 M8429 完成标志,再下一条;增加 50‑100ms 延时。
先电脑 ModbusPoll 测试变频器通讯寄存器,确认启停调速没问题再写 PLC 程序。
通讯只是软件控制;急停硬件回路保留,不能通讯做安全急停。
如果多台变频器,修改从站号;分时轮询每一台,不要一次性全部同时发送报文。
补充 FX5U 版本简要思路
FX5U 本体 485,用功能块 MODBUS_RTU_MASTER;同样分时轮询,设置超时 300ms;不要高速循环发送。


