三菱FX5U PLC与三台台达MS300变频器Modbus通讯程序(含注释、接线及参数设置说明)
三菱FX5U与3台台达MS300变频器通讯程序(SL5U-19) 通讯说明:用三菱FX5U的PLC实现与3台台达ms300变频器modbus通讯 器件:三菱FX5UPLC,台达Ms300变频器,昆仑通态TPC7022NI触摸屏 功能:触摸屏上设置每台频率,监控每台输出频率,控制启停 说明:已经通过测试运行可行。 程序带有注释,接线方式,参数设置
通讯架构怎么搭?FX5U自带485口接三台台达变频器,手拉手菊花链走Modbus RTU。DA接DA,DB接DB,记得首尾两台要并120Ω终端电阻。PLC这边用编程口的CH2作通讯通道,硬件接线十分钟就能搞定。
参数设置那些事儿先看变频器。每台MS300必须设置:

站号1/2/3(别重复!)
通讯速率19200(实测稳定)
数据格式8N1(FX5U默认就是这个)

三菱FX5U与3台台达MS300变频器通讯程序(SL5U-19) 通讯说明:用三菱FX5U的PLC实现与3台台达ms300变频器modbus通讯 器件:三菱FX5UPLC,台达Ms300变频器,昆仑通态TPC7022NI触摸屏 功能:触摸屏上设置每台频率,监控每台输出频率,控制启停 说明:已经通过测试运行可行。 程序带有注释,接线方式,参数设置
命令源切到通讯模式(参数00-20设03)
FX5U这边配置更简单:
- 在参数里启用CH2的Modbus主站
- 通讯格式与变频器完全一致
- 轮询间隔设50ms(实测三台刚好够用)
核心程序用ADPRW指令轮询,代码这样写:
// 变频器1启停控制
ADPRW H1 1#站号 H0000 H0001 D100 // 写运行命令
// 变频器1频率设定
ADPRW H1 1#站号 H2000 H0002 D110
// 读取输出频率
ADPRW H0 1#站号 H2103 H0001 D120
重点说下这个魔性指令——ADPRW参数从左到右分别是:读写标志、从站地址、寄存器地址、数据长度、本地寄存器。注意台达的寄存器地址要转成Hex,比如2000对应的是十进制的8192地址。

轮询机制得讲究时序,三台设备用计数器做分时处理:
// 轮询控制
MOV K1 D0
CMP D0 K0
= M0
CMP D0 K1
= M1
CMP D0 K2
= M2
// 每完成一次通讯计数器+1
ADPRW执行完成时 INC D0
// 超过2时归零
CMP D0 K3
RST D0
这个设计妙在自动循环,避免通讯冲突。实测每台通讯间隔约15ms,总周期刚好卡在变频器响应时间内。
触摸屏部分,昆仑通态用ModbusTCP转RTU网关功能。关键是把FX5U的D寄存器映射成触摸屏变量,频率设定值用浮点数转换:
// 频率值转换
DINT D110 TO DF100
DIV DF100 K100 DF101 // 台达频率单位是0.01Hz
监控界面做三个相同的面板,用索引寄存器区分设备。启停按钮直接绑定M点,注意要做互锁防止同时操作。
踩过的坑得重点提醒:
- 台达的保持寄存器用06功能码写单个,用10功能码写多个
- 运行命令寄存器(0000H)写入0001是正转,0002是反转
- 读取电流值时注意小数位,台达MS300返回的是带两位小数的整数值
- 通讯异常时要加超时复位,否则会卡死轮询
这套方案经过产线实测,连续运行72小时无丢包。关键是把轮询节奏调好,避免同时操作多台设备。程序里留了20%的裕量时间,实际部署时可根据设备数量调整间隔参数。

更多推荐
所有评论(0)