首页 > 调试及软件 > 文章内容

台达 PLC|PID 块如何设置与编程(一步到位)

时间: 2025-10-21 23:45浏览量:405次
台达 PLC|PID 块设置与编程实战(含占位图)


适用:AS/AX(ISPSoft,支持 ST/FB)与 DVP(WPLSoft,梯形图)|含 HMI 参数映射与工程单位标定|附占位图(可后续替换)
开箱即用思路:先做量程标定 → 设定采样周期 → 配置PID 参数(Kp/Ti/Td/限幅/抗积分饱和/手自动切换)→ HMI 变量映射 → 上电试运行(先手动→再自动,阶跃微调)。

1. 工程准备

硬件/软件

  • PLC:台达 AS/AX 系列(建议用 ISPSoft)或 DVP 系列(WPLSoft)。
  • AI/AO:对应模拟量模块(电压/电流型),与现场变送器、执行器匹配。
  • HMI:方便在线调 Kp/Ti/Td、设定 SP、切换手/自动。

变量命名(建议直接照此创建)

SP(REAL)设定值 PV(REAL)过程值 Kp(REAL)比例增益 Ti_s(REAL)积分时间(s) Td_s(REAL)微分时间(s) Ts_s(REAL)采样周期(s) MV(REAL)输出0~100% MV_Min/MV_Max(REAL) Mode_Auto(BOOL) ManMV(REAL)手动输出% AW_Enable(BOOL)抗积分饱和 D_OnPV(BOOL)微分对PV

2. 量程标定(AI→工程量,MV→AO)

AI 标定(示例)

; 将原始 ADC 值()转换为工程量(PV)
; 请把下列常量改成你的模块/传感器实际值
; 例:AI_Raw_Min=0、AI_Raw_Max=32000;工程量 0~100.0
PV := (AI_Raw - AI_Raw_Min) * (PV_Max - PV_Min) / (AI_Raw_Max - AI_Raw_Min) + PV_Min;

常见原始量程:0~32000、0~27648、0~4000(不同模块不同)。请查拟用模块手册并替换AI_Raw_Min/Max。

AO 标定(示例)

; 将 MV(0~100%) 映射到 AO 原始输出
AO_Raw := INT( MV/100.0 * AO_FullScale );
; AO_FullScale 按模块实际:如 32000 或 4000

若用 4–20mA 执行器,记得在现场器件上做“最小/最大”拨码或参数校准。

3. ISPSoft(AS/AX 系列)用 ST 自建 PID 功能块

优点:完全可控、参数清晰;适合你把变量直接映射到 HMI。

(* 文件:FB_PID.st  — 在 ISPSoft 新建 Function Block *)
FUNCTION_BLOCK FB_PID
VAR_INPUT
  Enable     : BOOL;
  SP         : REAL;   (* 设定 *)
  PV         : REAL;   (* 测量 *)
  Kp         : REAL;   (* 比例增益 *)
  Ti_s       : REAL;   (* 积分时间[s] 0=禁用I *)
  Td_s       : REAL;   (* 微分时间[s] 0=禁用D *)
  Ts_s       : REAL;   (* 采样周期[s] *)
  MV_Min     : REAL;   (* 输出下限[%] *)
  MV_Max     : REAL;   (* 输出上限[%] *)
  Mode_Auto  : BOOL;   (* TRUE=自动; FALSE=手动 *)
  ManMV      : REAL;   (* 手动输出[%] *)
  AW_Enable  : BOOL;   (* 抗积分饱和 *)
  D_OnPV     : BOOL;   (* 微分对PV(推荐TRUE) *)
END_VAR
VAR_OUTPUT
  MV         : REAL;   (* 输出[%] *)
  Err        : REAL;   (* 误差 *)
END_VAR
VAR
  Iterm, PrevPV, PrevErr : REAL;
  FirstScan              : BOOL := TRUE;
  P, I, D, U             : REAL;
END_VAR

IF NOT Enable THEN
  MV := 0.0; Iterm := 0.0; PrevPV := PV; PrevErr := 0.0; RETURN;
END_IF;

Err := SP - PV;

(* P *)
P := Kp * Err;

(* I *)
IF Ti_s > 0.0 THEN
  Iterm := Iterm + (Kp * (Ts_s/Ti_s) * Err);
END_IF;

(* D *)
IF Td_s > 0.0 THEN
  IF D_OnPV THEN
    D := -Kp * (Td_s/Ts_s) * (PV - PrevPV);
  ELSE
    D :=  Kp * (Td_s/Ts_s) * (Err - PrevErr);
  END_IF;
ELSE
  D := 0.0;
END_IF;

