主题
定时器(接通/断开延时/脉冲)
定时器(接通/断开延时/脉冲)(类型名
ddc_timer):接通延时:输入为1持续Ti秒后输出1。断开延时:输入变0持续Ti秒后输出0。脉冲:输入上升沿后输出1持续Ti秒。时间设置引脚接表达式可动态改 Ti,未接用默认值。每个块是独立实例。
这块是什么
- 编辑器里的名字:定时器(接通/断开延时/脉冲)
- 类型名:
ddc_timer(写在程序文件 ddc.json 里的身份,AI 生成或改逻辑时按它对名,别猜中文名) - 分类:逻辑(判断与运算)
- 形态:值块
- 状态:有状态
接通延时:输入为1持续Ti秒后输出1。断开延时:输入变0持续Ti秒后输出0。脉冲:输入上升沿后输出1持续Ti秒。时间设置引脚接表达式可动态改 Ti,未接用默认值。每个块是独立实例。
块面长什么样
图上这一颗就是刚把它从工具箱拖到画布时的样子:下拉框和输入框里是默认值,凹口(←形的那个孔)是要接值的地方,右边凸起是能被别人接的输出口。
块面参数(在块上直接填/选)
- MODE:接通延时=on / 断开延时=off / 脉冲输出=pulse
- TI:数 5(0.1~86400)
等号后面那串(如 =year)是画布上不显示、但程序文件里必须照抄的值(写出来是 "part": "year");没有等号的选项,界面上看到的和文件里填的是同一串。
连线端子(从别的块接进来)
- 输出 Number
- 端子 IN、TI_IN
下发到设备变成什么
- 生成 ddc.json 的操作(op):timer
状态什么时候没
这个块跨扫描周期记住东西(上一轮的电平、计时到几秒),所以每个块都是独立实例,复制一块互不影响。实例在程序里靠一个**实例标识(id)**认领:同一个程序内不能重复,也不能为空 —— 校验会报「有状态块实例标识重复」或「块缺少实例标识(id),有状态块必须能跨周期保存状态」。重新下发程序或设备重新上电后,状态全部回到初始值 —— 见 3.1 下发与设备端运行。
手册里其它相关位置
- 所属分类章节:2.3 本章导览
- 同类块一览:2.0 功能块速查总表
三种工作模式
| 模式 | 行为 | 典型用途 |
|---|---|---|
| 接通延时 | 输入为真并持续满设定时间后,输出才变真;中途断开重新计时 | 风机先开,30 秒后再允许压缩机启动 |
| 断开延时 | 输入变真时输出立即为真;输入断开后再等设定时间输出才变假 | 人走灯延迟熄灭、停机后风扇延时冷却 |
| 脉冲输出 | 输入为真期间,输出按设定时间输出一个定时脉冲 | 定时排气、按固定时长动作 |
时间怎么给
- 时间设置单位秒,默认 5 秒,范围 0.1~86400(一整天)
- 时间也可以接动态输入 —— 把
TI_IN端子接上(比如接一个 D 寄存器),运行中改寄存器就能改定时时间, 不用重新下发程序;不接就用块上填的默认值
一个组合示例
「按一下启动按钮,风机延时 10 秒启动,按停止立即停」:
应用逻辑主循环
└─ 赋值 D300 ← 脉冲触发(M0 上升沿) ← 启动请求(只记一下)
└─ 启停控制
├─ 启动 ← D300
├─ 停止 ← M1(停止按钮)
└─ 输出 → 定时器(接通延时 10s) → D200这一块记的是「计到几秒了」
重启或重新下发后计时从零开始(实例标识与状态复位的通用规矩,见本页上方的「状态什么时候没」)。 需要跨断电累计时间的场合用累计时间,它有保持寄存器。