Skip to content

基础控制例程 6:手 / 自动切换(多路选择) ​

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

场景:自动时输出由 PI 调节给出,手动时由面板给定值决定;切换无扰动,且手动值不能越界。

软元件

软元件作用
M200手/自动(0 = 自动,1 = 手动)
D100自动值(PI 输出 0~100)
D101手动给定(0~100)
D300阀门开度输出

块图(照着拖即可)

例程 6:手 / 自动切换(多路选择) 的块图

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

json
{
  "version": 1,
  "name": "手自动切换",
  "scan_ms": 200,
  "lines": [
    {
      "op": "assign",
      "target": {"op":"ref","device":"D","addr":300},
      "expr": {
        "op": "limit",
        "args": [
          {
            "op": "mux",
            "args": [
              {"op":"ref","device":"M","addr":200},
              {"op":"ref","device":"D","addr":100},
              {"op":"ref","device":"D","addr":101},
              {"op":"const","value":0},
              {"op":"const","value":0},
              {"op":"const","value":0},
              {"op":"const","value":0},
              {"op":"const","value":0},
              {"op":"const","value":0}
            ]
          },
          {"op":"const","value":0},
          {"op":"const","value":100}
        ]
      }
    }
  ]
}

要点

  • 多路选择用因子(0~7)从最多 8 路输入里选一路;这里只用 0 和 1 两路就够了。
  • 外面再套一层限值运算:手动给定填错成 150 也不会把阀门顶到 150%,这是手自动模式必须加的保护。
  • 比起用「如果…否则」写两条分支,多路选择只占一个块,切换瞬间就是换一个数,天然无扰动。

验证:M200 = 0 时改 D100 → D300 跟着变;M200 = 1 时改 D101 → D300 跟着变;把 D101 写成 200 → D300 被夹在 100。

注意事项

  • 因子只接了 0 和 1,若被写成 2 就会取到没接线的那一路——生成器会把它补成常量 0,行为是"输出 0"而不是"保持"。
  • 手动值没有限幅:现场输错一个数字,阀门/变频器直接满量程。
  • 自动输出来自 PI 时,手自动切换会让 PI 积分项继续累积(切回自动可能突变),需要无扰切换就把 PI 的使能在手动时断开。

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