字逻辑操作
二进制与选择
在寄存器核心处理数据。从逐位二进制掩码到复杂的多路复用,优化您的数据字处理。
什么是 TIA Portal 中的字逻辑操作?
字逻辑操作允许对字 (Word, DWord, LWord) 的所有位执行布尔计算。它们对于位掩码、比较二进制模式或简化组合信号的管理至关重要。
本节还包括强大的选择功能,如 SEL 和 MUX,允许根据条件或索引从多个值中动态选择一个值,以及用于状态管理的编码 (ENCO) 和解码 (DECO) 工具。
按位逻辑
Word 和 DWord 上的布尔处理
AND / OR / XOR — 二进制操作
AND功能
在两个或多个输入之间的每个相应位上执行逻辑操作(与、或、异或)。结果以相同大小的字提供。
适用场景
掩码特定位(使用掩码进行 AND)、组合报警或检测逐位状态变化。
专家提示
AND 非常适合“关闭”位,OR 适合“开启”位。
XOR 是比较两个字并识别哪些位不同的理想选择。
您可以通过单击黄色图标向块添加额外输入。
INVERT — 取反
INV功能
反转输入字中每个位的状态(0 变为 1,1 变为 0)。
适用场景
反转一组传感器信号或准备特定的二进制计算。
专家提示
相当于传统编程中的 NOT 运算符,但应用于整个字。
对于与具有反向逻辑的第三方设备进行通信非常有用。
注意不要将其与补码 (NEG) 混淆。
选择与多路复用
动态值路由
SEL — 二进制选择
SEL功能
根据二进制输入 G 的状态(G=0 -> IN0, G=1 -> IN1)从两个输入(IN0 或 IN1)中选择一个。
适用场景
在手动和自动设定值之间进行选择,或在两个温度阈值之间切换。
专家提示
三元运算符 (condition ? a : b) 的图形等效形式。
比 IF 块或两个条件传送程序段更紧凑。
适用于几乎所有数据类型 (Int, Real, Time...)。
MUX / DEMUX — 多路复用器
MUX功能
MUX 根据索引 K 从 N 个输入中选择一个。DEMUX 根据索引 K 将输入路由到 N 个输出之一。
适用场景
配方管理(通过索引选择)、动态 HMI 显示或将数据路由到不同的工作站。
专家提示
索引 K 从 0 开始。如果 K=0,则选择 IN0。
如果索引超出范围,使用 MUX 的 ELSE 输入定义默认值。
DEMUX 对于将测量值分发到不同的历史日志非常强大。
编码与解码
索引与位位置之间的转换
DECO — 解码
DECO功能
激活其编号对应于输入值的位。输出字的所有其他位都设置为 0。
适用场景
将步骤编号转换为二进制信号以驱动特定输出。
专家提示
如果输入为 3,输出字的第 3 位(第 4 个)将为 1。
允许轻松地从整数转换为位掩码。
驱动信号灯或状态指示器的理想选择。
ENCO — 编码
ENCO功能
返回输入字中处于状态 1 的最低有效位 (LSB) 的编号。
适用场景
识别报警字中出现了哪个故障,以显示相应的消息。
专家提示
如果输入字包含 2#0000_1000,ENCO 返回 3。
DECO 的逆操作。
对于将离散位置传感器的信号转换为数值非常有用。
字处理 vs 单个位
为什么要处理整个字?
| 场景 | 字逻辑方法 | 优势 |
|---|---|---|
| 强制 8 个输出为 0 | MOVE 0 -> Word | 1 个程序段 vs 8 个触点 |
| 掩码一个字节 | AND 16#00FF | 外科手术般的精准 |
| 反转 16 个信号 | INVERT | 执行速度 |
| 从 10 个值中选 1 个 | MUX | 最大可读性 |
| 路由一个测量值 | DEMUX | 灵活的逻辑 |
| 报警优先级 | ENCO | 瞬时诊断 |
常见问题
MUX 和数组 (Array) 有什么区别?
MUX 是针对少量值(通常 < 10)的代码硬编码指令。对于数百个值,请在 SCL 中使用带有动态索引 [i] 的数组。
可以对 REAL 类型执行 AND 吗?
不可以,按位逻辑操作(AND, OR, XOR)仅允许在二进制类型(Byte, Word, DWord, LWord)上使用。
DEMUX 索引如何工作?
K 输入定义 IN 值复制到哪个输出。如果 K=2,IN 复制到 OUT2。所有其他输出保持其先前值或根据配置设为 0。
INVERT 会改变数字的符号吗?
不会,INVERT 反转位。要改变符号(补码),请使用 NEG (数学) 指令或乘以 -1。