浔之漫智控技术(上海)有限公司
西门子授权代理商 , 西门子授权代理商 , 西门子一级代理商
SIEMENS 西门子 S120 伺服电机 1FK7022-5AK71-1LA5-Z 



             “序列化”指令对“Source”变量中的客户数据进行序列化,并将该顺序表示写入“Buffer”变量 中。"Buffer".Field 操作数中下一个未写入的字节下标将保存在 #BufferPos 操作数中。 现在将插入一种分隔表,以更方便地对顺序表示进行取消序列化。“移动字符串”指令将 “arti”字符移动到 #Label 操作数。“序列化”指令将客户数据后的这些字符写入“Buffer”变量 中。“#BufferPos”操作数的值将相应递增。 “序列化”指令对“Source”变量中特定的订货数据(运行时计算得出)的数据进行序列化,并 在将这些数据按照顺序表示方式写入“arti”字符后的“Buffer”变量中。 下表列出了操作数的声明:标准存储区的容量为 64 KB。如果参数 DEST_ARRAY 位于标准存储区中,则根据标准存储区 规则,大于 64 KB 的结构不能进行序列化。 建议将 ARRAY 的下限定义为“0”,这是因为 ARRAY 中的下标对应 POS 参数值。例如, ARRAY[0] = POS 0。下文中的说明与示例均基于此公式。 参数 POS 处操作数中包含有关转换后数据占用的字节数量信息。 如果要发送单个 PLC 数据类型 (UDT)、STRUCT 或 ARRAY of <数据类型 pe>,可以直接调用 指令“TSEND:通过通信连接发送数据”。 说明 比较结构 要比较结构,必须首先对其进行序列化处理。请改用比较表达式。 更多信息,请参见“关系表达式 (页 9956)” 存储区的容量 对齐规则为优化存储区内的简单结构中不包含填充字节。这样,优化存储区中的结构大小将 小于标准存储区中的。结构型和嵌套结构型 ARRAY 包含填充字节。对于包含组合结构(所 需存储空间更高)的存储区而言,该规则并并为通用规则。 S7-1500 系列 CPU: 如果某个块的块属性为“优化块访问”,则 BOOL 数据类型的长度将取决于紧跟其后的数据 类型。即,如果 BOOL 数据类型之后为 BYTE,则长度为 1 个字节。即,如果 BOOL 数据类 型之后为 WORD,则长度为 2 个字节。这样,优化存储区中主要由 BOOL 数据类型组成的结 构大小将大于标准存储区。因此,含少量 BOOL 数据类型的组合型结构在优化存储区内的大 小,要小于该结构在标准存储区内的大小。因此,建议序列化的源数据区从大数据类型开始,以布尔型元素结束。这样,可大幅减少用 于填充的填充位。 说明 对 CPU S7-1200 上的多个结构进行序列化 如果要在缓冲区中对 CPU S7-1200 的多个结构进行序列化并且要与其进行通信(例如,与 控制系统或 CPU S7-1500 通信),则必须检查返回值(POS 参数的下标)是否为偶数。如 果并非偶数,则必须在序列化第二个结构之前将返回值增加 1,因为第一个结构并未填充字 节。 示例: 结构由 1 个 DWORD 和 1 个 BYTE 组成 缓冲区中下一个序列化结构的起始地址为 5。加 +1,使起始地址为偶数。 优化存储区 对固件版本 V4.2 及以上版本的 S7-1200 系列 CPU 和固件版本 V2.0 及以上版本的 S7-1500 系列 CPU,要对较大结构进行序列化,可将存储区声明为优化访问。对于标准存储区,顺序 表示保存不变。 参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 SRC_VARIA BLE Input 所有数据类型 I、Q、D、FB 的 块接口, 无 I/O 数据 待序列化的变量。 S7-1500: 进行性能优化时,该参数 不能为 VARIANT 指针。 DEST_ARRA Y InOut ARRAY of BYTE 或 ARRAY of CHAR I、Q、D、FB 的 块接口(可在 Input、 Output、Static 和 Temp 部分 中)。 无 I/O 数据 用于存储所生成数据流的 ARRAY。 S7-1500: 进行性能优化时,该参数 不能为 VARIANT 指针。

              对 DEST_ARRAY 参数处的存储区访问无效。 * 在程序编辑器中,错误代码可显示为整数或十六进制值。有关切换显式格式的更多信息, 请参见“另请参见”。 固件版本 V2.8 及以上版本中的特殊功能 (S7-1500): 要对“序列化”指令(版本 V2.1)的性能进行优化,参数 SRC_VARIABLE 和 DEST_ARRAY 不能为 VARIANT 指针,而只能使用特定的数据类型。 请注意,对指令的错误响应将会因此更改:出错时,CPU 不输出任何错误代码,而是切换为 STOP 模式并生成访问错误。为了避免该错误,可通过指令 "GET_ERROR" 和 "GET_ERR_ID" 进 行本地错误处理。 固件版本 V2.2 及以上版本中的特殊功能 (S7-1200/S7-1500): 使用“序列化”指令(版本 V2.2)时,工艺对象(如,TO_SpeedAxis.Statusword)中的元 素无法再互连输入或输出参数 (SRC_VARIABLE/DEST_ARRAY)。 固件版本 V2.1 及以上版本中的特殊功能 (S7-1200/S7-1500): 在“序列化”指令(版本 V2.1 及以上版本)的优化版本中,由于过程数据的复杂性,需要 比之前版本更多的工作存储器空间。MOVE_BLK:移动块 (S7-1200, S7-1500) 说明 可以使用“移动块”(Move block) 指令将一个存储区(源范围)的数据移动到另一个存储区 (目标范围)中。使用参数 COUNT 可以指定将移动到目标范围中的元素个数。待移动元素的 宽度由源区域中第一个元素的宽度决定。 仅当源范围和目标范围的数据类型相同时,才能执行该指令。 如果满足以下条件,则输出 OUT 的值无效: • 在 IN 参数或 OUT 参数处,可移动更多的数据。 说明 ARRAY 的使用 该指令用于从指定索引开始,将定义元素中 n 个元素(n 取决于参数 COUNT 的值)的内容 从源范围复制到目标范围。下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 S7-1200 S7-1500 IN 1) Input 二进制数、整 数、浮点数、 定时器、 DATE、 CHAR、 WCHAR、 TOD 二进制数、 整数、浮点 数、定时 器、 DATE、 CHAR、 WCHAR、 TOD、 LTOD D、L 待复制源区域 中的首个元素 COUNT Input USINT、 UINT、UDINT USINT、 UINT、 UDINT、 ULINT I、Q、M、 D、L、P 要从源范围复 制到目标范围 的元素个数 OUT 1) Output 二进制数、整 数、浮点数、 定时器、 DATE、 CHAR、 WCHAR、 TOD 二进制数、 整数、浮点 数、定时 器、 DATE、 CHAR、 WCHAR、 TOD、 LTOD D、L 源范围内容要 复制到的目标 范围中的首个 元素 1) ARRAY 结构中的元素只能使用指定的数据类型。 有关有效数据类型的更多信息,请参见“另请参见”。MOVE_BLK_VARIANT:移动块 (S7-1200, S7-1500) 说明 可以使用“块移动”指令将一个存储区(源范围)的数据移动到另一个存储区(目标范围) 中。可以将一个完整的 ARRAY 或 ARRAY 的元素复制到另一个相同数据类型的 ARRAY 中。源 ARRAY 和目标 ARRAY 的大小(元素个数)可能会不同。可以复制一个 ARRAY 内的多个或单 个元素。 要复制的元素数量不得超过所选源范围或目标范围。 如果在创建块时使用该指令,则无需确定该 ARRAY,源和目标将使用 VARIANT 进行传输。无论后期如何声明该 ARRAY,参数 SRC_INDEX 和 DEST_INDEX 始终从下限“0”开始计数。 如果复制的数据多于可用的数据,则不执行该指令。 参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 SRC Input 2) VARIANT(指向 一个 ARRAY 或一 个 ARRAY 元 素),ARRAY of <数据类型> L(可在块接口 的“Input”、 “InOut”和 “Temp”部分进行 声明。) 待复制的源块 COUNT Input UDINT I、Q、M、D、L 已复制的元素数目 如果参数 SRC 或参数 DEST 中未指定任何 ARRAY,则将参数 COUNT 的值设置为“1”。 SRC_INDEX Input DINT I、Q、M、D、L 定义要复制的第一个元 素: • SRC_INDEX 参数将从 0 开始计算。如果参数 SRC 中指定了 ARRAY, 则参数 SRC_INDEX 中 的整数将指定待复制源 区域中的第一个元素。 而与所声明的 ARRAY 限值无关。 • 如果 SRC 参数中未指 定 ARRAY 或者仅指定 了 ARRAY 的某个元 素,则将 SRC_INDEX 参数的值赋值为“0”。定义了目标存储区的起点。 • DEST_INDEX 参数将从 0 开始计算。如果参数 DEST 中指定了 ARRAY,则参数 DEST_INDEX 中的整数 将指定待复制目标范围 中的第一个元素。而与 所声明的 ARRAY 限值 无关。 • 如果参数 DEST 中未指 定任何 ARRAY,则将参 数 DEST_INDEX 赋值为 “0”。 DEST Output 1) VARIANT L(可在块接口 的“Input”、 “InOut”和 “Temp”部分进行 声明。) 源块中内容将复制到的目 标区域。 函数值 (RET_VAL) INT I、Q、M、D、L 错误信息 1) DEST 参数声明为 Output,因为数据流入变量。但此变量本身在块接口中必须声明为 InOut。 2) 参数 SRC 的数据类型不能为 BOOL 和 BOOL 型 ARRAY。 有关有效数据类型的更多信息,请参见“另请参见”数据类型不匹配。

展开全文
拨打电话 微信咨询 发送询价