按位异或 (XOR)
此信息适用于 CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370、GuardLogix 5570、Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器。在适用的情况下会注明控制器的差异。
XOR 指令使用 Source A 和 Source B 中的位执行按位异或运算,并将结果放入 Dest 中。
可用语言
梯形图

功能块图
功能块图支持以下元素:
功能块

FBD 函数
小贴士:
FBD 函数仅适用于 CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器。

结构化文本
此指令不可用于结构化文本中。
小贴士:
在表达式中使用 XOR 运算符可以计算出相同的结果。有关结构化文本中表达式和赋值语法的信息,请参见结构化文本语法部分。
操作数
重要提示:
以下情况下会导致运行出现意外:
- 输出标签操作数被覆盖。
- 结构操作数的成员被覆盖。
- 除非另外指定,否则结构操作数由多条指令共用。
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅数据转换“数据转换”部分。
梯形图
操作数 | 数据类型 CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 数据类型 CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | 格式 | 说明 |
|---|---|---|---|---|
Source A | SINT INT DINT REAL | SINT INT DINT LINT USINT UINT UDINT ULINT REAL LREAL | 立即数 标签 | 要与 Source B 执行异或运算的值。//浮点型包括 REAL 和 LREAL 数据类型。
小贴士:
浮点型输入将转换为整数,这可能导致溢出。
|
Source B | SINT INT DINT REAL | SINT INT DINT LINT USINT UINT UDINT ULINT REAL LREAL | 立即数 标签 | 与 Source A 执行异或运算的值。
提醒事项:
浮点型输入将转换为整数,这可能导致溢出。
|
Dest | SINT INT DINT REAL | SINT INT DINT LINT USINT UINT UDINT ULINT REAL LREAL | 标签 | 用于存储指令结果的标签。
小贴士:
如果数据类型为浮点型,则得出的值将转换为浮点型。
|
小贴士:
当需要针对输入值进行整数提升时,使用零扩展将较小的类型转换为较大的类型。
功能块
操作数 | 数据类型 | 格式 | 说明 |
|---|---|---|---|
XOR | FBD_LOGICAL | 标签 | XOR 结构 |
FBD_LOGICAL 结构
输入成员 | 数据类型 | 说明 |
|---|---|---|
EnableIn | BOOL | 启用输入。如果为假,指令不会执行,也不会更新输出。 默认值为真。 |
SourceA | DINT | 与 SourceB 执行异或运算的值。 |
SourceB | DINT | 与 SourceA 执行异或运算的值。 |
输出成员 | 数据类型 | 说明 |
|---|---|---|
EnableOut | BOOL | 指示指令使能后是否无故障执行。 |
Dest | DINT | 指令结果。 |
FBD 函数
输入操作数(左侧引脚) | 数据类型 CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | 说明 |
|---|---|---|
SourceA(上方) | SINT USINT INT UINT DINT UDINT LINT ULINT REAL LREAL | 与 Source B 执行或运算的值。 |
SourceB (bottom) | SINT USINT INT UINT DINT UDINT LINT ULINT REAL LREAL | 与 Source A 执行或运算的值。 |
输出操作数(右侧引脚) | 数据类型 CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | 说明 |
|---|---|---|
Dest | DINT UDINT LINT ULINT | 函数的结果。 |
说明
使能后,该指令进行按位异或运算:
Dest = Source A XOR Source B
如果 Source A 中的位是: | 并且 Source B 中的位是: | 那么 Dest 中的位是: |
|---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
影响数学状态标志
控制器 | 影响数学状态标志 |
|---|---|
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | 在一定条件下影响 |
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 是 |
请参见数学状态标志部分。
严重/轻微故障
没有特定于此指令的故障。请参见“数组索引编制”通过数组建立索引,了解关于数组索引故障的信息。
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 不适用 |
梯级输入条件为假 | 将梯级输出条件设置为梯级输入条件 |
梯级输入条件为真 | 将梯级输出条件设置为梯级输入条件 Dest 按“说明”部分所述进行设置。 |
后扫描 | 不适用 |
功能块
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 不适用 |
EnableIn 为假 | 将 EnableOut 设为 EnableIn |
EnableIn 为真 | 将 EnableOut 设为 EnableIn Dest 按“说明”部分所述进行设置。 |
指令首次运行 | 不适用 |
指令首次扫描 | 不适用 |
后扫描 | 不适用 |
示例
梯形图

功能块

FBD 函数

结构化文本
value_result_XOR := value_1 XOR value_2;
提供反馈