跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/Serialize — 序列化

Serialize — 序列化

把变量序列化成字节数组,便于通信/存储。

移动 S7-1200/1500 TIA V19 别名:序列化 / Serialize

在 TIA 里试一下

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

TiaLink 设置

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

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

一句话

Serialize 把变量序列化成字节数组,便于通信/存储。

符号与引脚

分类:移动 不需要实例 模板值:src_type, dest_type
引脚方向说明
en流输入使能输入
SRC_VARIABLE输入源变量
DEST_ARRAY输入目标字节数组起始元素
POS输入写入位置(InOut DInt)
eno流输出使能输出
RET_VAL输出返回码(0=成功)

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

最小示例

Enable=1 时把 Value 写入 Buffer 的 Pos 位置;Ret=0 表示成功。

Serialize_Example:Network 1 — 序列化

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

怎么工作

  • SRC_VARIABLE 是源变量,DEST_ARRAY 是目标字节数组起始元素。
  • POS 是写入位置(InOut DInt),指令会把它更新到下一个位置;从 0 开始。
  • src_type/dest_type 用 Variant;RET_VAL 返回 0 表示成功,非 0 为错误码。
  • 字节序按 TIA 规则;跨设备通信时两边要约定一致。

常用场景

1. 序列化

同上面的最小示例。

2. 打包到字节缓冲

示例先把 Pos 复位,再把 Speed、Temp 依次写入同一个发送缓冲;Buffer 之后交给通信块发送(本页不展开通信配置)。

Serialize_Pack:Network 1 — 初始化位置;Network 2 — 序列化 Speed;Network 3 — 序列化 Temp

常见坑

  • POS 当 Input:POS 会被写回,必须用 InOut/DInt。
  • 缓冲越界:先算好变量字节数 + POS,不要超过数组长度。
  • 字节序:不同设备/协议可能不同;必要时用 Swap 调整。
  • 返回码:检查 RET_VAL,不要假设一定成功。

← 返回 LAD 指令手册