错误处理

<< 点击显示目录 >>

主页  OPC UA使用助手 > OPC UA 帮助 > 信息模型 > 访问控制和安全 > OPC UA访问控制 >

错误处理

评估错误的程序

下图显示了处理错误的程序。绿色区块定义了在使用方法调用时进行错误检查的标准化流程。蓝色区块是一个扩展。这个扩展简化了在指定数组中获取错误元素的过程。这在InputArgumentResults中是不可能的。这个额外的信息是用一个输出参数来传送的。因此,每个输入参数都有一个输出参数与之相关。

opcua_security_auth_opcua_errorhandling

 

许多用于诊断的客户端在执行返回错误状态时不评估输出参数。因此,这些客户端不能更精确地定位错误。不过,这在SDK层面应该是很容易实现的。

 

错误代码

服务器可以返回以下供应商特定的状态代码之一。这些代码是在OPC UA标准中定义的方法:

错误

状态代码

描述

Bad_InvalidNodeCount

0xB00B0000

BrAuthorizationDataType.NodesLength中的节点数与指定NodeID下的基于角色的节点数不一致。

Bad_NoAuthorization

0xB0120000

既没有启用继承权,也没有指定具有明确定义的授权的列表。

Bad_UnknownRole

0xB0130000

角色 BrRoleAccess.Name的名称不为服务器所知。只有在RBAC中定义的角色可以被指定。

Bad_UnknownAccessRight

0xB0140000

访问权 BrAccessRightsDataType.Name的名称不为 服务器所知。

Bad_NoRoles

0xB0150000

节点 BrNodeAccessDataType.Roles的访问列表  不包含任何条目。因此,这些节点对任何用户都不可见,对所有人都无法访问。

Bad_TooManyRoles

0xB0160000

节点BrNodeAccessDataType.Roles的访问列表  包含太多的条目。目前每个节点可以有32个角色。

Bad_DuplicateRole

0xB0170000

节点BrNodeAccessDataType.Roles的访问列表  包含一个角色超过一次。一个角色只允许在每个节点分配一次。

Bad_InvisibleNode

0xB0180000

The node is not visible to any of the specified roles.