文章目录

PLC与温度控制模块的PID自整定功能

发布于 2026-03-23 14:53:51 · 浏览 2 次 · 评论 0 条

打开 温度控制柜,发现温度波动高达 ±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 型为例)

  1. 确认 补偿导线型号与热电偶分度号匹配(K 型用 KC 补偿线)。
  2. 区分 正负极:绿色为正,白色为负(IEC 标准)。
  3. 检查 冷端补偿:PLC 模块需启用内部补偿或外接 Cu50 电阻。
  4. 测量 端子电压:常温下 K 型热电偶约 0~1mV,用万用表 mV 档验证。

热电阻(PT100 三线制)

  1. 识别 三根线:两根同色(接模块 $I+$ 和 $I-$),一根异色(接 $Sense+$)。
  2. 消除 引线电阻:三线制自动抵消两根引线的阻值。
  3. 验证 阻值换算: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 工艺对象

  1. 打开 TIA Portal V17 及以上版本。
  2. 创建 新项目,添加 CPU 1214C DC/DC/DC。
  3. 展开 左侧"工艺对象" → 双击 "添加新对象"。
  4. 选择 PID_Compact命名TempCtrl确定
  5. 配置 基本参数:
    • 控制器类型:选择 "温度"(自动预加载加热算法)。
    • 反相控制:勾选(加热输出增大 → 温度上升,为反作用)。
    • 采样时间:设置 1000ms(与温度传感器滤波匹配)。

3.2 输入输出地址映射

配置 过程值输入:

  • 源:选择 "Input_PER"(直接读模拟量输入字)。
  • 地址:填写 %IW64(对应 SM1231 RTD 模块的 0 号通道)。
  • 标定:设置 量程 0.0 ~ 200.0(℃)。

配置 输出:

  • 类型:选择 "Output_PER"(直接写模拟量输出字)。
  • 地址:填写 %QW80
  • 标定:确认 0 ~ 27648 对应 0 ~ 100% 功率。

3.3 启动预调节(自整定第一步)

预调节用于获取初始参数,适合系统从未运行过。

  1. 下载 程序到 PLC,切换 到在线模式。
  2. 打开 工艺对象 TempCtrl 的调试面板。
  3. 确认 实际温度稳定(波动 < 0.5℃/分钟)。
  4. 点击 "启动预调节"按钮。
  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 执行精确调节(可选优化)

预调节完成后,精确调节进一步微调:

  1. 等待 温度再次稳定在新设定值。
  2. 点击 "启动精确调节"。
  3. 监控 sRet.r_KpsRet.r_TisRet.r_Td 数值变化。
  4. 完成 后,点击 "上传参数到项目",保存 到离线工程。

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 为阶跃响应法,执行 流程:

  1. 写入 D512(AT 输出上限)= 800(80% 功率上限)。
  2. 写入 D513(AT 输出下限)= 0。
  3. 设置 M0(AT 启动位)= ON。
  4. 确认 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 抗干扰测试

模拟 两种典型扰动:

  1. 负载扰动突然 打开炉门 10 秒,观察 温度恢复时间。
  2. 设定值扰动快速 切换两段工艺温度,检查 是否跟踪得上。

若恢复过慢,启用 微分先行或调整 滤波系数。

5.3 多段温区协调(高级)

多温区系统需考虑 耦合效应:

graph LR A["Zone1: 加热区"] -->|"热辐射"| B["Zone2: 恒温区"] B -->|"气流传递"| C["Zone3: 冷却区"] C -->|"回流"| A D["PLC Master
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(百分比)。

评论 (0)

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

扫一扫,手机查看

扫描上方二维码,在手机上查看本文