主题
累计时间
累计时间(类型名
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 下发与设备端运行。
手册里其它相关位置
- 所属分类章节:2.4 本章导览
- 同类块一览:2.0 功能块速查总表
给设备装一块「运行小时表」
统计某个条件累计为真的时间——风机累计跑了多少小时、滤网用了多久该换,都靠它。
- 输入为真时开始累计,为假时暂停(不清零),再变真接着计
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 ) ← 保养提醒标志,屏上或梯形图都能取