全国服务热线 15801815554

SIEMENS西门子 移动操作屏KTP900F 6AV21252JB230AX0

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


                OPC_UA_TranslatePathList 的示例程序 (S7-1500) 指令“OPC_UA_TranslatePathList”的程序示例 在本章节中,将介绍程序示例“Read_From_RfidReader_Door_1”的完整程序代码。 在该示例中,介绍用户程序如何使用指令“OPC_UA_TranslatePathList”获取各节点的 NodeIds 并读取这些节点的值。 有关“OPC_UA_TranslatePathList”指令的描述,请参见“OPC_UA_TranslatePathList:确定当 前 NodeId (页 5775)”部分。 程序结构 该程序将作为 OPC UA 客户端运行,并执行以下操作步骤: 1. 与 CPU 将从中读取相关值的 OPC UA 服务器建立连接 2. 读取相关值。 3. 终止与 OPC UA 服务器的连接。 该程序在“Input_REQ”的上升沿启动。 声明 下图显示了使用“OPC_UA_TanslatePathList”指令时,函数程序结构 该程序将作为 OPC UA 客户端运行,并执行以下操作步骤: 1. 与 CPU 将写入相关值的 OPC UA 服务器建立连接 2. 写入相关值 3. 终止与 OPC UA 服务器的连接 该程序在“Input_REQ”的上升沿启动。 声明 下图显示了函数块“WriteToProductionline”中各局部变量的声明:在该程序示例中,还需使用以下数据块: • Productionline_Configuration • Productionline_Data 由于示例程序使用 OPC UA 的参数分配,因此这些数据块将由 STEP 7 (TIA Portal) 自动创建。

             块 “"Read_From_RfidReader_Door_1”中的局部变量声明:读取值的“UDT_Variable”数据类型 局部变量“Variable”(参见上图中的第 43 行)使用数据类型“UDT_Variable”。 要使示例程序将“DeviceInfo”和“DeviceStatus”的值插入“Variable”变量,需要在 TIA Portal 项 目中创建用户自定义数据类型“UDT_Variable”。 下图显示了“UDT_Variable”数据类型的结构:调用 OPC UA 服务器的方法的示例程序 (S7-1500) 调用服务器方法的程序示例 在本章节中,将介绍程序示例“Call_OpenDoor_On_Productionline”的完整程序代码。 在该示例中,介绍了用户程序如何使用“OPC_UA_MethodCall”指令调用服务器方法。 有关“OPC_UA_MethodCall”指令的描述,请参见“OPC_UA_MethodCall:调用方法”部分。程序结构 该程序将作为 OPC UA 客户端运行,并执行以下操作步骤: 1. 与 OPC UA 服务器建立连接。 2. 调用服务器方法。 3. 终止与 OPC UA 服务器的连接。 该程序在“Input_REQ”的上升沿启动。 声明 下图显示了函数块 "Call_OpenDoor_On_Productionline" 中各局部变量的声明:服务器指令 (S7-1200, S7-1500) 方法 (S7-1200, S7-1500) OPC_UA_ServerMethodPre:准备进行服务器方法调用 (S7-1200, S7-1500) 有效性 “OPC_UA_ServerMethodPre”指令的以下描述适用于 S7-1200-CPU 固件版本 V4.5 和更高版 本,以及 S7-1500-CPU 固件版本 V2.5 和更高版本。 固件版本 V3.1 及以上版本的新指令版本 V1.1 在固件版本 V3.1 及以上版本中,支持新指令版本 V1.1。有关其它所有信息,请参见: S7-1500/ET 200MP、S7-1500R/H 文档中的产品信息在用户程序中,由于指令“OPC_UA_ServerMethodPre”和“OPC_UA_ServerMethodPost”通常 需要成对调用,因此还需考虑到指令“OPC_UA_ServerMethodPost”的相关内容。 “OPC_UA_ServerMethodPre”的参数 表格 4-94 “OPC_UA_ServerMethodPre”指令的参数 参数 声明 数据类型 含义 Done Output BOOL 执行的状态: • 0:指令的执行中止、尚未完 成或尚未开始 • 1:指令的执行已完成且未出 错 Busy Output BOOL 执行状态参数: • 0:指令未在执行 • 1:指令当前正在执行 Error Output BOOL 错误显示 • 0:无错误 • 1:发生错误。请参见“状 态”参数。 Status Output DWORD 错误原因,请参见下文中的“状 态的错误代码”。 UAMethodCalled Output BOOL OPC UA 客户端已调用所提供的 方法。 UAMethod_InParameter s InOut VARIANT 指向包含所提供方法输入参数的 变量的指针。 状态的错误代码 “Status”参数将提供指令执行过程中所发生错误的相关信息。服务器的方法数量 可注册的方法数量取决于 CPU。超出限值时,调用该指令将生成上述错误代码 “TooManyMethods”。 超出组态限值时,该方法的实例仅显示在 OPC UA 服务器的地址空间中,但无法调用。 下图显示了 UaExpert 中的方法在“良好情况”和超出数量结构情况下的表示。变量声明 对“OPC_UA_ServerMethodPre”指令的实例以及用于提供指令参数的变量进行声明,另请参见 “为 OPC UA 客户端提供方法的示例程序 (页 5971)”。 以下几点声明至关重要: • 创建“OPC_UA_ServerMethodPre”指令,作为调用函数块中的多重实例。 说明 多重实例的名称 多重实例必须命名为“OPC_UA_ServerMethodPre_Instance”,否则不会在服务器上创建方 法。 使用拖放功能将指令从“指令 > 通信 > OPC UA > OPC UA 服务器”(Instructions > Communication > OPC UA > OPC UA Server) 文件夹移动到编辑器中。 然后,单击“多重实例”(Multi-instance)。 • 如果服务器方法具有一个或多个输入参数,则必须声明一个名为 “UAMethod_InParameters”的变量。 首先,为服务器方法的输入参数创建一个 PLC 数据类型 (UDT)。 然后将此 UDT 用于变量“UAMethod_InParameters”。 在该示例中,该数据类型名为“UDT_OpenDoorInArguments”,且包括元素 Number。 或者: 也可为变量“UAMethod_InParameters”分配数据类型“Struct”。然后,根据服务器方 法的输入参数创建该数据类型的元素(相同名称和数据类型)。 调用指令 指令“OPC_UA_ServerMethodPre”将查询操作系统,确定该服务器方法是否已调用。 如果客户端已调用该服务器方法,则指令“OPC_UA_ServerMethodPre”将为该服务器方法生 成输入参数。数据类型的分配 (SIMATIC – OPC UA) 有关方法的输入和输出类型,请参见可用数据类型的规则说明(S7-1500:AUTOHOTSPOT, S7-1200:AUTOHOTSPOT)。 说明 包含有嵌套数组的结构化数据类型 如果结构化数据类型 (Struct/UDT) 中包含一个数组,则 OPC UA 服务器无法提供该数组的长 度信息。 如果将一个结构用作服务器方法的输入或输出参数,则需确保该方法在调用时所嵌套的数组 长度正确。 如果长度错误,则方法调用失败且错误代码为“BadInvalidArgument”。   OPC_UA_ServerMethodPost:服务器方法调用的后处理 (S7-1200, S7-1500) 有效性 “OPC_UA_ServerMethodPost”指令的以下描述适用于 S7-1200-CPU 固件版本 V4.5 和更高版 本,以及 S7-1500-CPU 固件版本 V2.5 和更高版本。 固件版本 V3.1 及以上版本的新指令版本 V1.1 在固件版本 V3.1 及以上版本中,支持新指令版本 V1.1。有关其它所有信息,请参见: S7-1500/ET 200MP、S7-1500R/H 文档中的产品信息本部分介绍指令“OPC_UA_ServerMethodPost”。 在用户程序中,由于指令“OPC_UA_ServerMethodPre”和“OPC_UA_ServerMethodPost”通常 需要成对调用,因此还需考虑到指令“OPC_UA_ServerMethodPre”的相关内容。

联系方式

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