跳到主要内容

7.11.6 取消序列化

功能

取消序列指令反向转换 PLC数据类型(UDT)、STRUCT或ARRAY of(数据类型 )的顺序表示并填充所有内容。该指令可以逐步将已转换数据的多个顺序表示转换回原始状态。

注意
  • PLC 数据类型 (UDT)、STRUCT 或ARRAY of(数据类型)顺序表示所在存储区的数据类型必需为 ARRAY of BYTE 或 ARRAY of CHAR。数组的最大容量为 64 KB 。
  • 建议将 ARRAY 的下限定义为“0”,这是因为ARRAY中的下标对应POS参数值。例如, ARRAY[0] = POS0。下文中的说明与示例均基于此公式。指令执行后,POS=POS+数据占用的字节数量。

LD图形

alt text

参数说明

接口变量声明数据类型说明
SOURCE_ARRAYVAR_InputARRAY of BYTE 或 ARRAY of CHAR用于保存其数据流将取消 序列化的 ARRAY 变量名s
POSVAR_IN_OUTDINTPOS 参数计算的数组的相对下标位置。 POS 参数将从 0 开始计算,对应数组的起始下标位置。指令执行后,POS=POS+数据占用的字节数量s
DEST_VARVAR_IN_OUTANY_TYPE用于取消序列化数据待写入 的目标变量
函数名称返回值INT错误信息

返回值错误代码

错误代码(16进制码)说明
0000无错误
80B0参数 SOURCE_ARRAY 和 DEST_VAR 的存储区重叠
8136SOURCE_ARRAY 参数处的变量非法
8151SOURCE_ARRAY 参数中的引用无效
8153SOURCE_ARRAY 参数没有足够的可用数据COPY给DEST_VAR
8154SOURCE_ARRAY 参数中的数据类型无效
8250NULL 指针已在 DEST_VAR 参数处传递
8251DEST_VAR 参数中的引用无效
8382POS 参数的值超出数组的限值

示例

  • LD示例图片如下图所示: alt text
  • ST示例如下代码所示:
ss:=DESERIALIZE(SOURCE_ARRAY:=dd,POS:=darr[0],DEST_VAR:=ss);