状态代码

<< 点击显示目录 >>

主页  OPC UA使用助手 > OPC UA 帮助 > 诊断和错误处理 >

状态代码

状态码是一个描述操作结果的数字值。状态代码的长度为32位,数据类型为DWORD。上面的16位描述了错误代码的数字值。下面的16位包含额外的信息,但不改变错误代码本身的含义。

在OPC UA中,数值只以十六进制格式表示。这种表示方法简化了文件中搜索错误的低16位的屏蔽。出于这个原因,文件中使用十六进制格式,即使这与通常用于图书馆的十进制格式有偏差。

状态代码的结构

领域

位数

说明

Severity

30:31

指定错误代码的状态是好、坏还是不确定。这些位有以下含义:

消息

编码

描述

Good/Success

00

表示操作成功,可以使用相应的结果。

Uncertain/Warning

01

表示操作部分成功,各自的结果可能不适合使用。

Bad/Failure

02

表示操作失败,不能使用相应的结果。

Reserved

03

保留给未来使用。这个错误代码应该被所有客户视为 "坏"。

ErrorType

29

在OPC UA和PLCopen领域对StatusCode进行分类。

限制

编码

描述

OPC UA

0

OPC UA 状态码

PLCopen

1

PLCopen 状态码

ErrorType2

28

只有当第29位的值为1时,这个标志才能被评估。该标志有如下含义:

限制

编码

描述

OPC UA

0

PLCopen默认的状态代码

PLCopen

1

PLCopen供应商特定的StatusCode

SubCode

16:27

用于描述状态的数字值。

StructureChanged

15

表示相关数据的结构已经改变。

SemanticsChanged

14

表示相关数据的语义已经改变。

Reserved

12:13

对于未来的扩展。必须始终为0。

InfoType

10:11

InfoBits中的信息类型:

限制

编码

描述

None

00

未使用

Low

01

数据值(见 "数据值 "一节的描述)

High

1X

用于未来的扩展

InfoBits

0:9

关于StatusCode的附加信息。其含义由InfoType定义。

InfoBits

InfoBits可以在StatusCode中返回。InfoBits的类型是由InfoType定义的。下面的部分描述了可能的InfoBits。

DataValue

领域

位数

说明

LimitBits

8:9

与数据值相连的LimitBits。LimitBits有以下含义:

限制

编码

描述

None

00

该值可以根据需要改变。

Low

01

该值处于数据源的下限。

High

02

该值处于数据源的上限。

Constant

03

该值是常数,不能改变。

Overflow

7

如果该位被设置,那么由于SampleQueue中的值已经被覆盖,所以服务器检测到的每一个值变化都不会被传输。

Reserved

5:6

用于未来的扩展。必须永远是0。

HistorianBits

0:4

这些位仅在读取历史数据时被设置:

限制

编码

描述

Raw

XXX00

该值包含原始数据。

Calculated

XXX01

该值经过计算。

Interpolated

XXX10

该值是插值的。

Reserved

XXX11

未定义

Partial

XX1XX

该值是用一个不完整的区间计算的。

Extra data

X1XXX

原始数据值隐藏了同一时间戳的另一个值

Multi value

1XXXX

多个值符合聚合标准。

本节的主题

-OPC UA基金会成功代码

-OPC UA基金会不确定代码

-OPC UA基金会错误代码

-OPC UA基金会堆栈状态代码