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图形
参数说明
接口变量 | 声明 | 数据类型 | 说明 |
---|---|---|---|
SOURCE_ARRAY | VAR_Input | ARRAY of BYTE 或 ARRAY of CHAR | 用于保存其数据流将取消 序列化的 ARRAY 变量名s |
POS | VAR_IN_OUT | DINT | POS 参数计算的数组的相对下标位置。 POS 参数将从 0 开始计算,对应数组的起始下标位置。指令执行后,POS=POS+数据占用的字节数量s |
DEST_VAR | VAR_IN_OUT | ANY_TYPE | 用于取消序列化数据待写入 的目标变量 |
函数名称 | 返回值 | INT | 错误信息 |
返回值错误代码
错误代码(16进制码) | 说明 |
---|---|
0000 | 无错误 |
80B0 | 参数 SOURCE_ARRAY 和 DEST_VAR 的存储区重叠 |
8136 | SOURCE_ARRAY 参数处的变量非法 |
8151 | SOURCE_ARRAY 参数中的引用无效 |
8153 | SOURCE_ARRAY 参数没有足够的可用数据COPY给DEST_VAR |
8154 | SOURCE_ARRAY 参数中的数据类型无效 |
8250 | NULL 指针已在 DEST_VAR 参数处传递 |
8251 | DEST_VAR 参数中的引用无效 |
8382 | POS 参数的值超出数组的限值 |
示例
- LD示例图片如下图所示:
- ST示例如下代码所示:
ss:=DESERIALIZE(SOURCE_ARRAY:=dd,POS:=darr[0],DEST_VAR:=ss);