『7x24小时有问必答』
变频器是工业现场最常见的设备之一,但很多电气技术人员一想到要和PLC做通信,下意识就觉得"得写通信程序,太难了"。其实,用Modbus RTU协议让PLC控制变频器,绝大多数情况下不需要写一行通信代码。本文用真实项目案例,完整演示从硬件连接到程序配置的每一步。

一个真实场景

某工厂一条传送带项目,要求用PLC控制三台变频器,实现启停、速度给定和运行频率反馈。每台变频器需要:

  - 启停控制(正转/停止/反转)

  - 运行频率给定(0-50Hz)

  - 运行频率反馈(读取当前输出频率)
设备清单:西门子S7-200 SMART SR40 PLC + 三台台达VFD-B变频器,通信距离不超过50米。工期两周,没有额外的通信专用模块。
这个场景下,Modbus RTU是最经济的方案。S7-200 SMART自带Modbus RTU通信指令库,用它就能完成全部功能,不需要写任何底层通信程序。

为什么是Modbus RTU

Modbus RTU是工业设备间通信最常用的协议没有之一。原因很实际:几乎所有品牌的变频器、仪表、温控器都支持Modbus RTU,硬件只需RS485总线,成本极低。在工业现场跑过项目的人都知道,变频器说明书里一定有一页是Modbus通信参数表。
Modbus RTU采用主从架构:PLC是主站(Master),变频器是从站(Slave)。主站发起通信请求,从站响应。从站不会主动发送数据,必须由主站轮询。
物理层用RS485总线,只需两根线(A和B)就能连接多个设备。总线拓扑简单,穿管方便,这是它在工业现场生命力旺盛的根本原因。

硬件准备

本次案例用到的硬件:
设备
型号
说明
PLC
西门子S7-200 SMART SR40
自带Modbus RTU指令库
变频器
台达VFD-B系列 ×3台
支持Modbus RTU
通信线
RVSP 2×1.5屏蔽双绞线
A/B各一根
终端电阻
120Ω匹配电阻
总线两端各一个

接线方法

S7-200 SMART的RS485端口引脚定义:3是B(-),8是A(+)。台达VFD-B的RS485端子:SG+和SG-,对应B和A。
接线时注意:PLC的A(+)接变频器的SG-,PLC的B(-)接变频器的SG+。这个顺序容易搞反,实测中接反了通信肯定不会通。屏蔽层在PLC端单端接地。
总线两端各加一个120Ω终端电阻,防止信号反射。中间设备不接电阻。

变频器侧参数设置

Modbus通信的前提是主从站参数一致。台达VFD-B变频器需要设置以下参数:
第二台变频器地址设为02,第三台设为03,其余参数相同。三台变频器的通信参数必须完全一致。

PLC程序配置

这是最关键的部分。S7-200 SMART提供了Modbus RTU库指令,编程思路非常清晰:初始化通信端口→轮询各从站→读写目标数据。

第一步:初始化通信端口

MBUS_CTRL指令用于初始化Modbus通信参数,每次扫描周期调用一次。它负责处理通信状态机,空闲时自动启动下一条请求。
编程时用SM0.0作为EN使能条件,将波特率设为9600,超时设为1000毫秒。

第二步:读写变频器数据

MBUS_MSG指令是实际的数据收发指令。通过功能码区分读写操作:
功能码
操作
用途
01
读线圈
读取变频器运行状态
05
写单个线圈
控制启停
03
读保持寄存器
读取频率、电流等参数
06
写单个保持寄存器
写入频率给定值
16
写多个保持寄存器
批量写入
台达VFD-B的Modbus地址映射如下:
地址
参数
读写
2000H
频率指令(0.01Hz单位)
读写
2001H
运行指令
读写
2100H
输出频率反馈
只读
2101H
输出电流反馈
只读
2000H转换为十进制是8192,2001H是8193,2100H是8448,2101H是8449。在程序中填写十进制地址。

第三步:写一个完整的轮询程序

三台变频器需要轮询读取和写入,程序结构如下:
第二台和第三台变频器仅需修改Slave地址(2和3),其余完全相同。
关键细节:MBUS_MSG的First引脚必须使用脉冲触发,不能用按钮或常开触点,否则会同时发起多条请求导致总线冲突。用SM0.5(0.5秒时钟脉冲)作为触发条件,简单实用。

调试常见问题

Modbus RTU调试中最常遇到三个问题:
通信不通。  首先检查硬件:接线顺序对不对?终端电阻有没有加?用万用表测量A/B之间电阻约为120Ω表示终端电阻正常。然后检查参数:波特率、数据位、校验位、停止位是否完全一致?地址有没有重复?
读回来的数据全是65535(0xFFFF)。  这表示从站没有响应。常见原因是变频器通信参数没有设置正确,或者P00.001/P00.002没有设为03(Modbus控制模式)。还有一个容易忽略的原因:某些变频器需要在面板上手动使能通信模式。
数据偶尔正确偶尔错误。  大概率是总线冲突。检查是否有多个从站同时响应,或者接地不良引入干扰。RS485总线总长度不宜超过1000米,支线长度不超过10米。

应用场景与选型建议

Modbus RTU适合以下场景:同一控制柜内或距离不超过100米的变频器群;设备数量不超过32台(RS485总线限制);对通信实时性要求不极高的场合(轮询周期在100ms以上可接受)。
如果项目要求更高的实时性(比如伺服同步控制),建议用Profinet或CANopen。如果距离超过500米或多主站需求,考虑用Modbus TCP。
选型时注意:并不是所有变频器都支持Modbus RTU,低端小功率变频器有些只支持模拟量控制。另外,不同品牌的Modbus地址映射不同,必须以厂家提供的通信手册为准,不能照搬其他品牌的数据。

总结

用Modbus RTU让PLC控制变频器,核心步骤只有四步:硬件接线正确、变频器通信参数设置正确、PLC通信初始化、用MBUS_MSG轮询读写数据。整个过程不需要写任何底层通信代码,只需要理解Modbus的主从轮询机制和地址映射。
对于日常项目来说,Modbus RTU是最经济可靠的方案。掌握了这个方法,应对90%以上的PLC与变频器通信需求都够用了。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码