『7x24小时有问必答』
副标题
: 让变频器成为PLC的"执行手臂"

一、PLC与变频器通信的本质

变频器是PLC的"执行手臂"——PLC发命令,变频器执行。
[tr][td]通信方式[/td][td]控制内容[/td][td]精度[/td][td]适用场景[/td][/tr][tr][td]模拟量[/td][td]速度设定[/td][td]±1%[/td][td]简单调速[/td][/tr][tr][td]I/O端子[/td][td]启停+多段速[/td][td]固定速度[/td][td]简单控制[/td][/tr][tr][td]总线通信[/td][td]全参数控制[/td][td]±0.1%[/td][td]精密控制[/td][/tr]
通信需求分析
PLC → 变频器:
- 启动/停止命令
- 速度设定(模拟量/数字量)
- 多段速选择
- 正转/反转
- 复位命令
变频器 → PLC:
- 运行状态(运行/停止/故障)
- 当前频率
- 当前电流
- 故障代码
- 直流母线电压

二、模拟量控制:最简单的方式

2.1 模拟量接线

PLC AO → 变频器 AI:
AO0 (0-10V) → AI1 (速度设定)
PLC DI ← 变频器 DO:
DI0 (运行) ← DO0 (运行中)
DI1 (故障) ← DO1 (故障)

2.2 速度设定公式

频率(Hz) = 模拟量电压(V) × 最大频率(Hz) / 10V
示例:
模拟量 = 5V,最大频率 = 50Hz
输出频率 = 5 × 50 / 10 = 25Hz
示例:
模拟量 = 8V,最大频率 = 60Hz
输出频率 = 8 × 60 / 10 = 48Hz

2.3 ST语言实现

( 模拟量速度控制 )
VAR
Speed_Setpoint: REAL := 30.0;    ( 设定速度 30Hz )
Max_Freq: REAL := 50.0;          ( 最大频率 50Hz )
AO_Output: INT;
Run_Cmd: BOOL := TRUE;           ( 运行命令 )
Run_Status: BOOL;                ( 运行状态 )
Fault_Status: BOOL;              ( 故障状态 )
Actual_Freq: REAL;               ( 实际频率 )
END_VAR
( 速度设定 → 模拟量输出 )
AO_Output := INT#(Speed_Setpoint / Max_Freq * 27648.0);
AO0_Write(AO_Output);
( 运行命令 )
IF Run_Cmd THEN
Y0_Run := TRUE;
ELSE
Y0_Run := FALSE;
END_IF;
( 状态监控 )
Run_Status := X0_Run;
Fault_Status := X1_Fault;
IF Fault_Status THEN
( 读取故障代码 )
Fault_Code := D100;
END_IF;

三、I/O端子控制:多段速控制

3.1 多段速接线

PLC输出 → 变频器输入端子:
Y0 → RUN (运行)
Y1 → FWD (正转)
Y2 → REV (反转)
Y3-Y5 → RH/RM/RL (多段速选择)
Y6 → RESET (复位)
变频器输出 → PLC输入:
X0 ← RUN (运行中)
X1 ← Fault (故障)
X2 ← Trip (跳闸)

3.2 多段速配置

[tr][td]端子组合[/td][td]速度[/td][td]说明[/td][/tr][tr][td]RH=ON[/td][td]50Hz[/td][td]高速[/td][/tr][tr][td]RM=ON[/td][td]30Hz[/td][td]中速[/td][/tr][tr][td]RL=ON[/td][td]10Hz[/td][td]低速[/td][/tr][tr][td]RH+RM=ON[/td][td]40Hz[/td][td]中高速[/td][/tr][tr][td]全部OFF[/td][td]0Hz[/td][td]停止[/td][/tr]

3.3 ST语言实现

