
ENCO — 编码
把输入位模式中优先的置位编码成位号:OUT = bitno(IN)。
在 TIA 里试一下
选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。
一句话
ENCO 把输入位模式中优先的置位编码成位号:OUT = bitno(IN)。
符号与引脚
分类:字逻辑
不需要实例
模板值:src_type
| 引脚 | 方向 | 说明 |
|---|---|---|
en | 流输入 | 使能输入 |
IN | 输入 | 输入位模式(DWord) |
eno | 流输出 | 使能输出 |
OUT | 输出 | 位号(Int) |
符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。
最小示例
Enable=1、Value=2#1000 时 Result=3(第 3 位)。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。
怎么工作
IN是输入位模式(DWord),OUT是位号(Int);src_type=DWord。- 单个位被置 1 时,输出就是该位的编号(从 0 开始)。
- 多个位同时置 1 时,按 TIA 的优先级取一个位号;做优先级编码时建议先确认规则。
EN/ENO是使能;输入为 0 时的输出按 TIA 规则确认。
常用场景
常见坑
- 多位置 1:结果只反映一个优先级位;需要全部位时用位操作逐位判断。
- 位号从 0 开始:第 0 位对应 1,不要和“第 1 位”混。
- 输入为 0:输出按 TIA 规则处理,先判断
IN <> 0。 - 和 DECO 混淆:
ENCO是“位模式 → 编号”,DECO是“编号 → 一位”。 - ENO 未接:后面的指令可能不执行;需要串联时检查 ENO。
