Skip to content

基础控制例程 2:带回差的温度开关 ​

这一页只讲这一个例程。母页 b-01-basic-control 里留着例程 1,其余例程各自一页、在那一页的目录里点。

场景:温度高了开风扇、低了关,但不能在阈值附近来回启停——用回差(30 开 / 20 关)解决。所有开关量温控的必备设计。

软元件

软元件作用
D100实测温度(已换算成工程量,见 B3 例程 1)
D200风扇输出(1 = 开)

块图(照着拖即可)

例程 2:带回差的温度开关 的块图

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

json
{
  "version": 1,
  "name": "温度回差开关",
  "scan_ms": 200,
  "lines": [
    {
      "op": "if",
      "cond": {
        "op": "cmp",
        "cmp": ">=",
        "args": [{"op":"ref","device":"D","addr":100},{"op":"const","value":30}]
      },
      "then": [
        {
          "op": "assign",
          "target": {"op":"ref","device":"D","addr":200},
          "expr": {"op":"const","value":1}
        }
      ],
      "else": [
        {
          "op": "assign",
          "target": {"op":"ref","device":"D","addr":200},
          "expr": {"op":"const","value":0}
        }
      ],
      "elseif": [
        {
          "cond": {
            "op": "cmp",
            "cmp": "<",
            "args": [{"op":"ref","device":"D","addr":100},{"op":"const","value":20}]
          },
          "then": []
        }
      ]
    }
  ]
}

要点

  • 没有「否则」分支就是保持:温度落在 20~30 之间时两个条件都不成立,这一轮什么都不做,D200 保持上一轮的值——这正是回差的来源。
  • 回差宽度(这里 10℃)按设备允许的通断频率定:压缩机、电磁阀要留得更大,普通风机 1~2℃ 也够。
  • 阈值必须和 D100 的单位一致:如果 D100 还是 4~20mA 的原始读数(如 4000),先做线性变换再比较。

验证:D100 写 35 → D200 = 1;改 25 → D200 保持 1;改 15 → D200 = 0;再改 25 → 保持 0。

注意事项

  • 为省事先写一行 D200 ← (D100 ≥ 30):没有回差,温度在临界点抖动时输出每秒通断好几次,几天就烧触点。
  • 两个阈值写反(开 20 / 关 30):变成"低于 20 才开、高于 30 才关",逻辑整个反过来。
  • 温度带小数(如 26.5)时比较要留够余量,别把开/关阈值设成同一个数。

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