去年做一个输送线项目,要用三菱FX3U PLC控制台达VFD-M变频器,通过Modbus RTU通讯调节电机转速。变频器参数设了整整一个下午,中间还差点把变频器参数改乱了。后来整理了一份标准流程,后面做类似项目就快多了。
硬件接线
FX3U需要一个485-BD通讯扩展板,插在主机的左侧扩展口上。接线很简单:
- SDA(FX3U 485-BD的RDA)→ 台达变频器的通讯口SG+
- SDB(FX3U 485-BD的RDB)→ 台达变频器的通讯口SG-
- SG → 变频器的GND(共地很重要,不接地通讯容易不稳定)
台达VFD-M变频器的通讯接口在控制端子排上,SG+和SG-两个端子。注意不要接反了。
通讯距离不超过100米时用双绞屏蔽线即可,超过100米建议加中继器。我一般用Belden 3106A屏蔽双绞线,效果很好。
变频器参数设置
台达VFD-M需要设以下几个参数:
- P00 = 03(频率指令来源设为通讯输入)
- P01 = 03(运转指令来源设为通讯控制)
- P88 = 01(通讯地址设为1,多台变频器时每台设不同地址)
- P89 = 03(通讯速度9600bps,FX3U默认也是9600)
- P92 = 01(通讯协议Modbus RTU,8数据位,无校验,1停止位)
设完参数后断电重启变频器,参数才会生效。这个坑我踩过一次——设完之后没重启,怎么调都不通。
PLC程序编写
三菱FX3U用RS指令做Modbus RTU通讯。写频率和启停的步骤如下:
写频率到变频器:发送数据格式为 01 06 2001 1388 CRC(地址01,功能码06写寄存器,寄存器地址2001对应频率设定,数据1388=5000=50.00Hz)。
用MOV指令把H1388传送到D寄存器,然后用CRC计算指令(或手动计算CRC-16)得到校验码。FX3U没有CRC自动计算指令,需要写一个子程序。网上有现成的梯形图,大概20步就能写出来。
启停控制:发送 01 05 2000 FF00 CRC(地址01,功能码05写线圈,2000是正转启停,FF00=ON)。
停止:发送 01 05 2000 0000 CRC。
调试注意事项
1. 通讯超时设置。 RS指令的D参数建议设100ms,超时太短容易误判、太长影响响应。给变频器下发指令后,建议延时50-100ms再发下一条,变频器处理需要时间。
2. 错误重试。 最好加一个重试机制,连续3次通讯失败再报警。现场常有干扰导致偶尔通讯失败,一次失败就停机没必要。
3. 屏蔽接地。 通讯线的屏蔽层单端接地(变频器侧),不要两端都接地,否则容易产生地环路干扰。
4. 终端电阻。 通讯距离超过50米或者干扰大的场合,在最后一台设备上加120Ω终端电阻。
一个实用技巧
如果在调试时读不到变频器的参数,用电脑串口调试助手先试一下:用USB转485模块连接到变频器,发 01 03 2100 0001 CRC(读取运行频率),如果串口助手能读到数据,说明变频器通讯正常,问题在PLC这边。如果串口助手都读不到,检查接线和参数。
这个方法帮我排除了至少一半的通讯故障。