全国服务热线 15801815554

SIEMENS西门子 触摸屏KP1200 6AV2124-1MC01-0AX0

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


            调用指令(首次调用) 有关完整的程序,请参见“AUTOHOTSPOT”部分。 程序示例使用的读取列表“ReadListProduct”包含以下 PLC 变量: • NewProduct • ProductNumber 程序从服务器接收这些变量的数值参考(句柄)。 示例程序由 CASE 指令分为多个程序段(实例)。 在第三个程序段中,请求了要读取或写入的节点(PLC 变量)的句柄。

               异步执行 “OPC_UA_NodeGetHandleList”指令与用户程序异步执行,需要多个程序周期。 通过“Busy”、“Done”、“Error”和“Status”参数,可检查作业的状态。 有关异步程序执行的信息,请参见“同步指令和异步指令之间的不同之处 (页 715)”部分。 指令调用说明(首次调用) 上图中的程序部分调用了“OPC_UA_NodeGetHandleList”指令以请求 PLC 变量的句柄。如果指令未执行,#Busy 为 FALSE,因此“#Req”变量会设为值 TRUE。这将启动指令的执行过 程。下一周期中,#Req 为 FALSE。 调用指令(故障排除) 下图所示为对“Done”和“Error”参数的评估。指令调用说明(故障排除) 如果发生错误,输出参数“Error”的值将设为 TRUE。这会将“#State”变量的值设为 100。该实 例将保留以接受故障排除。示例程序还调用了指令“OPC_UA_NodeGetHandleList”,以将 REQ 参数设为 FALSE。 如果输出参数“Done”为 TRUE,说明指令执行成功。 注:可能该指令已成功执行(“Error”参数未置 1,“Done”参数置 1),但无法返回特定 PLC 变 量的句柄。因此,示例程序中通过检查确定是否返回了各 PLC 变量的句柄。 • 如果返回第一个变量的句柄,则“NodeStatusList”参数指向的数组的第一个元素包含值 0。 • 如果返回第二个变量的句柄,则“NodeStatusList”参数指向的数组的第二个元素包含值 0。 如果满足两个条件,输出参数“NodeHdls”指向包含已注册 PLC 变量句柄的有效列表。 “#State”变量的值加 1。这表示将在下一个周期中执行下一个程序段(示例 4)。 有关示例 4 的信息,请参见“OPC_UA_Readlist (页 5792)”。 说明 如果通过 OPC_UA_NodeGetHandleList 在应用程序中注册大量变量,可在 #Done = TRUE 时 将 #State 的值加 1。随后,在使用请求值时应检查各个值是否有效。 提示:编程一般错误处理 为了使上述示例程序(调用指令“error handling”)结构清晰、易于理解,仅查询了两个 PLC 变量的句柄,并检查是否为每个变量返回了句柄。这种查询类型非常不灵活。 如果在程序中扫描两个以上的 PLC 变量的句柄,或者编写程序时不考虑 PLC 变量数量,应使 用以下程序代码评估循环中的“NodeStatusList”:参数“NamespacesIndexes”有何用途? 参数“NamespaceIndexes”实现命名空间的索引。 举例来说,从外部列表(例如导出的 OPC UA XML 文件)中读取用户程序中的节点标识符时, 需要实现索引。 这种情况下,必须为列表中的所有标识符输入 OPC UA 服务器当前用于命名空间的索引。 此外,命名空间的索引可能会更改,因此,每次更改后都需要调整列表。自动更改索引 用户可自动实现命名空间的索引:为此,可使用“OPC_UA_NodeGetHandleList”指令的参数 “NamespaceIndexes”和 "NamespacesIndexCount"。 请按以下步骤操作: 1. 检查哪一命名空间分配给了从列表中读取的 NodeIds。 在本示例中,为 NodeIds 分配的命名空间索引为 0。 在本示例中,NodeIds 位于 Siemens 命名空间“http://www.siemens.com/simatic-s7-opcua” 中。 2. 创建“WString”类型的数组。 在本示例中,数组名为“myNamespaces”。 3. 在 "myNamespaces[0]" 下(也在数组元素 0 中)输入西门子命名空间“http:// www.siemens.com/simatic-s7-opcua”。 4. 为参数“NamespaceUris”提供新数组“myNamespaces”。 指令将在参数“NamespaceIndexes”中提供结果(当前索引)。 5. 为结果创建“UInt”类型的数组。 在本示例中,数组名为“myNamespaceIndexes”。 6. 为参数“NamespaceIndexes”提供新数组“myNamespaceIndexes”。 7. 也将该数组“myNamespaceIndexes”分配给“OPC_UA_NodeGetIndexList”指令的 “NamespacesIndexes”参数。 该指令随后会从“myNamespaceIndexes[0]”中读取西门子命名空间的当前索引并使用该索引 (而不使用原命名空间索引 0)。这样便可实现索引。 8. 将值 1 分配给指令“OPC_UA_NodeGetIndexList”的参数 "NamespacesIndexCount"(本示例中 仅使用一个命名空间)。 以下程序代码显示了该示例的实现过程:参数“NamespaceIndexes”和“NamespaceIndexCount”为可选参数。 如果不需要进行索引转换,则无需提供“NamespaceIndexes”和“NamespaceIndexCount”参 数。OPC_UA_TranslatePathList:确定当前 NodeId (S7-1500) 有效性 “OPC_UA_TranslatePathList”指令的以下说明适用于 S7-1500 CPU 固件版本 V2.6 及更高版本。 说明 使用指令“OPC_UA_TranslatePathList”在 OPC UA 的地址空间中导航(浏览),并确定 OPC UA 服务器为该节点使用的节点 ID (NodeId)。 该指令用于已定义节点 BrowseNames 和路径的用例,但 NodeIds 是未知的,因此各服务器 可能互不相同。 原则上,可参照以下说明:在 NodeId 已知的节点处开始导航。例如,来自“http:\ \opcfoundation.org/UA/”OPC 基金会命名空间的节点是已知的。 起始节点示例:“Objects”。其它可能的起始节点包括“DeviceSet”或已确定其 NodeId 的服务 器地址空间中使用的信息模型的下层根节点。 下例中使用的是“Objekts”节点。从该起始节点开始,使用已有的 BrowseNames 在各节点之 间导航,直至Zui终到达目标节点。在目标节点处,读取寻找节点的 NodeId(“NodeID”属性)。 示例 设备的 OPC UA 服务器会发布符合 Companion 规范 AutoID 的服务器接口。Companion 规 范定义 OPC UA 节点的 BrowseNames。这意味着已知这些节点的 BrowseNames。但并不知 道查询的 OPC UA 服务器为这些节点使用的 NodeIds。在这种情况下,请使用 “OPC_UA_TranslatePathList”指令。替代方法 STEP 7 (TIA Portal) 提供“OPC_UA_TranslatePathList”指令的替代方法。可在 STEP 7 中的“属 性树”(Project tree)、()、“OPC UA 通信”(OPC UA communication) 下创建客户端接口并组态读取、写入或方法列表。STEP 7 随后会自动确定节点的 NodeIds。 但这种替代方法要求用户可在线访问该设备的 OPC UA 服务器,或要求用户使用设备的 OPC UA XML 文件。 指令符号 下图显示了该指令在编辑器 (FBD) 中的图标。在上图中,尚未包含该指令的参数。 OPC_UA_TranslatePathList 用于准备数据交换,请参见下图中的 ①。 为此,应为指令提供浏览路径;指令会返回所请求的节点的 NodeIds。

联系方式

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