( 多段速控制 )
VAR
Speed_Mode: INT := 0;    ( 速度模式 0-7 )
Speed_Table: ARRAY[0..7] OF REAL := [
0.0,    ( 0: 停止 )
10.0,   ( 1: 低速 )
20.0,   ( 2: 中低速 )
30.0,   ( 3: 中速 )
40.0,   ( 4: 中高速 )
50.0,   ( 5: 高速 )
60.0,   ( 6: 超高速 )
0.0     ( 7: 自定义 )
];
END_VAR
( 多段速输出 )
CASE Speed_Mode OF
0:  ( 停止 )
Y0_Run := FALSE;
1:  ( 低速 )
Y0_Run := TRUE;
Y1_FWD := TRUE;
Y3_RH := FALSE;
Y4_RM := FALSE;
Y5_RL := TRUE;
2:  ( 中低速 )
Y0_Run := TRUE;
Y1_FWD := TRUE;
Y3_RH := FALSE;
Y4_RM := TRUE;
Y5_RL := FALSE;
3:  ( 中速 )
Y0_Run := TRUE;
Y1_FWD := TRUE;
Y3_RH := FALSE;
Y4_RM := TRUE;
Y5_RL := TRUE;
4:  ( 中高速 )
Y0_Run := TRUE;
Y1_FWD := TRUE;
Y3_RH := TRUE;
Y4_RM := TRUE;
Y5_RL := FALSE;
5:  ( 高速 )
Y0_Run := TRUE;
Y1_FWD := TRUE;
Y3_RH := TRUE;
Y4_RM := FALSE;
Y5_RL := FALSE;
END_CASE;

四、总线通信:精密控制

4.1 常见通信协议

[tr][td]协议[/td][td]变频器品牌[/td][td]特点[/td][/tr][tr][td]Modbus RTU[/td][td]通用[/td][td]串口,简单[/td][/tr][tr][td]Modbus TCP[/td][td]通用[/td][td]Ethernet,快速[/td][/tr][tr][td]CC-Link[/td][td]三菱[/td][td]三菱生态[/td][/tr][tr][td]PROFINET[/td][td]西门子[/td][td]西门子生态[/td][/tr][tr][td]EtherCAT[/td][td]安川[/td][td]高速实时[/td][/tr]

4.2 Modbus RTU通信

三菱PLC + 三菱变频器 Modbus RTU
[tr][td]参数[/td][td]设置[/td][/tr][tr][td]波特率[/td][td]9600/19200/38400[/td][/tr][tr][td]数据位[/td][td]8[/td][/tr][tr][td]停止位[/td][td]1[/td][/tr][tr][td]校验位[/td][td]无/偶/奇[/td][/tr][tr][td]从站地址[/td][td]1-247[/td][/tr]

4.3 常用寄存器

[tr][td]寄存器[/td][td]功能[/td][td]读写[/td][/tr][tr][td]40001[/td][td]运行命令[/td][td]写[/td][/tr][tr][td]40002[/td][td]频率设定[/td][td]写[/td][/tr][tr][td]40003[/td][td]当前频率[/td][td]读[/td][/tr][tr][td]40004[/td][td]当前电流[/td][td]读[/td][/tr][tr][td]40005[/td][td]运行状态[/td][td]读[/td][/tr][tr][td]40006[/td][td]故障代码[/td][td]读[/td][/tr]

4.4 ST语言实现

( Modbus RTU通信 - 读取变频器状态 )
VAR
MB_Handle: INT;
MB_Request: MBUS_MASTER;
MB_Response: ARRAY[0..10] OF WORD;
Run_Cmd: BOOL := TRUE;
Freq_Set: REAL := 30.0;
Freq_Actual: REAL;
Current_Actual: REAL;
Status_Word: WORD;
Fault_Code: WORD;
END_VAR
( 写入运行命令和频率 )
IF Run_Cmd THEN
( 运行命令 = 1 )
MB_Request(
Slave := 1,
Function := 6,      ( 写单个寄存器 )
Address := 40001,
Data := 1,
Status => MB_Status
);
( 频率设定 = 30.0Hz → 300 (0.1Hz分辨率) )
MB_Request(
Slave := 1,
Function := 6,
Address := 40002,
Data := 300,
Status => MB_Status
);
END_IF;
( 读取状态 )
MB_Request(
Slave := 1,
Function := 3,          ( 读保持寄存器 )
Address := 40003,
Count := 4,
Data => MB_Response,
Status => MB_Status
);
IF MB_Status = 0 THEN
Freq_Actual := REAL#(MB_Response[0]) / 10.0;
Current_Actual := REAL#(MB_Response[1]) / 10.0;
Status_Word := MB_Response[2];
Fault_Code := MB_Response[3];
END_IF;

五、深度案例分析:传送带变频控制

5.1 背景

某包装线传送带,需要多段速运行和精确调速。

5.2 问题经过

[tr][td]问题[/td][td]表现[/td][td]影响[/td][/tr][tr][td]速度不稳[/td][td]模拟量波动[/td][td]包装尺寸不一致[/td][/tr][tr][td]启停冲击[/td][td]直接启动[/td][td]产品移位[/td][/tr][tr][td]故障响应慢[/td][td]无实时监测[/td][td]停机时间长[/td][/tr]

5.3 解决方案

混合控制架构
[tr][td]控制方式[/td][td]用途[/td][td]说明[/td][/tr][tr][td]模拟量[/td][td]速度设定[/td][td]0-10V连续调速[/td][/tr][tr][td]I/O端子[/td][td]启停控制[/td][td]硬接线,可靠[/td][/tr][tr][td]Modbus[/td][td]状态监测[/td][td]实时读取频率/电流[/td][/tr]
控制逻辑
( 传送带变频控制 )
VAR
( 速度设定 )
Speed_Set: REAL := 25.0;    ( 设定速度 Hz )
Speed_Ramp: REAL := 5.0;    ( 加减速斜坡 Hz/s )
( 模拟量输出 )
AO_Value: INT;
( I/O控制 )
Run_Cmd: BOOL;
Stop_Cmd: BOOL;
Run_Status: BOOL;
Fault_Status: BOOL;
( Modbus状态 )
Actual_Freq: REAL;
Actual_Current: REAL;
Fault_Code: WORD;
( 斜坡计算 )
Speed_Target: REAL;
Speed_Current: REAL;
Ramp_Timer: TON;
END_VAR
( 速度斜坡控制 )
IF Run_Cmd AND NOT Fault_Status THEN
( 加速 )
IF Speed_Current < Speed_Set THEN
Speed_Current := Speed_Current + Speed_Ramp * 0.1;
IF Speed_Current > Speed_Set THEN
Speed_Current := Speed_Set;
END_IF;
END_IF;
( 减速 )
IF Speed_Current > Speed_Set THEN
Speed_Current := Speed_Current - Speed_Ramp * 0.1;
IF Speed_Current < Speed_Set THEN
Speed_Current := Speed_Set;
END_IF;
END_IF;
( 输出模拟量 )
AO_Value := INT#(Speed_Current / 50.0 * 27648.0);
AO0_Write(AO_Value);
( 运行命令 )
Y0_Run := TRUE;
ELSE
( 停止 )
Speed_Current := 0.0;
AO_Value := 0;
AO0_Write(AO_Value);
Y0_Run := FALSE;
END_IF;
( 状态监控 )
Run_Status := X0_Run;
Fault_Status := X1_Fault;
IF Fault_Status THEN
( 读取故障代码 )
Fault_Code := D100;
( 报警处理 )
Alarm_Fault := TRUE;
END_IF;

5.4 效果对比

[tr][td]指标[/td][td]优化前[/td][td]优化后[/td][td]提升[/td][/tr][tr][td]速度稳定性[/td][td]±2Hz[/td][td]±0.2Hz[/td][td]-90%[/td][/tr][tr][td]启停冲击[/td][td]明显[/td][td]平滑[/td][td]显著改善[/td][/tr][tr][td]故障响应时间[/td][td]5s[/td][td]0.5s[/td][td]-90%[/td][/tr][tr][td]包装尺寸一致性[/td][td]±5mm[/td][td]±1mm[/td][td]-80%[/td][/tr]

六、变频器参数设置

6.1 必设参数

[tr][td]参数[/td][td]名称[/td][td]设置值[/td][td]说明[/td][/tr][tr][td]P001[/td][td]最大频率[/td][td]50Hz[/td][td]电机额定频率[/td][/tr][tr][td]P002[/td][td]最小频率[/td][td]0Hz[/td][td]最低运行频率[/td][/tr][tr][td]P003[/td][td]加速时间[/td][td]2s[/td][td]根据负载调整[/td][/tr][tr][td]P004[/td][td]减速时间[/td][td]2s[/td][td]根据负载调整[/td][/tr][tr][td]P005[/td][td]启动方式[/td][td]0[/td][td]0=端子,1=通信[/td][/tr][tr][td]P006[/td][td]频率源[/td][td]0[/td][td]0=端子,1=模拟量,2=通信[/td][/tr]

6.2 保护参数

[tr][td]参数[/td][td]名称[/td][td]设置值[/td][td]说明[/td][/tr][tr][td]P101[/td][td]过流保护[/td][td]200%[/td][td]额定电流的200%[/td][/tr][tr][td]P102[/td][td]过压保护[/td][td]400V[/td][td]直流母线过压[/td][/tr][tr][td]P103[/td][td]欠压保护[/td][td]200V[/td][td]直流母线欠压[/td][/tr][tr][td]P104[/td][td]过热保护[/td][td]90℃[/td][td]散热器温度[/td][/tr][tr][td]P105[/td][td]电机过载[/td][td]110%[/td][td]电机额定电流的110%[/td][/tr]

七、通信调试技巧

7.1 调试步骤

[tr][td]步骤[/td][td]操作[/td][td]说明[/td][/tr][tr][td]1[/td][td]检查接线[/td][td]模拟量/通信线[/td][/tr][tr][td]2[/td][td]设置变频器参数[/td][td]频率源、控制源[/td][/tr][tr][td]3[/td][td]测试模拟量[/td][td]0-10V对应0-50Hz[/td][/tr][tr][td]4[/td][td]测试I/O[/td][td]启停、多段速[/td][/tr][tr][td]5[/td][td]测试通信[/td][td]Modbus读写[/td][/tr][tr][td]6[/td][td]联调测试[/td][td]完整流程[/td][/tr]

7.2 常见问题排查

[tr][td]问题[/td][td]可能原因[/td][td]解决方案[/td][/tr][tr][td]频率不变化[/td][td]频率源设置错误[/td][td]检查P006参数[/td][/tr][tr][td]通信失败[/td][td]波特率不匹配[/td][td]检查变频器通信参数[/td][/tr][tr][td]模拟量波动[/td][td]接地不良[/td][td]检查屏蔽线接地[/td][/tr][tr][td]变频器不启动[/td][td]启动方式错误[/td][td]检查P005参数[/td][/tr]

八、核心公式与工具

8.1 模拟量计算速查

电压 → 频率:
频率(Hz) = 电压(V) × 最大频率(Hz) / 10V
数字量 → 频率:
频率(Hz) = 数字量 / 27648 × 最大频率(Hz)
频率 → 数字量:
数字量 = 频率(Hz) / 最大频率(Hz) × 27648

8.2 通信选择决策树

控制精度要求?
├─ ±1% → 模拟量
├─ ±0.5% → I/O多段速
└─ ±0.1% → 总线通信
需要读取状态?
├─ 否 → 模拟量/I/O
└─ 是 → 总线通信

九、金句集锦

本文基于三菱PLC与三菱/安川变频器通信实战经验整理,涵盖模拟量控制、I/O端子控制、Modbus通信、传送带案例等核心主题。
推荐阅读
三菱GX Works3 028:安全PLC编程——SIL2/SIL3安全功能实战
发布于 2026-05-27
三菱 PLC 教程 02:iQ-R 系列硬件组成
发布于 202603
NACHI 机械手教程第 4 章:编程基础
发布于 202603
KEYWORDS
PLC, ST语言, IL, 三菱, 西门子
如果你觉得这篇文章有帮助,请点个在看,分享给更多需要的人!
关注我,获取更多实用干货~
有问题欢迎评论区留言交流!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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


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