指向AUTOHOTSPOT 或 AUTOHOTSPOT 类型的数组的指针。 该数组定义了要读取节点中(变量 中)的哪种属性。此数组中的第一个元素是指 “NodeHdls”参数所指向的数组中的第 一个元素。 该参数是可选设置。如果未设置此参数,则会读取所有节点(变量)的值。 读取数组时,可限制要读取数组的哪 些元素,请参见“使用 OPC_UA_ReadList读取数组范围信息 (页 5803)”。 Timeout Input TIME 指令执行的Zui长时间(单位为毫秒)。另请参见“AUTOHOTSPOT”中对该参 数的具体说明。 NodeStatusList InOut VARIANT 指向 DWORD类型的数组的指针。 该数组包含各变量的错误代码(请参 见下文的“NodeStatusList 的错误编 号”。)指定每个变量的值是否可读取。 该指令可能已成功执行(Error 参数未 设置),但无法读取特定 NodeId(变 量)的值。TimeStamps InOut VARIANT 指向 LDT 类型的数组的指针。 此数组中的第一个元素是指 NodeHdls参数所指向的数组中的第 一个元素。 该参数是可选设置。如果未设置此参 数,OPC UA 服务器不会返回时间戳。 VariableInOut VARIANT 指向保存要读取值的变量的指针。 必须为该变量创建 PLC 数据类型 (UDT) 或结构(STRUCT)。
参数 声明 数据类型 含义 DoneOutput BOOL 执行的状态: • 0:指令的执行中止、尚未完成或 尚未开始 • 1:指令的执行已完成且未出错 BusyOutput BOOL 执行状态参数: • 0:指令未在执行 • 1:指令当前正在执行 Error Output BOOL 错误显示• 0:无错误 • 1:发生错误。请参见“Status”参 数 Status Output DWORD错误原因,请参见下文中的“状态对 应的错误编号” 状态对应的错误编号 “Status”参数将提供指令执行过程中所发生错误的相关信息。下表汇总了该指令的错误代码:无 OPC UA 客户端可用的内存。 由于 OPC UA 客户端和 OPC UA 服务器共用存储区,应降低服务器的存 储区要求。 此时,可执行以下操作: • 为 OPC UA 释放少量 PLC 变量。 •减少当前连接到服务器的 OPC UA 客户端的数量。 • 设置更少的订阅。服务器未响应预期的结果数 800A_0000OpcUa_BadTimeout 发生网络超时。 可能的原因: • 与 OPC UA 服务器的连接速度过 慢(容量不足)。• 网络负载过高。 • OPC UA 服务器不可用。 可能的补救措施: • 检查 OPC UA 服务器的 URL •增加超时设置(为函数块 OPC_UA_Connect 的超时参数设 置更大的值)。OpcUa_BadServerNotConnected 服务器未连接或者连接句柄错误或 无效。OpcUa_BadNothingToDo 不执行任何操作:OPC UA 服务器从 OPC UA 客户端接收到一个空表,其中不含任何指令。OpcUa_BadTooManyOperations 已超出每个连接可调用的“OPC_UA_ReadList”指令数量 (> 5),请参见:AUTOHOTSPOT 8074_0000OpcUa_BadTypeMismatch 使用的数据类型与服务器中的数据 类型不符。adConnectionClosed 与相应ConnectionHdl 的连接处于 “ShutDown”状态(连接终止)。连 接/会话无法自动“重新激活”。可能的原因:会话已从服务器上删 除,例如由于重启或超时等原因。 在这种情况下,必须通过指令“OPC_UA_Disconnect”明确关闭连 接并释放连接资源。在用户程 序中,必须复位已对此连接无效的ConnectionHdl。 随后必须与服务器建立新的连接 (参见指令“OPC_UA_Connect”)。错误代码 (十六进制值)错误名称 说明 80AF_0000 BadInvalidState 与相应 ConnectionHdl 的连接处于“ConnectinError”状态(临时连接错 误,连接中断)。CPU 尝试“重新 激活”连接。如果在设定的超时间 隔 (OPCUA Session Timeout) 内未 成功激活连接,连接会进入 “Shutdown”状态。状态转换要求: CPU 可访问OPC UA 服务器以检查会 话是否仍处于活动状态。 B080_0100 Simatic_BadType_VariantInput1参数“NodeHdls”的数据类型不正确。 B080_0200 Simatic_BadType_VariantInput2参数“NodeAddInfos”的数据类型不 正确。 B080_0300 Simatic_BadType_VariantInput3参数“NodeStatusList”的数据类型不 正确。 B080_0400Simatic_BadType_VariantInput4 参数“TimeStamps”的数据类型不正 确。 B080_0500Simatic_BadType_VariantInput5 参数“Variable”的数据类型不正确 (不是 UDT)。B080_1100 Simatic_ArrayElements_TooMany NodeHdlCount >MAX_ELEMENTS_NODELIST NamespaceIndexCount >MAX_ELEMENTS_NAMESPACES B080_3100 BadNumElements_VariantInput1“NodeHdlCount”参数大于 “NodeHdls”参数中 ARRAY 元素的数 量。 B080_3200BadNumElements_VariantInput2 “NodeHdlCount”参数大于 “NodeAddInfos”参数中ARRAY 元素 的数量。 B080_3300 BadNumElements_VariantInput3“NodeHdlCount”参数大于 “NodeStatusList”参数中 ARRAY 元素 的数量。 B080_3400BadNumElements_VariantInput4 “NodeHdlCount”参数大于 “TimeStamps”参数中ARRAY 元素的 数量。错误代码 (十六进制值) 错误名称 说明 B080_3500 BadNumElements_VariantInput5 根据参数“NodeHdlCount”的值,参 数“Variable”的PLC 数据类型/结构的 元素太少或太多。 示例:如果“NodeHdlCount”的值为 5,则数组“NodeHdls”也必须包含 5个元素。参数“Variable”的结构也必 须包含 5 个元素。 B080_C400 Simatic_ClientNotEnabledOPC UA 客户端已禁用。 B080_C500 Simatic_NothingToDo 不执行任何操作:指令正在使用未包含任何元素的列表。 C080_C300 Simatic_OutOfResources 已超出可使用的Zui大客户端指 令数量。可能的补救措施: • 减少运行的此类型客户端指 令数量,请参见“ AUTOHOTSPOT” 更多错误代码,请参见“错误代码(页 5899)”。 “NodeStatusList”的错误编号“NodeStatusList”参数包含各节点句柄(变量)的错误代码。 下表列出了各错误代码的具体说明: 错误代码 (十六进制 值)错误名称 说明 0000_0000 OpcUa_Good 成功读取值。 8034_0000OpcUa_BadNodeIdUnknown 传输的节点句柄未知。 8035_0000OpcUa_BadAttributeInvalid 所需属性不支持用于特定节 点。 8037_0000OpcUa_BadIndexRangeNoD 索引范围内无数据。 8039_0000OpcUa_BadDataEncodingUnsupported OPC UA 服务器不支持对该节 点进行所需数据解码。