交换字节 (SWPB)

此信息适用于
CompactLogix
5370、
ControlLogix
5570、
Compact GuardLogix
5370、
GuardLogix
5570、
Compact GuardLogix
5380、
CompactLogix
5380、
ControlLogix
5580、
GuardLogix
5580 和 ControlLogix 5590 控制器。
SWPB 指令可重新排列 Source 的字节顺序。然后将结果放入 Destination 中。
可用语言
梯形图
SWPB_LD_avail_v31
功能块
此指令不可用于功能块中。
结构化文本
SWPB(Source, Order Mode, Dest);
操作数
重要提示: 以下情况下会导致运行出现意外:
  • 输出标签操作数被覆盖。
  • 结构操作数的成员被覆盖。
  • 除非另外指定,否则结构操作数由多条指令共用。
指令中混用数据类型时,需遵从相关的数据转换规则。请参见“数据转换”
梯形图和结构化文本
操作数
数据类型
格式
说明
Source
INT
DINT
标签
包含要重新排序的字节的标签。
Order Mode
列表项
此操作数用于指定重新排序的方式。请参见 Order Mode 表。
Dest
INT
DINT
标签
要按新顺序存储字节的标签。请参见 Dest 表。
如果选择 HIGH/LOW 顺序模式,可输入 HIGHLOW(不含斜线)。有关结构化文本中表达式语法的详细信息,请参见结构化文本语法部分。
Order Mode
如果 Source 为
并且要将字节更改为此模式(每个字母代表一个不同的字节)
则选择
INT
AB => BA
任意选项
DINT
ABCD => DCBA
REVERSE
ABCD =>CDAB
WORD
ABCD => BADC
HIGH/LOW
Dest
如果 Source 为
则 Destination 必须为
INT
INT、DINT
如果目标值为 DINT 型,则需在进行字节换位后将结果进行符号扩展。
DINT
DINT
影响数学状态标志
严重/轻微故障
没有特定于此指令的故障。请参见“数组索引编制”通过数组建立索引,了解关于数组索引故障的信息。
执行
梯形图
条件/状态
执行的操作
预扫描
不适用
梯级输入条件为假
不适用
梯级输入条件为真
该指令可将指定字节重新排列。
后扫描
不适用
结构化文本
条件/状态
执行的操作
预扫描
请参阅“梯形图”表中的“预扫描”行。
正常执行
请参见“梯形图”表中的“梯级输入条件为真”行。
后扫描
请参见“梯形图”表中的“后扫描”行。
示例
示例 1 - DINT 标签的字节换位
这三条 SWPB 指令将按不同顺序模式将 DINT_1 的字节重新排序。显示样式为 ASCII,每个字符代表一个字节。每条指令将字节按新顺序放入不同的 Destination 中。
梯形图
SWPB_LD_ex1_v31
示例 2 - 将数组所有元素中的字节换位
梯形图
SWPB_LD_ex2_#1_v31
SWPB_LD_ex2_#2_[index]_v31
SWPB_LD_ex2_#3_v31
示例 3:结构化文本表示的 SWPB
结构化文本
index := 0;
SIZE (array[0],0,array_length);
REPEAT
SWPB(array[index],REVERSE,array_bytes_reverse[index]);
index := index + 1;
UNTIL(index >= array_length)END_REPEAT;
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal