主题
HVAC 暖通例程 2:加热工况(反作用)+ 停机清零
这一页只讲这一个例程。母页 b-04-hvac 里留着例程 1,其余例程各自一页、在那一页的目录里点。
场景:冬天供暖、热水盘管、电加热——温度低了才要加大输出,方向与制冷相反;停机时必须把加热输出清零。
软元件
| 软元件 | 作用 |
|---|---|
D220 | 系统运行标志 |
D110 | 实测温度 |
D212 | PI 输出(0~100) |
D232 | 加热输出(限幅 + 停机清零) |
块图(照着拖即可)
对应的 ddc.json(点「生成 JSON」得到的就是它;也可存成 .ddc.json 导入)
json
{
"version": 1,
"name": "加热PI",
"scan_ms": 500,
"lines": [
{
"op": "assign",
"target": {"op":"ref","device":"D","addr":212},
"expr": {
"op": "pi",
"id": "pi_heat",
"args": [
{"op":"ref","device":"D","addr":220},
{"op":"const","value":0},
{"op":"ref","device":"D","addr":110},
{"op":"const","value":21},
{"op":"const","value":0.5},
{"op":"const","value":10},
{"op":"const","value":128}
]
}
},
{
"op": "assign",
"target": {"op":"ref","device":"D","addr":232},
"expr": {
"op": "limit",
"args": [
{"op":"ref","device":"D","addr":212},
{"op":"const","value":0},
{"op":"const","value":80}
]
}
},
{
"op": "if",
"cond": {"op":"not","args":[{"op":"ref","device":"D","addr":220}]},
"then": [
{
"op": "assign",
"target": {"op":"ref","device":"D","addr":232},
"expr": {"op":"const","value":0}
}
],
"else": []
}
]
}要点
- 正比例 = 1 是制冷(正作用),= 0 是加热(反作用)——这是 PI 块最容易填错的一格,填错就是"越冷越关、越热越开"。
- 加热输出必须上限保护(如 80%),并保留"停机清零":使能只负责"停调节",不负责"关输出"。
- 手/自动切换时把使能断开,PI 的积分项就不会在手动期间累积(切回自动不会突变)。
验证:D110 = 18(低于 21)→ D212 逐渐增大;D110 = 24 → D212 减到 0 附近;D220 = 0 → D232 = 0。
注意事项
- 只改正比例却忘了停机清零:系统关闭后加热阀还停在 60%,现场"明明关机了还在热"。
- Kp 太大(如 50):加热惯性大,明显过冲和震荡;加热系统尤其要从 Kp = 10 以下慢慢试。
- 电加热这类"要么开要么关"的执行器,PI 的连续输出要再经通断比控制才合适,别直接写 Y 点。