全国服务热线 15801815554

SIEMENS 西门子 S120伺服电机 1FK7022-5AK71-1DG5

更新时间:2024-11-26 08:00:00
价格:请来电询价
西门子:代理商
S120:全新原装 假一罚十
德国:现货 实体经营
联系电话:15801815554
联系手机: 15801815554
联系人:邓经理
让卖家联系我
详细介绍


              ResolveSymbols:解析多个符号 (S7-1500) 说明 “解析多个符号”指令用于解析多个符号变量名称。执行该指令后,会收到对变量的引用。引 用属于类型化指针,可用于对变量进行读写访问。 在 "nameList" 参数中指定 Array of WSTRING 。运行期间会通过此数组传送待解析的变量名称。 该数组可位于优化的存储区或非优化存储区中。 在参数 "referenceList" 中指定保存引用的 Array of ResolvedSymbol (SDT)。ARRAY 需位于优 化存储区中。这两个数组的限值需相同。 符号变量名称以 WSTRING 格式传输,且长度不得超过 254 个 UTF-16 字符。输入完全限定 的名称(包括命名空间)。不支持表示本地变量的限定符 #。支持数组中的元素,但必须指 定固定下标才能访问元素。不支持通过可变下标(如myArray[myIndexTag])进行访问。 完全限定名称示例:使用 "firstIndex" 和 "lastIndex" 参数,可以仅解析列表中的部分符号。要解析整个符号列表, 可在 "firstIndex" 参数中指定下限,在 "lastIndex" 参数中指定上限。 该指令以异步方式执行。参数“"execute"”出现信号上升沿时开始执行。该指令在执行过程中 (Busy = 1),"nameList" 和 "referenceList" 参数中的值无法更改。以下示例说明了如何使用指令“MoveResolvedSymbolsToBuffer”读取变量值并将其写入缓冲 区中: • 在参数 "src" 中,指定包含对已解析变量引用的 Array of ResolvedSymbol (SDT) 。 • 在 "dst" 参数中指定 Array of BYTE 。该数组用作写入变量值的目标缓冲区。 执行指令 "MoveResolvedSymbolsToBuffer" 时,会通过引用读取变量值,并将其写入目标缓 冲区。 另请参见: MoveResolvedSymbolsToBuffer:从已解析的符号中读取值并写入缓冲区中。

            对符号进行解析前,"referenceList" 参数中位于指定数组范围("firstIndex"和 "lastIndex")内 的数组的值将复位。 该指令执行完成后,"done" 参数值将在一个周期内为 1。参数 "referenceList" 中的数组会填 入对变量的引用。 “execute”参数出现下降沿后,表示“ResolveSymbol”的实例不再处于激活状态。 说明 组态限值 每次Zui多可激活 10 条 "ResolveSymbols" 指令。该指令的所有活动实例总共可解析Zui多 2000 个符号。如果操作数“#Input_Execute”的信号状态更改为“1”,则该指令开始执行。对参数 "nameList" 中的变量名称进行解析,并将变量引用写入参数 "referenceList" 中的操作数 "#InOut_ResolvedSymbols"。该指令执行完成后,"done" 参数值将在一个周期内为 1。系统数据类型 ResolvedSymbol (S7-1500) 说明 执行“运行期间进行符号化访问”功能需要使用系统数据类型 "ResolvedSymbol"。该数据类 型会保存对 PLC 程序中变量的引用,并会保存用于生成这些引用的状态信息。系统数据类型 需位于优化存储器中。 在固件版本 V3.0 及以上版本,系统数据类型“ResolvedSymbol”可声明为 PLC 数据类型的元 素。 系统数据类型的结构 "ResolvedSymbol" 系统数据类型具有以下可见元素: 参数名称 数据类型 说明 resolved BOOL 指示符号是否成功解析: • 已解析 = FALSE,且 STATUS = 0 => 尚未执行符号解析。 • 已解析 = FALSE + status <> 0 => 符号解析失败 status 参数的值指示变量中无法解析的结构等 级。 负值表示无法解析符号,原因包括超出范围等。 正值表示变量不可访问或不可通过 HMI/OPC UA 或 Web API 写入。 • 已解析 = TRUE,且 STATUS = 0 => 符号已成功解析。 • 已解析 = TRUE,且状态 <> 0 => 符号已成功解析,但该 DB 由“RUN”模式下 的后续加载结果覆盖。 status INT "resolved" 元素用于指示某个符号是否已成功解析。如果符号已成功解析,"status" 参数的值 为 0,且 "ResolvedSymbol" 结构中包含正确的信息。 除了这两个参数之外,系统数据类型还包含用于保存变量数据类型、长度和地址信息的内部 参数,但这些参数不可访问。系统数据类型“ResolvedSymbol”中的无效引用 如果在 RUN 模式下因加载导致被引用的变量覆盖,则 SDT "ResolvedSymbol" 中的引用可能 变为无效。引用可能指向不存在的变量。"status" 参数中的错误代码指示引用无效。 以下示例中显示了出错时在 SCL 中如何使用 IF 指令中断 Move 指令的执行以及如何重新解 析该符号:即使符号解析成功,执行 „MoveResolvedSymbolToBuffer“ 时也可能出错。例如,在 RUN 模 式下因加载导致变量覆盖。此时,返回值 „err“ 为复制失败的进程数。 如果识别到复制过程识别,则后续的 IF 指令将 "EnableMove" 设置为 FALSE。这样,系统将 不再执行 "MoveResolvedSymbolsToBuffer"。 之后,FOR 指令将进行检查,确定产生错误代码的相关符号。对于这些符号,会将错误代码 复制到 "status" 参数中。 同时,参数“„resolved“”设置为 FALSE。现在需要再次使用异步操作指令 „ResolveSymbols“ 解 析符号。 参见 运行期间进行符号化访问 (页 1719) MoveResolvedSymbolsToBuffer:从已解析的符号中读取值并写入缓冲区中 (S7-1500) 说明 “从已解析的符号中读取值并写入缓冲区中”指令用于从多个已解析的符号中读取数值并写 入存储区 (Array of BYTE) 中。采用这种方式,可准备符号解析后的相应值,进行后续处理。 如,通过诸如 TSEND 等通信指令进行发送。 "src" 参数是一个 ResolvedSymbol (SDT) 数组,其中包含对之前通过“ResolveSymbols”指令解 析的变量的引用。在“dst”参数中指定一个 BYTE 数组。该数组用作写入变量值的目标缓冲区。 这两个数组的限值需相同。 使用参数 "firstIndex" 和 "lastIndex" 限制将在此次指令调用过程中复制的值列表。在后续的 调用过程中,可复制其它已解析符号的值。如果不希望对列表进行限制,则 "firstIndex" 参 数中的值必须等于该列表的下限且 "lastIndex" 参数中的值需等于该列表的上限。 "mode" 参数的值用于定义 "dst" 参数中的存储器格式。 可通过偏移量确定目标缓冲区中已解析的符号值的存储位置。通过“dstOffsets”(Array of DINT) 参数指定偏移量。每个偏移量均为位偏移,用于确定将值写入缓冲区时的起始位。可在一个 字节中存储多个 BOOL 数据类型的值。其它所有数据类型的值的起始位位置必须可被 8 整除。 例如,如果 "src[i]" 参数引用一个数据类型为 REAL 的变量,同时"dstOffsets[i]"参数中的值为 88,"mode" 参数值为 2#1,则“从已解析的符号中读取值并写入缓冲区中”指令会将值复 制到字节 11 到 14 中(从Zui低有效字节开始)。

           例如,如果 "src[i]" 参数引用一个数据类型为 BOOL 的变量,同时 "dstOffsets[i]" 参数中的值 为 29,则“从已解析的符号中读取值并写入缓冲区中”指令会将该值复制到字节为 3 并且 偏移量为 5 的目标存储器。 为确保 "dstOffsets[i]" 中包含有 "src[i]" 的偏移量,"dstOffsets" 和 "src" 处的数组限值必须相 同。 这样,可准确定义目标缓冲区的结构。但请注意,该指令不会验证所指定的偏移量是否重叠。 此时,不会发送错误消息,而且目标缓冲区中的内容不确定。 目标缓冲区中的内容同样取决于这是值从优化存储器中读取,或是从非优化存储器中。这两 个存储区对字节填充的规则不同。有关字节填充的更多信息,请参见“另请参见”。 "status" 参数是一个 INT 数组。为确保 "status[i]" 中包含有 "src[i]" 的状态,该参数的限值必 须与 "src" 和 "dstOffsets" 参数的相同。 对于 WSTRING 和 STRING,将复制源字符串的当前长度。如果源字符串比目标字符串短,则 目标字符串中的其余字符保持不变。 说明 SDT“ResolvedSymbol”中的引用无效 如果在 RUN 模式下因加载导致被引用的变量覆盖,则 SDT "ResolvedSymbol" 中的引用可能 变为无效。引用可能指向不存在的变量。“status”参数中的错误代码指示引用无效。 此时,需使用“ResolveSymbols”指令对该符号进行重新解析。 参数 下表列出了“从已解析的符号中读取值并写入缓冲区中”指令的参数: 参数 声明 数据类型 存储区 说明 firstIndex Input DINT I、Q、M、D、 L、C 待复制的第一个 已解析符号的下 标。 lastIndex Input DINT I、Q、M、D、 L、C 待复制的Zui后一 个已解析符号的 下标。 src Input Array of ResolvedSymbol D、L 已解析的符号列 表。

联系方式

  • 地址:上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201100
  • 电话:15801815554
  • 联系人:邓经理
  • 手机:15801815554
  • 微信:15801815554
  • QQ:190755061