注:你的项目里块名可能叫 PID、PID_Auto 或 PID2,但端口语义一致。可将本 SVG 当“占位图”嵌入到产品/教程页。
| 参数 | 意义 | 常用起步 | 备注 |
|---|---|---|---|
| Kp(或 PB) | 比例环节强度;有的块用 增益 Kp,有的用 比例带 PB% | Kp:1.0~5.0;PB:5~20% | PB 越小越激进;Kp 越大越激进 |
| Ti | 积分时间,消除静差 | 2~20 s | 为 0 表示无积分 |
| Td | 微分时间,抑制超调 | 0~2 s | 为 0 表示无微分 |
| MV 上/下限 | 输出限幅 | 0%~100% | 执行器范围保护 |
| Ts | 采样周期 | 10~100 ms | 与任务周期一致 |
| AT_START | 自整定触发 | 按需 | 整定期间关注安全与极限 |
起步后再微调:超调大→增大 PB(或减小 Kp)、或增大 Td;稳态慢→缩小 PB(或增大 Kp)、或减小 Ti。
// 假设:AI 原始值 D100(0..4000 对应 0..200℃),SP 在 D110,PID 输出在 D120(0..100%) // R010 为控制使能;R011 为手动;R012 触发自整定;R013 为报警复位 |--[/]--------------------------[ MOV 0 D120 ]---------------------------------| | (报警/急停) | |----------------------------------------------------------------------------| |--[ R010 ]---------------------[ CALL PID ]----------------------------------| | | | | RUN = R010 | PV = D100 * 200 / 4000 → W | | MODE = R011 | SP = D110 | | AT_START = R012 | Kp/PB/Ti/Td/Ts = 来自参数区 | | MV_MAN = D130 | MV → D120(0..100%) | |----------------------------------------------------------------------------| |--[ ]---( DA 输出/或 TPO SSR 驱动 )-----------------------------------------| | D120 | |----------------------------------------------------------------------------|
说明:指令名与CALL PID形式因模板不同而异(也可能是PID_Auto等);关键在于 端口含义与数据流:AI→工程量→PID→DA/SSR。
// 变量(示意)
VAR
PV_raw : INT; // AI 原始
PV : REAL; // 工程量
SP : REAL := 100.0;
MV : REAL; // 0..100%
RUN : BOOL := TRUE;
MODE : BOOL := FALSE; // FALSE=自动, TRUE=手动
AT : BOOL := FALSE; // 自整定触发
Kp : REAL := 2.0; // 或 PB := 10.0 {REAL}
Ti : REAL := 5.0; // 秒
Td : REAL := 0.5; // 秒
Ts : REAL := 0.02; // 采样 20ms
MV_MAN : REAL := 0.0;
END_VAR
// 线性映射:0..4000 → 0..200.0 ℃
PV := REAL(PV_raw) * 200.0 / 4000.0;
// 调用 PID:块名以项目模板为准(示例名 PID_Auto)
PID_Auto(
RUN := RUN,
MODE := MODE,
AT_START := AT,
PV := PV,
SP := SP,
Kp := Kp, // or PB := 10.0
Ti := Ti,
Td := Td,
Ts := Ts,
MV_MAN := MV_MAN,
MV => MV
);
// 输出到 DA:0..10V → 0..32000(示例,按模块手册换算)
DA0_Value := LIMIT(0, INT(MV * 320.0), 32000);
把PID_Auto替换成你工程库里的实际块名;若块使用 比例带 PB% 而非 Kp,则把 PB 端口接入并把 Kp 置空。
| 现象 | 原因 | 处理 |
|---|---|---|
| 切自动时 MV 突跳 | 未做手自跟踪 | 切换前令MV_MAN≈当前 MV,或做无扰切换 |
| 积分“攒量”饱和 | 长时间超限/限幅后积分累积 | 启用 Anti-windup:在 MV 限幅时冻结或回退积分 |
| 振荡/超调大 | Kp 过大(或 PB 过小),Ti 太小 | 减小 Kp(或增大 PB),增大 Ti;必要时加 Td 与 PV 滤波 |
| 响应慢 | Kp 太小、Ti 过大、采样过长 | 增大 Kp(或减小 PB),减小 Ti,缩短任务周期 |
| 自整定失败 | 工况不稳/限位/噪声大 | 在稳定区间执行,延长周期、减小噪声、放宽限位 |
如果你给我具体机型(如 SPH3000 + 模拟量板型号)与 AI/DA 分辨率,我可以把示例中的映射/寄存器地址和任务周期精确到项目级别。