打开 温度控制柜,发现温度波动高达 ±5℃?调了 三天 PID 参数还是震荡?PLC 自带的自整定功能,能让你在 10 分钟内完成过去需要数小时的手工调试。这份指南从零开始,教你用西门子 S7-1200/1500 或三菱 FX5U 等主流 PLC,激活 并验证 PID 自整定。
第一阶段:理解自整定原理,避免误用
自整定(Auto-tuning)不是万能药。识别 以下三种典型算法,才能选对场景:
| 算法类型 | 触发条件 | 输出结果 | 适用负载 |
|---|---|---|---|
| 继电器反馈法 | 输出在高低值间开关 | 临界增益 $K_u$ 和周期 $T_u$ | 快响应系统(加热棒、小型烘箱) |
| 阶跃响应法 | 输出固定阶跃变化 | 时间常数 $T$ 和滞后 $L$ | 慢响应大惯量(反应釜、退火炉) |
| 模型识别法 | 全程闭环运行中在线学习 | 连续优化 PID 系数 | 变工况系统(批次生产不同产品) |
核心公式(Ziegler-Nichols 整定规则,继电器法的理论基础):
$$K_p = 0.6 K_u$$
$$T_i = 0.5 T_u$$
$$T_d = 0.125 T_u$$
其中 $K_u$ 为临界比例增益,$T_u$ 为振荡周期。自整定实质是让 PLC 自动完成"加增益→找震荡→算参数"的闭环实验。
第二阶段:硬件接线与信号确认
自整定失败,70% 源于接线或量程配置错误。
2.1 温度传感器接线
热电偶(K 型为例):
- 确认 补偿导线型号与热电偶分度号匹配(K 型用 KC 补偿线)。
- 区分 正负极:绿色为正,白色为负(IEC 标准)。
- 检查 冷端补偿:PLC 模块需启用内部补偿或外接 Cu50 电阻。
- 测量 端子电压:常温下 K 型热电偶约 0~1mV,用万用表 mV 档验证。
热电阻(PT100 三线制):
- 识别 三根线:两根同色(接模块 $I+$ 和 $I-$),一根异色(接 $Sense+$)。
- 消除 引线电阻:三线制自动抵消两根引线的阻值。
- 验证 阻值换算:0℃ 对应 100Ω,每 1℃ 约 0.385Ω。
2.2 输出执行器配置
| 输出类型 | 接线要点 | PLC 输出模块 |
|---|---|---|
| SSR(固态继电器) | 3-32VDC 触发,需晶体管输出 | DQ 8x24VDC/0.5A |
| 接触器 | 加中间继电器隔离,防线圈反电动势 | DQ 8xRelay |
| 模拟量调功 | 4-20mA 或 0-10V,注意负载阻抗 | AQ 4xU/I |
关键动作:设置 输出限幅。加热系统需配置 最小输出为 0%,防止 SSR 低占空比时失控导通。
第三阶段:西门子 S7-1200 自整定实操
以 PID_Compact 指令为例,固件要求 V4.1 以上。
3.1 组态 PID 工艺对象
- 打开 TIA Portal V17 及以上版本。
- 创建 新项目,添加 CPU 1214C DC/DC/DC。
- 展开 左侧"工艺对象" → 双击 "添加新对象"。
- 选择
PID_Compact,命名 为TempCtrl,确定。 - 配置 基本参数:
- 控制器类型:选择 "温度"(自动预加载加热算法)。
- 反相控制:勾选(加热输出增大 → 温度上升,为反作用)。
- 采样时间:设置
1000ms(与温度传感器滤波匹配)。
3.2 输入输出地址映射
配置 过程值输入:
- 源:选择 "Input_PER"(直接读模拟量输入字)。
- 地址:填写
%IW64(对应 SM1231 RTD 模块的 0 号通道)。 - 标定:设置 量程 0.0 ~ 200.0(℃)。
配置 输出:
- 类型:选择 "Output_PER"(直接写模拟量输出字)。
- 地址:填写
%QW80。 - 标定:确认 0 ~ 27648 对应 0 ~ 100% 功率。
3.3 启动预调节(自整定第一步)
预调节用于获取初始参数,适合系统从未运行过。
- 下载 程序到 PLC,切换 到在线模式。
- 打开 工艺对象
TempCtrl的调试面板。 - 确认 实际温度稳定(波动 < 0.5℃/分钟)。
- 点击 "启动预调节"按钮。
- 观察 输出行为:PLC 会自动输出 70% 持续加热,到达设定值附近后切换为继电器震荡。
状态字解读(sRet.i_Event_Sch 参数):
| 状态值 | 含义 | 处理建议 |
|---|---|---|
16#0000 |
未激活 | 检查使能位 sPid_Cal.Setpoint 是否写入 |
16#0030 |
预调节运行中 | 正常,等待 5-15 分钟 |
16#0031 |
预调节成功 | 参数已写入,可转精确调节 |
16#8001 |
设定值太近 | 增大 设定值与当前值差值至 > 20% 量程 |
16#8002 |
输出受限 | 检查 输出是否被限幅或硬件故障 |
3.4 执行精确调节(可选优化)
预调节完成后,精确调节进一步微调:
- 等待 温度再次稳定在新设定值。
- 点击 "启动精确调节"。
- 监控
sRet.r_Kp、sRet.r_Ti、sRet.r_Td数值变化。 - 完成 后,点击 "上传参数到项目",保存 到离线工程。
3.5 关键参数备份与防覆盖
设置 sPid_Cal.b_RunInManual = TRUE 可在自整定后锁定手动模式,防止误触发重新整定。
导出 参数至数据块:
// 在 OB1 或循环中断中备份
"DB_Backup".Kp := "TempCtrl".sRet.r_Kp;
"DB_Backup".Ti := "TempCtrl".sRet.r_Ti;
"DB_Backup".Td := "TempCtrl".sRet.r_Td;
第四阶段:三菱 FX5U 自整定实操
FX5U 使用 PID 指令,配置路径与西门子差异较大。
4.1 参数寄存器规划
PID 指令占用连续 25 个寄存器,分配 如下:
| 寄存器 | 符号 | 功能 |
|---|---|---|
D500 |
$S_V$ | 设定值(0~1000 对应 0~100%) |
D501 |
$P_V$ | 当前值(工程量或百分比) |
D502 |
$M_V$ | 操作量输出(0~1000) |
D503 |
$K_p$ | 比例增益(×100,如 250 表示 2.5) |
D504 |
$T_i$ | 积分时间(秒,0 时取消积分) |
D505 |
$T_d$ | 微分时间(秒) |
4.2 启用自整定(AT 功能)
三菱 AT 为阶跃响应法,执行 流程:
- 写入
D512(AT 输出上限)= 800(80% 功率上限)。 - 写入
D513(AT 输出下限)= 0。 - 设置
M0(AT 启动位)= ON。 - 确认
M1(AT 完成位)由 OFF→ON,读取D503~D505的整定结果。
关键限制:AT 执行期间,禁止 修改设定值。FX5U 会在当前值与设定值偏差 > 10% 量程时自动触发阶跃实验。
第五阶段:验证与优化整定结果
自整定给出的是数学最优解,现场需人工验证鲁棒性。
5.1 阶跃响应测试
执行 设定值阶跃变化(如 80℃→100℃),记录 关键指标:
| 指标 | 合格标准 | 超标处理 |
|---|---|---|
| 超调量 | < 5%(温度控制) | 增大 $T_i$ 或减小 $K_p$ |
| 调节时间 | < 4×时间常数 | 增大 $K_p$ 或减小 $T_i$ |
| 稳态误差 | < ±0.5% 量程 | 减小 $T_i$ 或检查积分饱和 |
| 衰减比 | 4:1 ~ 10:1 | 调整 $T_d$ 抑制震荡 |
5.2 抗干扰测试
模拟 两种典型扰动:
- 负载扰动:突然 打开炉门 10 秒,观察 温度恢复时间。
- 设定值扰动:快速 切换两段工艺温度,检查 是否跟踪得上。
若恢复过慢,启用 微分先行或调整 滤波系数。
5.3 多段温区协调(高级)
多温区系统需考虑 耦合效应:
PID 协调算法"] --> A D --> B D --> C
策略:主控 PLC 运行 解耦算法,各从站接收 前馈补偿量,而非独立 PID。
第六阶段:故障排查速查表
| 现象 | 根因分析 | 解决动作 |
|---|---|---|
| AT 一直不完成 | 采样时间太短 / 过程噪声过大 | 增大 采样时间至 2~5 秒,启用 输入滤波 |
| 整定后严重超调 | 继电器法用于大滞后系统 | 切换 为阶跃响应法,或手动 减小 $K_p$ 30% |
| 低温段震荡、高温段迟钝 | 加热系统非线性(SSR 导通角限制) | 分段 PID 参数,低温用高 $K_p$,高温用低 $K_p$ |
| 自整定后温度漂移 | 冷端补偿未启用 / 接线松动 | 检查 模块诊断字节,紧固 端子螺丝 |
| 输出频繁 0-100% 跳变 | 微分时间过大或测量噪声 | 减小 $T_d$ 至 $T_i$/8 以下,增大 滤波 |
附录:关键参数计算与量程换算
模拟量输入工程量转换:
$$T_{实际} = \frac{(Input - Input_{min})}{(Input_{max} - Input_{min})} \times (T_{max} - T_{min}) + T_{min}$$
对于 PT100 接入 SM1231 RTD 模块,Input 为 0~27648 的整型值,需在 PID 配置中完成 标定。
PID 输出限幅计算:
若 SSR 最低有效占空比为 5%(防止 2Hz 以下闪烁),设置:
$$Output_{min} = \frac{5\%}{100\%} \times 27648 = 1382$$
对应 PLC 参数 sPid_Cal.LowerLimit = 5.0(百分比)。

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