<< 点击显示目录 >> 主页 OPC UA使用助手 > OPC UA 帮助 > 信息模型 > 访问控制和安全 > OPC UA访问控制 > 错误处理 |
评估错误的程序
下图显示了处理错误的程序。绿色区块定义了在使用方法调用时进行错误检查的标准化流程。蓝色区块是一个扩展。这个扩展简化了在指定数组中获取错误元素的过程。这在InputArgumentResults中是不可能的。这个额外的信息是用一个输出参数来传送的。因此,每个输入参数都有一个输出参数与之相关。
许多用于诊断的客户端在执行返回错误状态时不评估输出参数。因此,这些客户端不能更精确地定位错误。不过,这在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. |