PLC与变频器Modbus通信的地址映射
在工业自动化领域,PLC与变频器通过Modbus通信实现数据交互是极为常见的应用场景。掌握正确的地址映射方法,是实现PLC精确控制变频器运行的关键。本文将详细讲解地址映射的原理、常见变频器参数地址以及配置方法,帮助你快速完成通信搭建。
一、Modbus寄存器基础
Modbus通信中,数据存储在四种类型的寄存器中,每种寄存器对应不同的功能:
| 寄存器类型 | 功能码 | 作用 |
|---|---|---|
| 线圈寄存器 | 0x01 / 0x05 / 0x0F |
读写单个或多个开关量,如启停控制 |
| 离散输入寄存器 | 0x02 |
只读开关量输入,如故障状态信号 |
| 保持寄存器 | 0x03 / 0x06 / 0x10 |
读写模拟量或参数,如频率设定、运行速度 |
| 输入寄存器 | 0x04 |
只读模拟量,如输出频率、电流、电压 |
理解这四种寄存器的区别后,地址映射就变得简单了。PLC读取变频器状态时,使用功能码 0x03 读取保持寄存器或 0x04 读取输入寄存器;PLC写入控制命令时,使用功能码 0x06 或 0x10 写入保持寄存器。
二、变频器常见参数地址
不同品牌的变频器,其Modbus通信地址可能有所差异,但核心参数地址的规划逻辑基本一致。以下是常见参数的通用地址规划:
1. 控制命令与状态字
| 参数名称 | 地址(十进制) | 地址(十六进制) | 读写属性 |
|---|---|---|---|
| 运行命令 | 40100 |
0x0064 |
读写 |
| 运行方向 | 40101 |
0x0065 |
读写 |
| 故障复位 | 40102 |
0x0066 |
只写 |
| 运行状态 | 40110 |
0x006E |
只读 |
| 故障状态 | 40111 |
0x006F |
只读 |
其中,运行命令地址用于启动或停止变频器,通常写入 1 表示启动,写入 0 表示停止。故障复位地址写入 1 可清除当前故障。
2. 频率与速度参数
| 参数名称 | 地址(十进制) | 地址(十六进制) | 说明 |
|---|---|---|---|
| 目标频率 | 40150 |
0x0096 |
PLC写入期望的运行频率,单位通常为0.01Hz |
| 输出频率 | 40160 |
0x00A0 |
变频器实际输出的频率,只读 |
| 输出电流 | 40161 |
0x00A1 |
电机运行电流,只读 |
| 输出电压 | 40162 |
0x00A2 |
变频器输出电压,只读 |
目标频率地址是PLC控制变频器的核心通道。例如,若要设置变频器运行在50Hz,PLC写入的数值应为 5000(50 × 100),因为多数变频器默认使用0.01Hz作为频率分辨率。
3. 扩展参数
| 参数名称 | 地址范围 | 说明 |
|---|---|---|
| 加速时间 | 40170 - 40171 |
单位通常为秒 |
| 减速时间 | 40172 - 40173 |
单位通常为秒 |
| 电机额定电流 | 40180 |
用于过载保护计算 |
| 运行模式 | 40190 |
如本地/远程切换 |
这些扩展参数根据实际应用需求进行配置,通常在系统调试阶段完成设定。
三、地址映射的实战步骤
步骤1:确认变频器通信参数
设置变频器的通信参数,确保与PLC端一致。常见配置项包括:
- 波特率:常用
9600或19200 - 数据位:通常为
8位 - 停止位:常用
1位 - 校验位:无校验
None、偶校验Even或奇校验Odd - 从站地址:变频器在Modbus网络中的唯一标识,范围
1-247
步骤2:确定控制逻辑的地址映射表
根据实际工艺需求,绘制一张地址映射表,明确每个参数的位置。例如:
| 功能 | PLC存储区 | 变频器地址 | 数据类型 |
|---|---|---|---|
| 启动/停止 | MW100 |
40100 |
16位整数 |
| 频率设定 | MW102 |
40150 |
16位整数 |
| 实际频率 | MW104 |
40160 |
16位整数 |
| 运行电流 | MW106 |
40161 |
16位整数 |
| 故障标志 | MW108 |
40111 |
16位整数 |
步骤3:编写PLC程序
配置PLC的Modbus通信库,编写读写逻辑。以下是逻辑伪代码示例:
// 写入控制命令
IF 启动按钮 = TRUE THEN
Modbus_Write(从站地址=1, 地址=40100, 值=1)
ELSE
Modbus_Write(从站地址=1, 地址=40100, 值=0)
END_IF
// 写入频率设定(假设目标频率为35.5Hz)
目标值_整数 = 3550 // 35.5 × 100
Modbus_Write(从站地址=1, 地址=40150, 值=目标值_整数)
// 读取实际运行数据
Modbus_Read(从站地址=1, 地址=40160, 长度=3)
实际频率 = 读取值_40160 / 100
实际电流 = 读取值_40161 / 10
步骤4:测试与调试
验证通信是否正常。观察PLC的数据区,确认读写数值是否符合预期。若出现通信超时或数据异常,依次排查以下要点:
- 检查通信线缆连接是否牢固
- 确认波特率、数据位、停止位、校验位完全一致
- 核对从站地址是否匹配
- 验证变频器是否使能Modbus通信功能
四、地址映射常见问题
问题1:频率写入后变频器不响应
排查变频器是否处于“ LOCAL ”(本地)模式。部分变频器在面板控制模式下会忽略Modbus通信指令,需切换到“ REMOTE ”(远程)模式。
问题2:读取的数值与实际不符
确认数据分辨率是否一致。若变频器频率分辨率为0.1Hz,而PLC程序按0.01Hz处理,则读取数值需除以 10 才能得到真实值。
问题3:多台变频器通信冲突
检查每台变频器的从站地址是否唯一。若两台设备使用相同地址,PLC会接收到错误响应,甚至误控非目标设备。
五、总结
PLC与变频器Modbus通信的核心在于正确理解寄存器的功能分类,并根据实际控制需求规划地址映射表。掌握目标频率地址、运行命令地址、状态反馈地址的对应关系后,即可通过PLC程序实现变频器的启动、停止、调速与状态监控。通信搭建的关键在于参数一致性与地址唯一性,遇到问题时逐项排查通信配置,通常能快速定位故障原因。

暂无评论,快来抢沙发吧!