S7-1200 PID_Compact参数怎么调?先别动PID,我踩了三年坑才明白顺序

🔑 关键词:S7-1200 PID整定,PID_Compact参数设置,西门子PLC模拟量,伺服抖动,自动化控制调试

📖 摘要:一个业余调机佬的血泪总结:PID参数整定的真正顺序不是先调P再调I,而是先怀疑传感器和机械。附带S7-1200 PID_Compact的具体参数、模拟量0-27648的坑、以及为什么我劝你别信口诀。

凌晨两点,我又一次对着那个绿油油的RUN灯发呆

图片

车间里就剩我一个人,注塑机旁边的加热圈还散着热气,混着液压油那股说不上来的甜腻味。我蹲在电柜前面,笔记本垫在膝盖上,TIA Portal V16 的在线监控窗口里,PID_Compact 的 Output 值从 0 跳到 100,又蹦回 0,像心率不齐。

那天我调的是热流道温控,8 个区,K 型热电偶,加热功率 800W 一支。客户投诉说「温度在 215 到 232 之间来回飘」,我第一反应是 PID 参数不行,把 Gain 从 2.0 调到 0.8,Ti 从 60s 改到 180s,改了大概二十多版,飘还是飘。

后来我把热电偶换成另一支,飘就在 3 度以内了。那支坏的热偶不是坏到测不出来,而是它的响应时间变长了——你 PID 再准也没用,你控制的是一个已经在撒谎的反馈信号。

这件事之后我给自己定了个规矩,到现在都没破过。

我现在的整定顺序,顺序错了就是白干

图片

先说结论,这个顺序是我用废掉两个项目换来的:查传感器 → 查执行器 → 查机械 → 查采样周期 → 最后才是 PID 参数。大部分教程上来就讲 P、I、D 分别是什么,我觉得这个教法是有问题的,因为前面四步不做,PID 就是在一个错的模型上做最优解。

具体到 S7-1200 上,我现在会先看这几个东西,数字都给出来:

1. 模拟量通道原始值。 西门子 0-10V 对应 0-27648,4-20mA 对应 5530-27648(不是 0 起步,很多人栽在这)。如果 4mA 的时候你读到的是 5200 或者 5700,通道基本可以判死刑了,多半是电源共地或者线屏蔽层单端接错了。

2. PID_Compact 里的采样时间。 默认是 100ms,但如果你把它放在 OB1 里,而 OB1 实际扫描周期是 8ms,它还是按 100ms 采,这个没问题。真正出问题的是有人放到循环中断 OB30 里,设了 1ms 的循环,然后采样时间忘了改,控制就变成一个高频抖动的东西。我见过一次,加热圈一个月烧了两根。

3. 输出限幅。 PID_Compact 的 OutputLimits 默认 -100 到 100,你要映射到模拟量输出的话得自己写,或者把 Output 直接接到 Output_PER(0-100%)。别偷懒,我偷懒过,结果阀门全开跑了半个小时。

图片

4. 死区。 DeadBand 一般给量程的 0.5%~1%。温度控制我一般给 1.5 度,流量给 2%。给太小,输出一直在抖;给太大,稳态误差肉眼可见。

5. 手动模式先试。 PID_Compact 有 ManualEnable,我习惯先把输出手动给一个固定值,看温度能不能稳住。稳不住,说明是功率不够或者散热太大,跟 PID 一点关系都没有。这一步能省掉你至少一个通宵。

三种控制方案,我拿同一个热流道做过对比

我不是理论派,我就拿手头的活试过。同一个 8 区热流道,我分别用了三种做法:

方案 A:S7-1200 自带的 PID_Compact。 调好之后稳态波动 ±1.2 度,升温时间从室温到 220 度大概 6 分 40 秒。优点是不用自己写,Pretune 功能虽然糙但能用。缺点是它一次性只能跑一个实例的热启动自整定,8 个区得一个一个来,我那天在机台上站了快两个小时。

图片

方案 B:自己写积分分离 + 抗饱和。 用 SCL 写,大概 40 行。积分分离的意思是误差大于某个阈值(我给的 15 度)的时候先不加积分,只走 P,快到了再开积分。这套上去之后升温时间缩到 5 分 20 秒,超调从 8 度压到 3 度。但代码是我自己写的,换个人维护会骂我。

方案 C:三菱 FX3U 的 PID 指令(对比用,客户另一台机)。 说实话三菱那个 PID 指令用手册上给的默认参数就能跑个大概,但它的自整定是真的慢,我等了快 40 分钟才出结果。而且它的积分时间和西门子的定义方向不完全一样,我从西门子那边抄参数过去,第一次直接飞车了——当然不是真的飞车,就是超调 20 多度,加热圈冒烟。

结论是什么?结论是方案 B 效果最好但最不通用,方案 A 最省事但调起来慢。如果你是新手,我先劝你用 A,别一上来就写算法,算法写完你会发现自己连传感器都没校准。

一些不太中听的偏见,你可以不同意

图片

我特别烦那种「PID 调参口诀」,什么「先比例后积分再微分」「振荡就加积分时间」。这些口诀没错,但它们是结果,不是方法。你背口诀背得再熟,也不会知道你那台设备的 4-20mA 信号线正在和变频器的输出线捆在一起走线槽。

我遇到过至少四五次「控制不稳」,最后查出来是:

一次是变频器 3.7kW 的输出线跟传感器信号线在同一线槽里并排走了 6 米,屏蔽层只在一端接了地,干扰大到信号能跳 200 多个数。把线分开走,问题就没了。

一次是气动调节阀的定位器零点漂了,你给 40% 它实际开 55%,你 PID 怎么调都在打架。

还有一次是加热圈的接线端子氧化,接触电阻变大,加热功率实际只有铭牌的 60%。

图片

说实话,做这行越久,我越觉得「自动化控制」这四个字里,自动的部分可能只占 20%,剩下 80% 是体力活和排查活。你要拧螺丝,要用万用表,要闻电柜里有没有糊味,要用手背去贴电机外壳感受温度——我手上的疤现在有七八处,最长的那个是三年前被一个没断电的端子划的,我当时以为断了的。

还有一点,市面上那些「零基础学PLC」的视频,我看了几个,讲 PID 的时候都是用仿真软件跑一个理想的二阶系统给你看曲线,那曲线又光滑又漂亮。现实里的曲线是毛刺的、有阶跃干扰的、会有莫名其妙尖峰的,因为现实里有电磁干扰、有机械间隙、有阀门死区。 你在仿真里调出来的参数,拿到现场大概率要重调。

这台热流道最后稳定在 220±1 度,是凌晨三点四十的时候。我关了笔记本,站起来的时候膝盖咔的一声,腰是真酸。车间外面在下雨,我坐在车里没马上走,就坐着发呆。

所以如果你现在也卡在某个温度飘、位置抖、压力不稳的现场,我给你一个可能有点跑题的建议:把 PID 的界面先关掉,去看一眼你的传感器。

真的,先去看传感器。

🏷️ 标签: