SIEMENS西门子 S120 伺服电机 1FK7022-5AK71-1DA3-Z
WriteToArrayDBL:写入装载存储器的 ARRAY 数据块 (S7-1500) 说明 可以使用“写入装载存储器的 ARRAY 数据块”(Write to ARRAY data block in load memory) 指 令将索引引用的元素写入装载存储器 ARRAY DB 块类型的数据块中。 ARRAY 数据块是仅包含一个 ARRAY of <数据类型> 的数据块。ARRAY 的元素可以是 PLC 数据 类型或其它任何基本数据类型。ARRAY 通常从下限“0”开始计数。 如果 ARRAY 数据块使用块属性“仅存储在装载存储器”进行指定,则该数组数据块将仅存 储在装载存储器中。 当 REQ 参数中检测到信号上升沿时,将执行该指令。参数 BUSY 的信号状态将为“1”。如果在 BUSY 参数中检测到信号下降沿,则将终止该指令同时将 VALUE 参数中的值写入该数据块中。 在一个程序周期内,参数 DONE 的信号状态为“1”。 如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”: • 使能输入 EN 的信号状态为“0”。 • 如果在执行该指令过程中发生错误。WriteToArrayDBL:写入装载存储器的 ARRAY 数据块 (S7-1500) 说明 可以使用“写入装载存储器的 ARRAY 数据块”(Write to ARRAY data block in load memory) 指 令将索引引用的元素写入装载存储器 ARRAY DB 块类型的数据块中。 ARRAY 数据块是仅包含一个 ARRAY of <数据类型> 的数据块。ARRAY 的元素可以是 PLC 数据 类型或其它任何基本数据类型。ARRAY 通常从下限“0”开始计数。 如果 ARRAY 数据块使用块属性“仅存储在装载存储器”进行指定,则该数组数据块将仅存 储在装载存储器中。 当 REQ 参数中检测到信号上升沿时,将执行该指令。参数 BUSY 的信号状态将为“1”。如果在 BUSY 参数中检测到信号下降沿,则将终止该指令同时将 VALUE 参数中的值写入该数据块中。 在一个程序周期内,参数 DONE 的信号状态为“1”。 如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”: • 使能输入 EN 的信号状态为“0”。 • 如果在执行该指令过程中发生错误。参数 下表列出了“写入装载存储器的 ARRAY 数据块中”指令的参数: 参数 声明 数据类型 存储区 说明 EN Input BOOL I、Q、M、D、L 或常量 使能输入 ENO Output BOOL I、Q、M、D、L 使能输出 REQ Input BOOL I、Q、M、D、L 或常量 REQ = "1":开始写入数组 数据块 DB 1) Input DB_ANY I、Q、M、D、L 待写入数据的 ARRAY 数据块。
INDEX Input DINT I、Q、M、D、 L、P 或常量 待写入数据的 DB 中的元 素。标准值可以是常数、 全局变量或索引值。 VALUE 1) Input VARIANT D(全局数据块 的元素) L(可在块接口 的“Input”、 “InOut”和 “Temp”部分进行 声明。) 指向待读取工作存储器中 的 DB 的指针,并写入该 工作存储器的值。 不必使用“TEMP”部分的本 地常数或变量。 BUSY Output BOOL I、Q、M、D、L BUSY = "1":仍在写入到 数组数据块 DONE Output BOOL I、Q、M、D、L DONE = "1":该指令执行 成功 ERROR Output INT I、Q、M、D、 L、P 错误信息: 如果在该指令执行期间出 错,则在参数 ERROR 中输 出一个错误代码。 1) 该数据块必须创建为带有“优化”块属性。如果操作数“TagIn1”的信号状态为“1”且在操作数“TagReq”处检测到上升沿,将执行该指令。 在操作数“TagBusy”处检测到下降沿时,将立即终止该指令的执行并将参数 VALUE 中的值写入 “ArrayDB”的第二个元素中。如果该指令执行成功,则使能输出 ENO 的信号状态为 TRUE,同 时置位输出“TagOut”。该指令执行后,操作数“TagDone”的信号状态将为 TRUE。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 指令:块移动”指令。更多信息,请 参见“另请参见”。 如果满足下列条件之一,则使能输出 ENO 的信号状态为“0”: • 使能输入 EN 的信号状态为“0”。 • 数据类型不匹配。(不传送任何值。)
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 the device)。否则,参数 RET_VAL 将返回结果“0”,而 与 ARRAY 包含的元素数无关。 如果 VARIANT 变量不是 ARRAY,也将返回结果“0”。 如果 VARIANT 指向 ARRAY of BOOL,则填充元素包含在计数中。(例如,ARRAY[0..1] of BOOL 将返回 8)。 如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”: • 使能输入 EN 的信号状态为“0”。 • 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 写 入”。 下表列出了可访问的数据:工作原理 要在运行期间访问变量,需要执行两步操作: 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" 时,会通过引用读取变量值,并将其写入目标缓 冲区。 另请参见: MoveResolvedSymbolsToBuffer:从已解析的符号中读取值并写入缓冲区中。