Skip to content

HVAC 暖通例程 ​

暖通专用块只有两个(PI 控制、空调参数计算),但它们是 DDC 的看家本事: 一个负责把温度平稳拉到设定值,一个负责把温湿度变成焓值 / 露点 / 湿球温度。

返回 例程总览。

这一页的主角

PI 调节三句话:① 制冷选正作用(正比例 = 1),加热选反作用(正比例 = 0),选反了就是"越热越加热"; ② 先只调比例(Ti 填 0 关积分),Kp 从默认 10 起,震荡就减小、太慢就加大,稳了再加 Ti(60~300 秒); ③ 死区给 0.5~1℃,让阀门接近目标时不再微动——否则几个月就磨坏执行器。

例程 1:房间恒温(制冷,PI 调水阀 / 风阀) ​

场景:把房间温度平稳控制在设定值,输出 0~100 直接当阀门开度或变频器频率百分比用。最典型的一个 PI 回路。

软元件

软元件作用
D220系统运行标志
D110实测温度(已线性变换)
D150当前设定值
D210PI 输出(0~100)
D230限幅后的阀门开度
Y0风机

块图(照着拖即可)

例程 1:房间恒温(制冷,PI 调水阀 / 风阀) 的块图

对应的 ddc.json(点「生成 JSON」得到的就是它;也可存成 .ddc.json 导入)

json
{
  "version": 1,
  "name": "房间恒温PI",
  "scan_ms": 500,
  "lines": [
    {
      "op": "assign",
      "target": {"op":"ref","device":"D","addr":210},
      "expr": {
        "op": "pi",
        "id": "pi_room",
        "args": [
          {"op":"ref","device":"D","addr":220},
          {"op":"const","value":1},
          {"op":"ref","device":"D","addr":110},
          {"op":"ref","device":"D","addr":150},
          {"op":"const","value":0.5},
          {"op":"const","value":10},
          {"op":"const","value":128}
        ]
      }
    },
    {
      "op": "assign",
      "target": {"op":"ref","device":"D","addr":230},
      "expr": {
        "op": "limit",
        "args": [
          {"op":"ref","device":"D","addr":210},
          {"op":"const","value":10},
          {"op":"const","value":90}
        ]
      }
    },
    {
      "op": "assign",
      "target": {"op":"ref","device":"Y","addr":0},
      "expr": {"op":"ref","device":"D","addr":220}
    }
  ]
}

要点

  • PI 的 7 个输入依次是:使能、正比例、输入、设定、死区、Kp、积分时间 Ti(秒);输出固定 0~100。
  • 限值运算套在输出外面做保护:冷水阀留 10% 最小开度(防冻、防泵憋压),上限 90% 留调节余量。
  • 设定值接寄存器(D150)而不是常量,就能配合工况切换自动改目标。

验证:D220 = 1、D110 从 22 升到 29 → D210 从接近 0 增到接近 100;进入死区(±0.5)后输出保持不动;D220 = 0 → 停止调节。

注意事项

  • 输入接了未换算的原始读数(如 4000):PI 看到"温度 4000 度",输出直接顶到 100 不动。
  • 使能断开时 PI 停止调节(不再更新输出),但不会自动清 0。要"停机即关阀"另加一条:如果 非 D220 → D230 ← 0。
  • 死区给 0:阀门在设定点附近一直微动,几个月就磨坏。

其余例程(各自一页) ​


相关文档 ​

LPPLC 工业物联网云平台 · 软硬件与云平台全栈自研