公司主营:西门子数控,S7-200CN.S7-200smart.S7-300.S7-400.S7-1200.6ES5 ET200 人机界面,变频器,DP总线,MM变频器,6SE70交流工程调速变频器6RA70等系列产品。
产品简介
详细介绍
西门子编程6ES7823-0BA00-1BA0现货
因为诚信所以简单,成交只是开始,服务*止步。Deserialize: 取消序列化
说明
可以使用“取消序列化"指令反向转换 PLC 数据类型 (UDT)、STRUCT 或 ARRAY of <数
据类型> 的顺序表示并填充所有内容。
PLC 数据类型 (UDT)、STRUCT 或 ARRAY of <数据类型> 顺序表示所在存储区的数据类
型必需为 ARRAY of BYTE 或 ARRAY of CHAR,并在版本 V1.0 中声明为访问。
的存储区也支持版本 V2.0 及更高版本。存储区的容量为 64 KB。在转换之前确保有充
足的存储空间。如果通过指令“序列化"填充存储区并有填充字节,则不进行转换。
建议将 ARRAY 的下限定义为“0",这是因为 ARRAY 中的下标对应 POS 参数值。例如,
ARRAY[0] = POS 0。下文中的说明与示例均基于此公式。
该指令可以逐步将已转换数据的多个顺序表示转换回原始状态。
如果只想转换回 PLC 数据类型 (UDT)、STRUCT 或 ARRAY of <数据类型> 的单个顺序表
示,则还可以直接使用指令“TRCV:通过通信连接接收数据"。
存储区的容量
对齐规则为存储区内的简单结构中不包含填充字节。这样,存储区中的结构大小
将小于存储区中的。结构型 ARRY 和其它结构的结构中,包含填充字节。对于包含组
合结构(所需存储空间更高)的存储区而言,该规则并并为通用规则。
S7-1500 系列 CPU:
对于块属性为“块访问"的块,BOOL 类型的长度为 1 个字节。这样,存储区中
主要由 BOOL 数据类型组成的结构大小将大于存储区。因此,含少量 BOOL 数据类
型的组合型结构在存储区内的大小,要小于该结构在存储区内的大小。
存储区
对固件版本 V4.2 及以上版本的 S7-1200 系列 CPU 和固件版本 V2.0 及以上版本的 S7-1500
系列 CPU,要取消较大结构的序列化,可将顺序表示的存储区声明为访问。对于
存储区,顺序表示中内容保存不变。ARRAY 中的字节仅支持符号化访问。
指令
4.1 指令
对 PLC 进行编程
898 编程和操作手册, 10/2018
参数
下表列出了“取消序列化"指令的参数:
参数声明数据类型存储区说明
EN Input BOOL I、Q、M、D、
L 或常量
使能输入
ENO Output BOOL I、Q、M、D、L 使能输出
SRC_ARR
AY
Input VARIANT
ARRAY[*] of
BYTE 1)
D、FB 的块接口
(可在 Input、
Output、Static
和 Temp 部分
中。)
指向用于保存数据串的
ARRAY of BYTE 或
ARRAY of CHAR 的指针。
DEST_VA
RIABLE
InOut VARIANT D、FB 的块接口指向一个待取消序列化的
STRUCT、ARRAY 或
PLC 数据类型 (UDT) 变量
的指针。
POS InOut DINT I、Q、M、D、L POS 参数中的操作数将根
据转换后所占用
的字节数,存储个字
节的下标。POS 参数将
从 0 开始计算。
RET_VAL Output INT I、Q、M、D、L 错误信息
1) 仅适用于固件版本为 V4.2 及以上版本的 S7-1200 系列 CPU 和固件版本为 V2.0 及以
上版本的 S7-1500 系列 CPU。
RET_VAL 参数
下表列出了 RET_VAL 参数值的含义:
错误代码*
(W#16#...
)
说明
0000 无错误
80B0 参数 SRC_ARRAY 和 DEST_VARIABLE 的存储区重叠。
8136 SRC_ARRAY 参数处的变量不在一个访问块中。
8150 SRC_ARRAY 参数中的 VARIANT 数据类型包含一个 ZERO 指针。
指令
4.1 指令
对 PLC 进行编程
编程和操作手册, 10/2018 899
错误代码*
(W#16#...
)
说明
8151 SRC_ARRAY 参数中的引用无效
8153 SRC_ARRAY 参数没有足够的可用存储空间。
8154 SRC_ARRAY 参数中的数据类型无效
8250 NULL 指针已在 DEST_ARRAY 参数处传递。
8251 DEST_VARIABLE 参数中的引用无效
8382 POS 参数的值超出数组的。
* 在程序编辑器中,错误代码可显示为整数或十六进制值。有关切换显式格式的更多信
息,请参见“另请参见"。
对于固件版本 V4.2 及以上版本的 S7-1200 系列 CPU 和固件版本 V2.0 及以上版本的
S7-1500 系列 CPU,以下错误代码的含义不同:
错误代码*
(W#16#...
)
说明
8136 对 SRC_ARRAY 参数处的存储区访问无效。
* 在程序编辑器中,错误代码可显示为整数或十六进制值。有关切换显式格式的更多信
息,请参见“另请参见"。
示例
下表列出了操作数的声明:
操作数数据类型声明
DeliverPos INT 位于 FB 或 FC 块接口
的“Input"部分。
BufferPos DINT 位于 FB 或 FC 块接口
Error INT 的“Temp"部分。
Label STRING[4]
指令
4.1 指令
对 PLC 进行编程
900 编程和操作手册, 10/2018
下表列出了 PLC 数据类型的声明:
PLC 数据类型的名称名称数据类型
Article Number DINT
Declaration STRING
Colli INT
Client Title INT
First name STRING[10]
Surname STRING[10]
下表列出了数据块的声明:
数据块的名称名称数据类型
Target Client "Client"(PLC 数据类型)
Article Array[0..10] of
"Article"(PLC 数据类型)
Bill Array[0..10] of INT
Buffer Field Array[0..294] of BYTE
以下示例说明了该指令的工作原理:
程序段 1:
“值"指令将值“0"到 #BufferPos 操作数。“取消序列化"指令对“Buffer"变量
中的顺序表示进行取消序列化,并写入“Target"变量中。#BufferPos 操作数将根
据转换后所占用的字节数,存储个字节的下标。
程序段 2:
指令
4.1 指令
对 PLC 进行编程
编程和操作手册, 10/2018 901
下一篇:西门子博途软件6AV2101-0AA05-0AA5调试