(* 手/自动与输出限幅 *)
IF Mode_Auto THEN
  U := P + Iterm + D;
  (* 限幅 *)
  IF U > MV_Max THEN
    U := MV_Max;
    IF AW_Enable AND Ti_s > 0.0 THEN
      (* 抗积分饱和:扣回积分 *)
      Iterm := Iterm - (U - MV_Max);
    END_IF;
  ELSIF U < MV_Min THEN
    U := MV_Min;
    IF AW_Enable AND Ti_s > 0.0 THEN
      Iterm := Iterm - (U - MV_Min);
    END_IF;
  END_IF;
  MV := U;
ELSE
  (* 手动 *)
  MV := ManMV;
END_IF;

PrevPV := PV;
PrevErr := Err;
END_FUNCTION_BLOCK

主程序调用(100ms 周期示例)

(* 文件:PRG_MAIN.st — 周期任务里调用 *)
VAR
  pid : FB_PID;
END_VAR

(* 采样周期 0.10s。若你的任务周期不同,请改 Ts_s *)
pid(
  Enable    := TRUE,
  SP        := SP,
  PV        := PV,
  Kp        := Kp,
  Ti_s      := Ti_s,
  Td_s      := Td_s,
  Ts_s      := 0.10,
  MV_Min    := MV_Min,    (* 如 0.0 *)
  MV_Max    := MV_Max,    (* 如 100.0 *)
  Mode_Auto := Mode_Auto, (* HMI 切换 *)
  ManMV     := ManMV,     (* 手动输出 *)
  AW_Enable := AW_Enable, (* 抗饱和 *)
  D_OnPV    := D_OnPV     (* 推荐 TRUE *)
);

MV := pid.MV;  (* 接 AO 标定 *)
HMI 建议直接绑定的变量:
SPPV(只读)KpTi_sTd_s MV(只读)MV_MinMV_Max Mode_AutoManMVAW_EnableD_OnPV

4. DVP(WPLSoft)梯形图配置要点

  • 采样节拍:将 PID 相关算式放在固定周期中断里(如 100ms),保证Ts_s恒定。
  • 量程换算:先用算术指令把AI_Raw→PV(工程量)。
  • 手自动切换:常闭/常开触点控制手动/自动分支,自动时执行比例/积分/微分网络,手动时旁路写ManMV到输出。
  • 限幅与抗饱和:用比较/移动指令做MV_Min/MV_Max限幅,越限时扣回积分累加。
  • AO 输出:将MV(0~100%)映射到AO_Raw,写入 AO 缓冲寄存器。

5. 参数整定(上手即稳的快速法)

步骤 操作 建议值/说明
① 只开 P 先设Ti_s=0, Td_s=0,逐步提高Kp 系统刚好不振荡时的 50~70%
② 加 I 设Ti_s为过程时间常数的 1~3 倍 看稳态误差消除速度,过冲大就加大Ti_s
③ 视需要加 D Td_s占Ti_s的 1/10~1/3 抑制超调;信号噪声大时可不加 D
④ 限幅与防饱和 设置MV_Min/MV_Max与AW_Enable=TRUE 保护执行器,避免长时间顶住

6. 常见问题速查

  • 输出抖动:采样周期不稳/太短;对PV加一阶滤波(小时间常数),或提高Ti_s、取消 D。
  • 慢且有偏差:Kp太小或Ti_s太大;逐步加大Kp,降低Ti_s。
  • 一切都满输出:量程换算错;先检查AI_Raw、AO_Raw与工程单位映射常量。
  • 手转自时猛跳:切换前把ManMV置为当前MV(无扰切换)。

7. 占位图(可直接替换为现场图/趋势图)

PID 回路图(占位 SVG)

SPPVΣ+−PIDMVProcess反馈 PVKp / Ti / Td / 限幅 / 抗饱和 / 手自动占位图:将本 SVG 替换为你的系统框图或工艺图
提示:保留尺寸,直接替换元素文本或整张 SVG 为你的流程图。

阶跃响应趋势(占位 SVG)

PV%tSP(目标)PV(响应,占位曲线)MV(输出%,占位)占位图:换成现场数据趋势截屏或导出的 SVG
把这张 SVG 替换为你的历史曲线图更直观。

8. 最小可运行清单(一步检查)

  • AI/AO 物理接线与模块通道配置完成,AI_Raw与AO_Raw数值变化正常。
  • PV 工程量显示正确、单位明确(℃、bar、%RH…)。
  • 采样周期Ts_s与任务节拍一致(如 0.10 s)。
  • 手动模式能稳定控制执行器;再切自动,确认无扰切换。
  • 限幅、抗积分饱和已启用;紧急停机/联锁不被绕过。

注:不同台达型号/模块的模拟量计数范围可能不同。上文示例中的AI_Raw_Min/Max、AO_FullScale请根据你实际模块手册替换为正确数值(常见如 0~32000、0~27648、0~4000)。
下载资料前请先绑定手机号码
对不起,请登录后再发表评论!

触屏端
扫一扫手机也能发信息
明扬工控商城-工控网-工控自动化真品,一站式专业服务!