Skip to content

模拟量与工程量例程 6:运行小时累计与保养提醒(保持寄存器) ​

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

场景:统计风机/泵累计运行小时,到保养周期(如 2000 小时)给出提醒——设备自带的"运行小时表"。

软元件

软元件作用
Y0设备运行(1 = 运行)
X20复位按钮(保养后清零)
D300累计小时(精确到 0.1 小时)
D301保持寄存器(断电续计)
M300保养提醒
L1保养灯

块图(照着拖即可)

例程 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": "runtime",
        "unit": "hour",
        "id": "rt1",
        "hold": 301,
        "args": [{"op":"ref","device":"Y","addr":0},{"op":"ref","device":"X","addr":20}]
      }
    },
    {
      "op": "assign",
      "target": {"op":"ref","device":"M","addr":300},
      "expr": {
        "op": "cmp",
        "cmp": ">=",
        "args": [{"op":"ref","device":"D","addr":300},{"op":"const","value":2000}]
      }
    },
    {
      "op": "assign",
      "target": {"op":"ref","device":"L","addr":1},
      "expr": {"op":"ref","device":"M","addr":300}
    }
  ]
}

要点

  • 保持寄存器是断电续计的关键:填了它,断电或重启后累计值能读回来接着计;填 0 表示不保持。推荐 D200~D512。
  • 单位可选小时(精确到 0.1 小时)、分、秒。
  • 每个程序最多 6 个累计时间块,多设备各配一个时先数够不够。

验证:Y0 置 1,等一段时间读 D300(单位小时,短时间只有零点几);把 D300 写成 2000 → M300 = 1、L1 亮;X20 置 1 → D300 归零。

注意事项

  • 不填保持寄存器:重新下发或断电后累计清零,保养提醒永远到不了。
  • 保持寄存器选在别处也在写的地址:值被覆盖,累计乱跳。
  • 复位按钮没取边沿:按着不放的期间一直在复位,累计永远停在 0——需要"只复位一次"时给 X20 加「脉冲触发」。

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