跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/Swap — 字节交换

Swap — 字节交换

交换字/双字的字节顺序。

移动 S7-1200/1500 TIA V19 别名:字节交换 / SWAP / Swap

在 TIA 里试一下

选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。

TiaLink 设置

默认 http://localhost:8080。也可以在本页地址后加 ?tialink= 临时指定。

TiaLink 启动时若设置了 --api-token,这里要填相同的值;只保存在本机浏览器 localStorage,不会上传。

一句话

Swap 交换字/双字的字节顺序;常用于大小端(Endian)转换。

符号与引脚

分类:移动 不需要实例 模板值:源类型(SrcType)
引脚方向说明
en流输入使能输入
in输入输入值
eno流输出使能输出
out输出字节交换后的值

符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。

最小示例

Enable=1 时 Result = Swap(A);A=16#1234 时 Result=16#3412。

Swap_Example:Network 1 — 字节交换

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。

怎么工作

  • EN 为 1 时执行;in/out 的数据类型一致(Word/DWord)。
  • 对 Word 交换高低字节;对 DWord 反转字节序(B0↔B3、B1↔B2)。
  • 它不改变数值大小,只改变字节排列;通信/Modbus 字序转换常用。

常用场景

1. 字节交换

同上面的最小示例。

2. 字节序转换

把设备发来的字按协议要求交换字节序。

Swap_Endian:Network 1 — 字节序转换

常见坑

  • 把 Swap 当数值运算:它只是字节重排,不是乘除/取反。
  • 类型不匹配:Word/DWord 的字节数不同,别混用。
  • 通信字序:Modbus 等协议的字序/字节序要按设备手册确认。
  • ENO 未接:后面的指令可能不执行;需要串联时检查 ENO。

← 返回 LAD 指令手册