
项目背景这次做的是一个温度 PID 加热控制实验。我的思路是先把温度反馈读进 PLC再把原始量转换成工程量最后用 PID 的输出百分比去控制加热回路。这样写程序时就不是简单地“温度低就加热、温度高就停止”而是让输出随着温度偏差变化温度接近设定值时自动减小加热比例。从现场截图能确认控制器是西门子 S7-200 SMART CPU ST20程序里用 MicroWIN SMART 的 PID 回路向导建立了 1 个温度回路回路名为 PID温度。输出侧实物图里能看到 SSR-25DA 固态继电器用来驱动加热负载。一、硬件与控制对象从电气原理图和现场照片可以看出控制器为西门子 S7-200 SMART CPU ST20电气图中标注了 6ES7288-1ST20-0AA0。输出侧使用固态继电器实物铭牌可见型号为 SSR-25DA输入端标注为 3-32 VDC负载侧标注为 24-380 VAC。这个项目可以按下面的链路理解温度传感器/温度变送信号 ↓ PLC 采集原始过程量 ↓ PV 工程量标定 ↓ PID 温度回路计算 ↓ 输出百分比/占空比控制 ↓ SSR-25DA 固态继电器 ↓ 加热负载这里要注意SSR 只负责执行加热通断不能替代空气开关、熔断器、急停、安全继电器、超温保护等硬件安全措施。温度加热项目如果用于真实设备必须单独设计硬件级超温断电和急停回路PLC 程序只能作为控制逻辑的一部分。图1.1CPU ST20 与 SSR-25DA 的电气原理图图1.2CPU ST20 实物与输出接线位置标注图1.3SSR-25DA 与端子排接线实物图1.4QX-D024 PWM 模块产品特点与电气参数二、PID 向导参数设置我这里没有手写 PID 运算公式而是用 MicroWIN SMART 里的 PID 回路向导生成回路。这样做的好处是参数、数据区、中断执行程序都比较清楚后面调试时也能直接打开整定控制面板观察 SP、PV、OUT 三条数据。图2.1PID 初始参数调试的时候最容易忽略的是采样时间和输出周期。采样时间太短温度还没变化 PID 就一直重新计算容易让输出看起来乱跳输出周期太长温度响应会变钝输出周期太短则要看 SSR 和负载是否适合。以下为具体设置三、PV 标定与工程量换算截图中 PV 标定采用单极性输入原始过程量下限为 0上限为 27648对应回路设定值 0.0 到 100.0 单位。也就是说PID 参与计算的是标定后的温度工程量不是直接拿模拟量原始码值去算PV工程量 (AI原始值 - 0) * (100.0 - 0.0) / (27648 - 0) 0.0如果现场温度变送器实际量程不是 0-100 摄氏度例如 0-150 摄氏度或 4-20 mA 对应 0-200 摄氏度就必须同步修改 PID 向导里的标定范围。否则 PID 面板里看到的 PV 和真实温度对不上参数整定也没有意义。程序监控截图里可以看到 IW128 原始值、模拟量输入当前值、pid温度设定、CPU 输出位等变量。某次监控中 IW128 约为 6948换算后的模拟量输入当前值约为 37.17786说明程序已经把原始输入转换成了可读工程量。图3.1PID 调用与变量监控图3.2模拟量换算程序片段四、PID 程序调用思路PID 向导生成后项目中会出现几个关键对象图4.1关键对象程序时一般分三层看没有看到完整的急停、超温、传感器断线、负载反馈等联锁网络所以文章里不能说已经做成生产级保护。更合适的说法是这次截图能证明 PID 回路、标定、调用和调试观察已经搭起来后续用于设备时还需要补齐安全和报警逻辑。图4.2PID 向导生成子程序和中断例程图4.3PID 数据区 VB490-VB609 分配图4.4PID 向导生成组件列表五、占空比输出与 PWM 资料补充本项目输出侧是数字量周期输出本质上可以按占空比来理解。比如 PID 输出是 30%在一个控制周期内就让输出导通约 30% 的时间断开约 70% 的时间。加热对象有热惯性不需要像伺服那样连续高速变化所以这种“按比例通断”的方式比较常见。PDF 资料里的 QX-D024 模块给了一个很直观的 PWM 图解其中 T 是一个完整周期T1 是高电平时间。放到温度加热里看PID 输出百分比越大高电平时间越长SSR 导通时间越长加热量也越大PID 输出百分比越小SSR 导通时间越短加热量就下降。资料中还能看到 QX-D024 是四路 PWM 信号输出模块支持 4 路占空比、频率独立调节频率范围标注为 1 Hz 到 200 kHz占空比范围标注为 0 到 100.0%占空比调节分辨率为 0.1%。这些参数适合用来解释 PWM 控制的概念但是否适合直接控制本项目的 SSR要看实际接线、SSR 输入特性、负载功率和控制周期不能只凭说明书替代现场验证。图5.1PWM 占空比公式与 Modbus 寄存器地址资料还给出了端子定义和接线示意其中能看到 VCC、GND、A、B、DO1-DO4 等端子以及 RS485 接到 PLC、触摸屏或 USB 转 485 的示意。如果项目后续改成 PLC 通过 Modbus 控制外部 PWM 模块就要把通信地址、波特率、寄存器地址、写入数据格式全部单独验证不能和 S7-200 SMART 本机 PID 向导的数字量输出混在一起。图5.2QX-D024 端子定义与接线示意资料最后还说明了输出幅值切换模块内部可选 5 V外部则与供电 VCC 相同。这个地方调试时很关键因为 SSR、采集设备或被控设备的输入电压要求不一样如果输出幅值选错轻则无响应重则可能损坏输入端。图5.3PWM 输出幅值切换说明六、SSR 输出调试注意点SSR 适合加热控制但调试时不能只看 PLC 监控画面。我的排查顺序是1. 先断电核对 SSR 输入端极性、PLC 输出公共端和负载侧电源。2. 不接加热负载时先单独观察 PLC 输出点和 SSR 指示灯是否一致。3. 接负载后用较低设定值试运行观察温度是否朝设定值变化。4. 打开 PID 整定控制面板看 SP、PV、OUT 三个量是否方向一致。5. 如果 OUT 有变化但温度不动优先查 SSR 负载侧电源、保险、加热器断路。6. 如果温度一直升高优先查 SSR 是否击穿、输出逻辑是否反了、联锁是否缺失。SSR 负载侧即使关断也可能有漏电流维修时不能只看 PLC 输出位为 0必须断开主电源。电流较大时还要按 SSR 规格加散热片并留出电流余量。七、调试曲线观察截图中的 PID 整定控制面板显示某次测试 SP 约为 48.00PV 约为 49.26OUT 约为 10.37%。从曲线看PV 基本接近设定值输出处于较低占空比状态说明回路已经进入接近稳态的观察阶段。不过这只能说明当前实验条件下曲线接近设定值不能直接说已经满足生产精度。真正投到设备上还要做更长时间记录、负载扰动测试、传感器校准和独立温度仪表对比.图7.1PID 整定控制面板曲线八、常见问题与排查方法九、总结这个实训项目最有价值的地方是把温度控制的完整链路串起来了先采集温度再做工程量标定然后让 PID 根据偏差计算输出最后通过 SSR 或 PWM 占空比方式控制加热量。对我来说重点不是记住某一个 PID 参数而是知道调试顺序先确认接线再确认原始值再确认工程量最后才看 PID 参数和曲线。如果前面的信号链路不对后面怎么调 Kp、Ki、Kd 都是在绕弯。