Skip to content

累计时间 ​

累计时间(类型名 ddc_runtime):输入为1时累计时间,为0暂停;复位为1时清零重新累计。小时模式按0.1小时(6分钟)步进。保持寄存器填平台的保持区 D(如 D200~D512,0=不保持)即可断电续计:hour 按0.1h单位、min 按分、sec 按秒存整。全程序最多 6 个。

这块是什么 ​

  • 编辑器里的名字:累计时间
  • 类型名:ddc_runtime(写在程序文件 ddc.json 里的身份,AI 生成或改逻辑时按它对名,别猜中文名)
  • 分类:计算(数值加工)
  • 形态:值块
  • 状态:有状态

输入为1时累计时间,为0暂停;复位为1时清零重新累计。小时模式按0.1小时(6分钟)步进。保持寄存器填平台的保持区 D(如 D200~D512,0=不保持)即可断电续计:hour 按0.1h单位、min 按分、sec 按秒存整。全程序最多 6 个。

块面长什么样 ​

累计时间在逻辑编程编辑器里的样子

图上这一颗就是刚把它从工具箱拖到画布时的样子:下拉框和输入框里是默认值,凹口(←形的那个孔)是要接值的地方,右边凸起是能被别人接的输出口。

块面参数(在块上直接填/选) ​

  • UNIT:小时(0.1h精度)=hour / 分钟=min / 秒=sec
  • HOLD_D:数 0(0~7999)

等号后面那串(如 =year)是画布上不显示、但程序文件里必须照抄的值(写出来是 "part": "year");没有等号的选项,界面上看到的和文件里填的是同一串。

连线端子(从别的块接进来) ​

  • 输出 Number
  • 端子 IN、RST

下发到设备变成什么 ​

  • 生成 ddc.json 的操作(op):runtime

状态什么时候没

这个块跨扫描周期记住东西(上一轮的电平、计时到几秒),所以每个块都是独立实例,复制一块互不影响。实例在程序里靠一个**实例标识(id)**认领:同一个程序内不能重复,也不能为空 —— 校验会报「有状态块实例标识重复」或「块缺少实例标识(id),有状态块必须能跨周期保存状态」。重新下发程序或设备重新上电后,状态全部回到初始值 —— 见 3.1 下发与设备端运行。

手册里其它相关位置 ​

给设备装一块「运行小时表」 ​

统计某个条件累计为真的时间——风机累计跑了多少小时、滤网用了多久该换,都靠它。

  • 输入为真时开始累计,为假时暂停(不清零),再变真接着计
  • RST 为真时清零重新计
  • UNIT 选小时 / 分钟 / 秒:小时模式精确到 0.1 小时(6 分钟一个步进),不是秒级
  • 每个程序最多 6 个累计时间块,超了校验会报

HOLD_D(保持寄存器)决定断电后计不计得住

填 0 表示不保持;填一个保持区的 D(推荐 D200~D512),累计值就写进那个寄存器, 设备断电或重启后从寄存器里读回来接着计,不会清零。

想干什么怎么填
只是本轮算个时长,掉不掉电无所谓HOLD_D 填 0
累计运行小时要跨年累加HOLD_D 填一个没在别处用的保持区 D

只有填了保持寄存器才谈得上"断电续计"

HOLD_D 填 0 时本块和其它有状态块一样,重新上电后回到初始值(见本页上方的「状态什么时候没」); 填了保持寄存器,值存在那个 D 里,重启后读回来接着计。

典型接法:统计风机累计运行小时,到保养周期时置位保养提醒标志。

应用逻辑主循环
 ├─ 赋值 D210 ← 累计时间(IN ← 风机运行反馈 Y1,UNIT=小时,HOLD_D=200)
 └─ 赋值 M300 ← 比较运算( D210 >= 2000 )     ← 保养提醒标志,屏上或梯形图都能取
  • 想"提醒一次后自动重新计时":再放一个累计时间块,它的 RST 接脉冲触发(取 M300 的上升沿),清零后重新开始计。
  • 显示到屏上:屏上那一行的「值」直接取 HOLD_D 那个寄存器(见 HMI菜单行显示)。

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