READ_LITTLE:以小端格式读取数据 (S7-1200, S7-1500) 说明可以使用“以小端格式读取数据”指令以小端字节序列从存储区读取数据并将此数据写入单个变量。使用小端格式时,首先保存具有Zui低有效位的字节,即保存在Zui低存储器地址。参数 SRC_ARRAY 和 DEST_VARIABLE属于 VARIANT 数据类型。但对于参数可以互连的数据 类型,有几点限制。参数 DEST_VARIABLE 的 VARIANT必须为基本数据类型。SRC_ARRAY 参 数的 VARIANT 指向要读取的存储区,并且必须为 ARRAY of BYTE。还可以对参数 SRC_ARRAY 和 DEST_VARIABLE 使用带变量 ARRAY 索引的实际参数。 参数 POS的操作数确定存储区中读取数据的起始位置。 说明 读取 VARIANT 或 BOOL 数据类型的变量 如果要读取 VARIANT指向的变量,请使用“序列化”或“取消序列化”指令。 如果要读取 BOOL数据类型的变量,则使用“片段访问”。WRITE_LITTLE:以小端格式写入数据 (S7-1200, S7-1500) 说明可以使用“以小端格式写入数据”指令以小端字节序列将单个变量的数据写入存储区。使用小端格式时,首先保存具有Zui低有效位的字节,即保存在Zui低存储器地址。 参数 SRC_VARIABLE 和 DEST_ARRAY 属于VARIANT 数据类型。但对于参数可以互连的数据 类型,有几点限制。参数 SRC_VARIABLE 的 VARIANT必须指向基本数据类型。参数 DEST_ARRAY 的 VARIANT 指向写入数据的存储区,并且必须是 ARRAY of BYTE。还可以对参数 SRC_ARRAY 和 DEST_VARIABLE 使用带变量 ARRAY 索引的实际参数。 参数 POS的操作数确定存储区中写入数据的起始位置。 说明 写入 VARIANT 或 BOOL 数据类型的变量 如果要写入 VARIANT指向的变量,请使用“序列化”或“取消序列化”指令。 如果要写入 BOOL 数据类型的变量,则使用“片段访问”。
READ_BIG:以大端格式读取数据 (S7-1200, S7-1500) 说明可以使用“以小端格式读取数据”指令以大端字节序列从存储区读取数据并将此数据写入单个变量。使用大端格式时,首先保存具有Zui高有效位的字节,即保存在Zui低存储器地址。参数 SRC_ARRAY 和 DEST_VARIABLE属于 VARIANT 数据类型。但对于参数可以互连的数据 类型,有几点限制。参数 DEST_VARIABLE 的 VARIANT必须为基本数据类型。SRC_ARRAY 参 数的 VARIANT 指向要读取的存储区,并且必须为 ARRAY of BYTE。还可以对参数 SRC_ARRAY 和 DEST_VARIABLE 使用带变量 ARRAY 索引的实际参数。 参数 POS的操作数确定存储区中读取数据的起始位置。 说明 读取 VARIANT 或 BOOL 数据类型的变量 如果要读取 VARIANT指向的变量,请使用“序列化”或“取消序列化”指令。 如果要读取 BOOL数据类型的变量,则使用“片段访问”。WRITE_BIG:以大端格式写入数据 (S7-1200, S7-1500) 说明可以使用“以大端格式写入数据”指令以大端字节序列将单个变量的数据写入存储区。使用大端格式时,首先保存具有Zui高有效位的字节,即保存在Zui低存储器地址。 参数 SRC_VARIABLE 和 DEST_ARRAY 属于VARIANT 数据类型。但对于参数可以互连的数据 类型,有几点限制。参数 SRC_VARIABLE 的 VARIANT必须指向基本数据类型。参数 DEST_ARRAY 的 VARIANT 指向写入数据的存储区,并且必须是 ARRAY of BYTE。还可以对参数 SRC_ARRAY 和 DEST_VARIABLE 使用带变量 ARRAY 索引的实际参数。 参数 POS的操作数确定存储区中写入数据的起始位置。 说明 写入 VARIANT 或 BOOL 数据类型的变量 如果要写入 VARIANT指向的变量,请使用“序列化”或“取消序列化”指令。 如果要写入 BOOL 数据类型的变量,则使用“片段访问”。VARIANT(S7-1200, S7-1500) VariantGet:读出 VARIANT 变量值 (S7-1200, S7-1500) 说明可以使用“读出 VARIANT 变量值”指令读取 SRC 参数的 VARIANT 指向的变量值,并将其写 入 DST参数的变量。SRC 参数具有 VARIANT 数据类型。可以在 DST 参数上指定除 VARIANT 外的任何数据类型。 DST参数变量的数据类型必须与 VARIANT 指向的数据类型相匹配。 说明 要复制结构和ARRAY,可以使用“MOVE_BLK_VARIANT 指令:块移动”指令。更多信息,请 参见“另请参见”。VariantPut:写入VARIANT 变量值 (S7-1200, S7-1500) 说明 可以使用“写入 VARIANT 变量值”指令将 SRC参数的变量值写入 VARIANT 所指向的 DST 参 数存储区中。 DST 参数具有 VARIANT 数据类型。可以在 SRC参数上指定除 VARIANT 外的任何数据类型。 SRC 参数变量的数据类型必须与 VARIANT 指向的数据类型相匹配。 说明要复制结构和 ARRAY,可以使用“MOVE_BLK_VARIANT 指令:块移动”指令。更多信息,请参见“另请参见”。CountOfElements:获取 ARRAY 元素个数 (S7-1200, S7-1500) 说明可以使用“获取 ARRAY 元素的数量”指令,查询 VARIANT 指针所包含的 ARRAY 元素数量。 如果是一维ARRAY,则输出 ARRAY 元素的个数。(上限与下限 +1 的差值)。如果是多维 ARRAY,则输出所有维的数量。 如果要查询ARRAY DB 中的各个元素,则可使用指令“ReadFromArrayDB”或“WriteFromArrayDB”。这是因为,在此可对元素数目进行更为精准的错误评估。 说明 实例 VARIANT指针可以不指向实例,因此也可不指向多重实例或多重实例的 ARRAY。 说明 数据块中的 ARRAY。 如果要查询数据块中 ARRAY中元素的个数,则不能在该块中激活块属性“数据块在设备中 写保护”(Data block write-protected in thedevice)。否则,参数 RET_VAL 将返回结果“0”,而 与 ARRAY 包含的元素数无关。 如果 VARIANT 变量不是ARRAY,也将返回结果“0”。符号化移动 (S7-1500) 运行期间进行符号化访问 (S7-1500) 应用借助“运行期间进行符号化访问”功能,外部应用程序在运行期间可以访问 PLC 程序中的变 量。外部应用程序可以是 HMI应用程序、OPC UA 功能或其它通信功能等。可读取或写入变 量。创建程序时,并不编写静态的读写访问。实际上,在运行期间动态执行读写访问。通过手动或通过程序控制的方式输入要在运行期间访问的符号变量名称。“运行期间进行符号化访问”功能可处理优化数据以及非优化数据。这意味着相对于只能访 问非优化数据的 ANY指针而言,此功能更加灵活高效。 例如,此功能可通过外部设备或应用程序来跟踪变量。 限制 下列限制适用于运行期间的符号化访问: •符号化访问仅适用于 S7-1500 固件版本 V3.0 及以上版本。 • 变量必须具有属性“可从 HMI/OPC UA/Web API访问”或“可从 HMI/OPC UA/Web API 写 入”。 下表列出了可访问的数据:故障安全程序中的数据 -访问故障安全程序部分时, CPU 将切换为 STOP 模式。 - 访问故障安全程序部分时, CPU 将切换为 STOP 模式。工作原理 要在运行期间访问变量,需要执行两步操作: 1. 通过 HMI 等方式输入的符号化变量名必需进行“解析”。即,在 PLC程序中需创建相应变量 的引用。引用属于类型化指针,可通过该指针在 PLC 程序中寻址变量。要解析符号变量,请使用异步指令“ResolveSymbols”。 2. 可通过专门的 Move 指令读取或写入变量值。Move指令属于同步指令。该指令通过之前生成 的引用寻址变量。步骤 1 示例以下示例说明了使用指令“ResolveSymbols”解析符号变量名称的工作原理: • 在参数 "nameList"中指定一个包含要解析的变量名称的 Array of WSTRING。 • 在参数 "referenceList" 中指定保存变量引用的Array of ResolvedSymbol (SDT)。 • 这两个数组的限值需相同。 随后在参数 "referenceList"中收到对每个符号变量名称的引用。引用包含在系统数据类型 “"ResolvedSymbol"”的结构中。步骤 2 示例以下示例说明了如何使用指令“MoveResolvedSymbolsToBuffer”读取变量值并将其写入缓冲 区中: • 在参数"src" 中,指定包含对已解析变量引用的 Array of ResolvedSymbol (SDT) 。 • 在 "dst"参数中指定 Array of BYTE 。该数组用作写入变量值的目标缓冲区。 执行指令"MoveResolvedSymbolsToBuffer" 时,会通过引用读取变量值,并将其写入目标缓 冲区。