Skip to content

时序与定时例程 ​

「先开风机、30 秒后再开压缩机」「人走灯延时灭」「按时段自动启停」——这类和时间有关的控制, 用的是定时器块、定时循环、系统时钟。每个例程同样给出块图 + 对应 ddc.json。

返回 例程总览。

这一页的主角

两个时间单位别搞混:主循环扫描周期是毫秒(默认 200);定时循环和定时器时间是秒 (定时循环最快 1 秒,定时器 0.1~86400 秒)。把 30 秒写成 30 毫秒,现象是"延时还没感觉到就动作了"。

例程 1:接通延时(风机先转,30 秒后才允许压缩机) ​

场景:压缩机启动前必须先建立风/水流,否则容易液击或高压保护。用「接通延时」把"风机已运行满 30 秒"变成允许条件。

软元件

软元件作用
X0 / X1开机 / 停机按钮
Y0风机
Y1压缩机允许(中间标志)
Y2压缩机
D100实测温度

块图(照着拖即可)

例程 1:接通延时(风机先转,30 秒后才允许压缩机) 的块图

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

json
{
  "version": 1,
  "name": "风机先转30秒",
  "scan_ms": 200,
  "lines": [
    {
      "op": "assign",
      "target": {"op":"ref","device":"Y","addr":0},
      "expr": {
        "op": "rs",
        "id": "rs_fan",
        "args": [{"op":"ref","device":"X","addr":0},{"op":"ref","device":"X","addr":1}]
      }
    },
    {
      "op": "assign",
      "target": {"op":"ref","device":"Y","addr":1},
      "expr": {
        "op": "timer",
        "mode": "on",
        "ti": 30,
        "id": "t_on30",
        "args": [{"op":"ref","device":"Y","addr":0}]
      }
    },
    {
      "op": "assign",
      "target": {"op":"ref","device":"Y","addr":2},
      "expr": {
        "op": "and",
        "args": [
          {"op":"ref","device":"Y","addr":1},
          {
            "op": "cmp",
            "cmp": ">=",
            "args": [{"op":"ref","device":"D","addr":100},{"op":"const","value":26}]
          }
        ]
      }
    }
  ]
}

要点

  • 「接通延时」= 输入为真并持续满设定时间后输出才为真;中途断开重新计时(不是累计)。
  • 定时器时间单位是秒(这里填 30),默认 5 秒,范围 0.1~86400。
  • 时间孔可以接动态输入(接一个 D 寄存器),运行中改寄存器就能改延时,调试时很方便。

验证:X0 启动 → Y0 立即为 1、Y1 在 30 秒内保持 0;满 30 秒 → Y1 = 1,此时 D100 ≥ 26 则 Y2 = 1;中途 X1 停机 → Y1 立刻回 0,再启动重新等 30 秒。

注意事项

  • 时间当成毫秒填(填 30000 想表示 30 秒):实际是 30000 秒 ≈ 8.3 小时,设备看起来"永远不动作"。
  • 定时器是有状态块,同一个程序里每颗要有唯一实例标识(这里的 t_on30);重复时校验报「实例标识重复」。
  • 重新下发或重新上电后计时重新开始,别指望它记住上次的进度。

其余例程(各自一页) ​


相关文档 ​

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