主题
2.3 逻辑类功能块
逻辑类功能块产出「真 / 假」(1 / 0)或「满足 / 不满足」的判断结果, 主要用在条件判断的孔位上,也可以直接赋值给寄存器当开关量用。
本章按块分页:端子、块面参数、下发后变成什么、时序图与例子都在各块自己那一页,下面是入口。
2.3.1 无状态块(每轮直接算出结果)
输出只取决于当前输入,每轮扫描现算现出。
| 块 | 作用 | 例子 | 详解 |
|---|---|---|---|
| 逻辑与 / 或 | 与:两个输入都为真才输出真;或:任一为真就输出真 | 温度超限 且 泵在运行 → 报警;1 号故障 或 2 号故障 → 停机 | ddc_logic |
| 逻辑非 | 把输入反过来(真变假、假变真) | 非故障信号 → 允许启动 | ddc_not |
| 比较运算 | 比较两个数的大小,六种关系:> ≥ < ≤ == ≠ | D100 ≥ 28 | ddc_cmp |
判断口径是「非零即真」
所有输入都按数值处理,非 0 即为真 —— 因此寄存器值、算式结果、比较输出可以接入同一个逻辑输入口。 这一点和西门子 DDC 的「模拟量/数字量通用」一致。
2.3.2 有状态块(记住上一轮的状态)
这三个块的输出不只取决于当前输入,还和之前发生了什么有关,所以每个块有一个实例标识, 同一个程序里不允许重复(画布校验会提示「实例标识重复」)。
| 块 | 一句话 | 详解 |
|---|---|---|
| 脉冲触发(上升沿 / 下降沿) | 只在电平变化的那一拍输出一个脉冲,持续一个扫描周期 | ddc_edge |
| 定时器(接通延时 / 断开延时 / 脉冲输出) | 三种模式,单位秒,0.1~86400 | ddc_timer |
| 启停控制(RS 触发器) | 启动置位并保持、停止复位,同时为真时停止优先 | ddc_rs |
什么时候状态会被清掉
重新下发程序或设备重新上电后,这些块的状态全部回到初始值(见 3.1 下发与设备端运行)。 设计控制逻辑时要考虑这一点,例如设备重启后不会「记住」重启前的启停状态。 每个有状态块的详情页顶部都重复了这条规矩,并写明"这一块记住的具体是什么"。
2.3.3 组合示例
「按一下启动按钮,风机延时 10 秒启动,按停止立即停」——这段的完整连法、逐步验证与常见问题, 写在 定时器 ddc_timer 那一页(脉冲触发 + 启停控制 + 接通延时三块串起来)。
判断出来的真/假怎么变成动作:2.1 程序类功能块(条件判断、赋值); 数值怎么加工成可比较的数:2.4 计算类功能块。