OPC HDA扫盲

目录

1 基本概念

1.1 历史数据服务器类型

1.2 数据源

1.3 对象和接口概述

1.4 所需接口定义

1.5 可选接口定义

1.6 定义

1.7 边界值和时域

2 HDA聚合

2.1 生成间隔

2.2 数据类型

2.3 数据质量

3 聚合示例

3.1 示例数据

3.2 内插(INTERPOLATIVE)

3.3 时间加权平均(TIMEAVERAGE)

3.4 平均值(AVERAGE)

3.5 计数(COUNT)

3.6 实际时间最小值(MINIMUM ACTUAL TIME)

3.7 最小值(MINIMUM)

3.8 实际时间最大值(MAXIMUM ACTUAL TIME)

3.9 最大值(MAXIMUM)

3.10 首值(START)

3.11 末值(END)

3.12 持续良好时间(DURATION GOOD)

3.13 持续坏值时间(DURATION BAD)


1 基本概念

目前,大多数历史数据系统都使用自己的专有接口对外提供数据服务,不能与任何其他系统互操作。OPC HDA规范旨在提供历史数据访问的标准接口,促进用C和C++开发用于历史数据访问的OPC服务器/客户端应用程序。规范中描述的接口的体系结构和设计旨在支持其他语言的OPC服务器的开发。

OPC HDA规范与其他OPC规范之间存在松散的绑定。此OPC规范不是从另一个OPC规范派生而来,也不是从其继承接口。

OPC HDA规范的接口提供时间序列历史数据。如果需要实时数据,则应使用OPC DA接口。

OPC HDA规范描述了OPC COM对象及其由OPC历史服务器实现的接口。OPC客户端可以连接到一个或多个供应商提供的OPC历史服务器。供应商也可以提供其他OPC服务器。下图说明了可能的OPC供应商服务器配置:

http://api1.wangxinzhihui.com:88/upload/bc9e1a37-30d9-11ee/e25d98df99cf04f7622b.png

                   

任何供应商,甚至是不提供服务器的供应商,都可以提供客户端。客户端应该能够与任何服务器一起工作。如果需要另一个OPC服务器(如数据访问服务器)才能实现全部功能,则客户端仍应能够在没有其他OPC服务器的情况下对历史数据进行操作。

1.1 历史数据服务器类型

1)简单的趋势数据服务器。这些服务器只提供简单的原始数据存储。(数据通常是可从OPC数据访问服务器获得的数据类型,通常以元组[时间、数值、质量]的形式提供)。

2)复杂的数据压缩和分析服务器。这些服务器提供数据压缩以及原始数据存储。它们能够提供汇总数据或数据分析功能,如平均值、最小值和最大值等。它们可以支持数据更新和更新历史。它们可以支持注释的存储以及实际的历史数据存储。

这些不同的服务器都包含在OPC HDA规范的可选接口中。如果服务器不支持一组功能,则不需要实现该功能组的可选接口。

1.2 数据源

OPC历史数据服务器提供了一种访问一组历史数据源的方式。可用的源类型是服务器实现的一个函数。

http://api1.wangxinzhihui.com:88/upload/bc9e1a37-30d9-11ee/2cc32e0d5014624aeccc.png

 

服务器可以实现为独立的OPC历史数据服务器,从OPC数据访问服务器或另一数据源收集数据。它也可能是一组分层在现有专有历史数据服务器之上的接口。引用OPC历史数据服务器的客户端可能是简单的趋势包,只需要给定时间范围内的值,也可能是需要多种格式数据的复杂报告。

1.3 对象和接口概述

OPC历史数据服务器对象提供从历史服务器读取数据和向历史服务器写入数据的能力。所有COM对象都是通过接口访问的。客户端只能看到接口。下图概述了OPC对象及其接口。请注意,有些接口是可选的(如[]所示)。

下图为Historian Server模型。

http://api1.wangxinzhihui.com:88/upload/bc9e1a37-30d9-11ee/5ed4e87f51d1a50a725a.png

 

浏览器接口为客户端提供了一种查看历史记录的地址空间的方法。预期该地址空间对于一些服务器可能是分层的,而对于其他服务器可能是平面的。此接口旨在支持分层视图,其中平面地址空间表示为单层分层视图。浏览器接口在大多数大型历史数据服务器中是必不可少的,它允许客户端以简单的图形方式查看地址空间。

OPC Historian Client应用程序必须实现回调接口以支持关闭请求。客户端还可以实现用于服务器可以提供的各种异步连接的接口。如果客户端希望使用(而服务器提供)特定的异步接口,则客户端必须实现匹配的回调。

下图为Historian Client模型。

http://api1.wangxinzhihui.com:88/upload/bc9e1a37-30d9-11ee/2cd294c3147d8d0b04f4.png

 

关闭请求是允许OPC历史数据服务器干净关闭所必需的。当HDA服务器访问时,客户端应释放服务器提供的内存(请参阅自定义接口内存部分)并终止所有连接。

1.4 所需接口定义

OPC HDA服务器开发人员必须实现所需接口的所有方法,并且必须实现所述方法的所有功能。OPC历史客户端通过调用OPC所需接口的功能与OPC历史数据服务器通信。对于所需接口上的可选方法,OPC历史数据服务器可能会返回E_NOTIMPL。

1.5 可选接口定义

OPC HDA服务器开发人员可以实现可选接口的功能。当OPC HDA服务器支持可选接口时,必须实现该可选接口中的所有功能,即使该功能仅返回E_NOTIMPL。希望使用可选接口功能的OPC历史客户端将向OPC HDA服务器查询可选接口。客户端必须设计为不要求存在此可选接口。

1.6 定义

OPC HDA规范中使用的以下术语和概念通常在 historian中使用,但可以由不同的供应商定义,以具有略微不同的定义。以下列出了本规范中使用的定义。

1)Attribute(属性): 特定项目可能与其关联的附加限定符。例如,“项目值”属性可能具有与其关联的以下属性:“数据类型”(VT_R4)、“阶梯式”(0)和“存档”(1)。,即“项目值”返回一个4字节的实数,该值可以显示为插值(斜线),并且数据正在存档。

2)Aggregate(绑定值): 汇总数据值的方法。常见的聚合包括均匀时间范围内的平均值、时间范围内最小值和时间范围内最大值。这些聚合是在检索数据的过程中执行的。

3)Annotations (总计): 操作员或用户输入的与项目相关联的注释,通常在给定的时间点。此时不必存储值。

4)Bounding Values(绑定值): 客户端在请求某个时间范围内的原始数据时需要绑定值来确定入口点和出口点。如果原始数据值存在于入口或出口点,则即使它是数据请求的一部分,也会将其视为边界值。如果入口点或出口点不存在原始数据值,则范围之外的下一个数据点被视为边界值。

5)Interpolated Data(插值数据): 从存档中的数据派生而来,但没有存储值的数据。这可以从所请求的时间戳两侧的两个存储的数据点线性导出,也可以通过更复杂的方法从档案中的数据外推。

6)Item Handles: ItemHandle可以是客户端值或服务器值。所有者使用它来加快对项目的访问。其数据类型为OPCHandle(DWORD)。

如果客户端打算使用OPC HDA接口的任何异步功能,则预期客户端将为客户端句柄分配一个唯一值。但是,服务器不应该对客户端句柄做出任何假设,客户端也不应该对服务器句柄做出任何假定。项句柄的唯一性取决于实现。

7)Item ID: 字符串,它是对服务器地址空间中数据项的唯一引用。

8)Modified values(修改的值): 存储在历史记录中后更改的值。实验室数据输入值不是修改后的值,但如果用户更正了实验室值,则原始值将被视为修改值,并将在请求修改值时返回。假设所有接口上的所有方法都基于指定时间戳处指定项的当前值或最新值。对修改值的请求用于访问已被取代的值。

9)Properties(属性): 在Automation接口中,属性是指示其操作方式的历史服务器的属性。

10)Raw Data(原始数据): 存储在历史记录中的数据。数据可以被压缩,也可以是为项目收集的所有数据,这取决于保存项目值时调用的历史记录和存储规则。

11)Start Time / End Time(开始时间/结束时间): 限制历史请求的时间,用于定义请求的时域。对于所有请求,位于时域末尾的值不包括在域中,因此,为连续的、连续的时域发出的请求将只包括存档中的每个值一次。

12)Time Domain(时域): 特定请求或特定响应所覆盖的时间间隔。通常,如果开始时间早于结束时间,则时域被认为从开始时间开始,并在结束时间之前结束;如果结束时间早于开始时间,则时域仍然从开始时间开始,并在结束时间之前结束,对于特定的请求和响应,时间“向后运行”。在这两种情况下,任何正好落在时域结束时间的值都不包括在域中。

请注意,FILETIME中可以合法表示的所有时间戳都是有效的时间戳,并且服务器可能不会返回E_INVALIDARG,因为时间戳超出了服务器拥有数据的范围。服务器应该能够优雅地处理越界的时间戳,并向客户端返回正确的错误代码和值,例如OPC_S_NODATA或OPCHDA_NOBOUND。

1.7 边界值和时域

时域包括开始时间和结束时间之间的所有值,以及正好落在开始时间上的任何值,但不包括正好落在结束时间上的任意值。因此,对于不请求边界值的情况,如果从1:00到1:05,然后从1:05到1:10请求数据,则正好在1:05存在的值将被包括在第二请求中,但不包括在第一请求中。

假设历史记录的值存储在5:00、5:02、5:03、5:05和5:06,从RAW数据调用返回的数据由下表给出。在表中,FIRST代表一个值为VT_EMPTY、指定StartTime的时间戳和质量为OPCHDA_NOBOUND的元组。LAST代表一个值为VT_EMPTY、指定EndTime的时间戳和质量为OPCHDA_NOBOUND的元组。

2 HDA聚合

以下说明HDA聚合的要求和性能。其目的是使HDA聚合标准化,以便HDA客户端能够可靠地预测聚合计算的结果并理解其含义。如果用户需要聚合中的自定义功能,则应将这些聚合编写为自定义聚合。

标准聚合必须尽可能一致,这意味着每个聚合的行为必须与输入参数、原始数据和边界条件相似的其他聚合的行为相似。在可能的情况下,总量应以类似的方式处理投入和先决条件。本节分为两个部分。第一小节涉及所有聚合共同的聚合特性和行为。其余小节涉及特定于聚合的聚合的特性和行为。

本篇介绍通用特征。

2.1 生成间隔

要读取聚合,OPC客户端必须指定三个时间参数:

- start time (开始)

- end time (结束)

-重新采样间隔 resample interval (Int)

OPC服务器必须使用这三个参数生成一系列时间间隔,然后计算每个时间间隔的聚合值。本节指定了在给定三个参数的情况下生成的时间间隔。在表中,我们将Range定义为|结束-开始|。

http://api1.wangxinzhihui.com:88/upload/c5a32f81-3332-11ee/df5112136ad8b03987c7.png

                   

2.2 数据类型

以下所有聚合仅适用于数字数据类型,即整数或实数/浮点数。不支持日期、字符串、数组等。

然而,在某些情况下,OPC服务器可能具有非数字类型的项目类型(即“VT_BSTR”),但该项目实际上代表一个数字值。因此,每个聚合都必须尝试使用VariantChangeType将项值转换为数字类型。必须对原始历史记录列表中的每个项目执行此操作。

如果某个区间中的任何项目未能转换,则不应在聚合计算中使用该项目,并且聚合的质量应不确定/低于标准。如果未能在一个时间间隔内转换所有项,则聚合占位符应返回坏质量OPCHDA_CONVERSION。

2.3 数据质量

所有聚合都应在计算中省略错误的数据值。如果忽略任何值,则聚合质量应不确定/低于标准。

在某些情况下,会存在不确定的值(即既不好也不坏)。是否从聚合调用中省略这些值将取决于服务器。服务器文档必须清楚地说明服务器将如何处理不确定的值。如果在合计计算中使用了不确定值,则这些区间的质量应为不确定/低于标准。

3 聚合示例

3.1 示例数据

1)聚合数据例子——Historian 1

       

http://api1.wangxinzhihui.com:88/upload/c52c571e-346c-11ee/1dbf0d0961a461d2549f.png

 

http://api1.wangxinzhihui.com:88/upload/c52c571e-346c-11ee/3fc80ef0865eb74250a2.png

2)聚合数据例子——Historian 2

 

http://api1.wangxinzhihui.com:88/upload/c52c571e-346c-11ee/b7257d41b25b97a13f22.png

 

http://api1.wangxinzhihui.com:88/upload/c52c571e-346c-11ee/e3bdaf0061059be15a69.png

Historian 1

   1)不确定的值包含在聚合调用中。

   2)数据点之间使用线性插值。

   3)在末端边界条件下使用阶跃外推法

Historian 2

   1)不确定的值被视为质量差,并且不包括在聚合调用中。

   2)数据点之间使用线性插值。

   3)在末端边界条件下使用阶跃外推法

3.2 内插(INTERPOLATIVE)

为了使插值聚合返回有意义的数据,在边界条件下必须有好的值。出于讨论的目的,我们将使用“好”和“不好”这两个术语。正如在“质量”部分中所讨论的,“不好”表示的是依赖于服务器的。对于一些服务器来说,不好只代表坏数据,而对于其他服务器来说,它代表坏的和不确定的数据。

当在边界条件下遇到不好的值时,必须遵守以下规则:

如果请求时间的值不好,则聚合会在请求时间的两侧寻找好的数据,以便执行直线插值。

如果没有终点(即未来时间),则该值应根据之前的良好值在时间上向前外推。在这种情况下,质量将低于正常水平。

总量不应在时间上向后推断。如果没有起始绑定,则应返回OPCHDANO_DATA。拖尾值不应及时向前拉。

插值方法,阶梯式(即保持最后值)或线性直线插值,将取决于服务器。服务器文档必须清楚地说明所使用的方法。

如果为了找到最接近的良好值而跳过任何非良好值,则聚合将是不确定的/低于正常值

所有间隔聚合返回间隔开始的时间戳。除非另有说明,否则质量是好的,具有内插性。

案例1:正在请求具有良好边界值的数据。

Start: Jan-01-2002 12:00:10 End: Jan-01-2002 12:00:20 Interval: 00:00:05

 

http://api1.wangxinzhihui.com:88/upload/c52c571e-346c-11ee/1783eb22782dfae97422.png

案例2:请求具有良好边界值的数据,但间隔中的数据不正确

Start: Jan-01-2002 12:00:35 End: Jan-01-2002 12:01:00 Interval: 00:00:05

 

http://api1.wangxinzhihui.com:88/upload/c52c571e-346c-11ee/b84bce1ef54a8a7c2c53.png

案例3:正在请求没有良好结束边界值的数据。

Start: Jan-01-2002 12:01:20 End: Jan-01-2002 12:01:40 Interval: 00:00:05

 

http://api1.wangxinzhihui.com:88/upload/c52c571e-346c-11ee/904df6529d394b1c6193.png

案例4:请求没有良好起始边界值的数据。

Start: Jan-01-2002 12:00:00 End: Jan-01-2002 12:00:20 Interval: 00:00:05

 

http://api1.wangxinzhihui.com:88/upload/c52c571e-346c-11ee/a09b527d6080a47315de.png

3.3 时间加权平均(TIMEAVERAGE)

时间加权平均聚合使用如上面插值部分所述的插值来找到区间开始和结束处的点的值。在间隔中的每个原始值之间绘制一条直线。线下的面积除以区间的长度得到平均值。

示例:

输入:

   Start: Jan-01-2002 12:00:10

   End: Jan-01-2002 12:00:15

   Interval: 00:00:05

   结果:

   点1=12:00:10时为10的良好原始值

   点2=12:00:15时的插值15,使用12:00:10和12:00:20时的边界值。

   线下面积为62.5(1/2b*h+b*h)。间隔为5秒

   时间平均值=面积/间隔=12.5

如果区间的任何原始值都不好,则会忽略它们,并且聚合

该区间的质量是不确定的/低于标准的。

所有间隔聚合返回间隔开始的时间戳。

案例1:请求具有良好边界值的数据

Start: Jan-01-2002 12:00:10 End: Jan-01-2002 12:00:20 Interval: 00:00:05

http://api1.wangxinzhihui.com:88/upload/b98cc65b-36ac-11ee/485e6d5b2c97eeb011fc.png

案例2:正在请求具有良好边界值的数据,但间隔中的数据不正确。

Start: Jan-01-2002 12:00:35 End: Jan-01-2002 12:01:00 Interval: 00:00:05

http://api1.wangxinzhihui.com:88/upload/b98cc65b-36ac-11ee/3163d99cd4c901d2dada.png

案例3:正在请求没有良好结束边界值的数据。

Start: Jan-01-2002 12:01:20 End: Jan-01-2002 12:01:40 Interval: 00:00:05

http://api1.wangxinzhihui.com:88/upload/b98cc65b-36ac-11ee/6faf1624d41e15e9b1c8.png

在边界处使用阶跃外推法。服务器可以选择根据先前的斜率推断数据。

案例4:请求没有良好起始边界值的数据。

Start: Jan-01-2002 12:00:00 End: Jan-01-2002 12:00:20 Interval: 00:00:05

http://api1.wangxinzhihui.com:88/upload/b98cc65b-36ac-11ee/12bdc354560dc8242a8f.png

3.4 平均值(AVERAGE)

平均聚合将给定间隔内所有良好原始数据的值相加,然后将总和除以良好值的数量。如果在计算中忽略任何不好的值,则聚合质量将是不确定的/低于标准的。

如果某个间隔不存在好的数据,则该间隔的聚合质量将很差,即OPCHDA_NODATA。

所有间隔聚合返回间隔开始的时间戳。

案例1:正在请求具有良好边界值的数据。

Start: Jan-01-2002 12:00:10 End: Jan-01-2002 12:00:20 Interval: 00:00:05

http://api1.wangxinzhihui.com:88/upload/fc5fed0e-377d-11ee/046002c7d1b15c904619.png

案例2:正在请求具有良好边界值的数据,但间隔中的数据不正确。

Start: Jan-01-2002 12:00:35 End: Jan-01-2002 12:01:00 Interval: 00:00:05

http://api1.wangxinzhihui.com:88/upload/fc5fed0e-377d-11ee/600ad7dad86393b13a85.png

案例3:正在请求没有良好结束边界值的数据。

Start: Jan-01-2002 12:01:20 End: Jan-01-2002 12:01:40 Interval: 00:00:05

http://api1.wangxinzhihui.com:88/upload/fc5fed0e-377d-11ee/ad47ac1931e6687ea235.png

案例4:请求没有良好起始边界值的数据。

Start: Jan-01-2002 12:00:00 End: Jan-01-2002 12:00:20 Interval: 00:00:05

http://api1.wangxinzhihui.com:88/upload/fc5fed0e-377d-11ee/8be87ade5ee25a18a76b.png

3.5 计数(COUNT)

此聚合检索一个间隔内所有原始值的计数。如果一个或多个原始值不合格,则它们不包括在计数中,并且聚合质量不确定/低于标准。如果在一个时间间隔内不存在好的数据,则计数为零。

所有间隔聚合返回间隔开始的时间戳。

案例1:正在请求具有良好边界值的数据。

Start: Jan-01-2002 12:00:10 End: Jan-01-2002 12:00:20 Interval: 00:00:05

案例2:正在请求间隔中数据不确定的数据。

Start: Jan-01-2002 12:00:50 End: Jan-01-2002 12:01:30 Interval: 00:00:00

http://api1.wangxinzhihui.com:88/upload/ee545ae6-3847-11ee/e58ba24ddbe3b8cf2915.png

*一些服务器可能会选择将不确定的数据视为坏数据,因此结果为3。

3.6 实际时间最小值(MINIMUM ACTUAL TIME)

实际时间最小值聚合检索间隔[s,e)内的最小良好原始值,并返回该值以及该值出现的时间戳。请注意,如果相同的最小值存在于多个时间戳中,则检索最旧的时间戳中。如果非良好值低于良好最小值,则聚合的质量将不确定/低于正常值。

除非另有说明,否则质量良好,原始。如果间隔中没有值,则不会返回带有间隔开始时间戳的数据。

案例1: 正在请求具有良好边界值的数据。

Start: Jan-01-2002 12:00:10 End: Jan-01-2002 12:00:20 Interval: 00:00:05

http://api1.wangxinzhihui.com:88/upload/361196a2-3916-11ee/3218d0d1b4a36797f0e6.png

案例2:请求具有良好边界值的数据,但间隔中的数据不正确

 

http://api1.wangxinzhihui.com:88/upload/361196a2-3916-11ee/bbf2e6a740905717a3ad.png

案例3: 正在请求没有良好结束边界值的数据。

http://api1.wangxinzhihui.com:88/upload/361196a2-3916-11ee/229752213a1241b4099e.png

案例4: 请求没有良好起始边界值的数据。

Start: Jan-01-2002 12:00:00 End: Jan-01-2002 12:00:20 Interval: 00:00:05

http://api1.wangxinzhihui.com:88/upload/361196a2-3916-11ee/24f638d6aaf378a93ede.png

案例5: 部分间隔

http://api1.wangxinzhihui.com:88/upload/361196a2-3916-11ee/bcc36713fbd2445c0531.png

3.7 最小值(MINIMUM)

最小值聚合与最小值实际时间(MINIMUM ACTUAL TIME)相同,只是聚合的时间戳始终是每个间隔的开始时间。

最小值聚合检索间隔[s,e)内的最小良好原始值,并返回该值以及对应间隔的开始时间戳。请注意,如果相同的最小值存在于多个时间戳中,则检索最旧的时间戳中。如果非良好值低于良好最小值,则聚合的质量将不确定/低于正常值。

除非另有说明,否则质量良好,原始。如果间隔中没有值,则不会返回带有间隔开始时间戳的数据。

案例1:请求具有良好边界值的数据。

http://api1.wangxinzhihui.com:88/upload/9a13bcca-397c-11ee/fe66ecad1bb6c7ebabbb.png

案例2:请求具有良好边界值的数据,但间隔中的数据不正确。

http://api1.wangxinzhihui.com:88/upload/9a13bcca-397c-11ee/3e97974b4fd43d283eed.png

案例3:请求没有好的结束边界值的数据。

Start: Jan-01-2002 12:01:20 End: Jan-01-2002 12:01:40 Interval: 00:00:05

http://api1.wangxinzhihui.com:88/upload/9a13bcca-397c-11ee/a48e4e936c7fe7b5a53b.png

案例4:请求没有良好起始边界值的数据。

http://api1.wangxinzhihui.com:88/upload/9a13bcca-397c-11ee/685eea725f9bdbc3f1e2.png

案例5:部分间隔

http://api1.wangxinzhihui.com:88/upload/9a13bcca-397c-11ee/bd10278acbfb12d4ef27.png

3.8 实际时间最大值(MAXIMUM ACTUAL TIME)

最大值聚合检索间隔[s,e)内的最大良好原始值,并返回该值以及对应的开始时间戳。请注意,如果相同的最大值存在于多个时间戳中,则检索最旧的时间戳中。如果非良好值高于良好最大值,则聚合的质量将不确定/低于正常值。

除非另有说明,否则质量良好,原始。如果间隔中没有值,则不会返回带有间隔开始时间戳的数据。

案例1:正在请求具有良好边界值的数据。

http://api1.wangxinzhihui.com:88/upload/7cf106bb-3a44-11ee/85d8ad135d6c932fce1f.png

案例2:正在请求没有良好结束边界值的数据。

http://api1.wangxinzhihui.com:88/upload/7cf106bb-3a44-11ee/0073cc6e36f785345947.png

案例3:请求没有良好起始边界值的数据。

http://api1.wangxinzhihui.com:88/upload/7cf106bb-3a44-11ee/cda58a976cc9d074909e.png

案例4:部分间隔

http://api1.wangxinzhihui.com:88/upload/7cf106bb-3a44-11ee/da6eff54e90f1e8c1498.png

3.9 最大值(MAXIMUM)

最大值聚合检索间隔[s,e)内的最大良好原始值,并返回该值以及对应间隔的开始时间戳。请注意,如果相同的最大值存在于多个时间戳中,则检索最旧的时间戳中。如果非良好值高于良好最大值,则聚合的质量将不确定/低于正常值。

除非另有说明,否则质量良好,原始。如果间隔中没有值,则不会返回带有间隔开始时间戳的数据。

案例1:正在请求具有良好边界值的数据。

http://api1.wangxinzhihui.com:88/upload/1e9b9125-3b45-11ee/31e0242a9f8292fb2520.png

案例2:正在请求具有良好边界值的数据,但间隔中的数据不正确。

http://api1.wangxinzhihui.com:88/upload/1e9b9125-3b45-11ee/13d819d50c19b1748f10.png

案例3:正在请求没有良好结束边界值的数据。

http://api1.wangxinzhihui.com:88/upload/1e9b9125-3b45-11ee/ab4527bc76b49d6bdc7b.png

案例4:请求没有良好起始边界值的数据。

http://api1.wangxinzhihui.com:88/upload/1e9b9125-3b45-11ee/e2c64363d2c955d3952b.png

案例5:部分间隔

http://api1.wangxinzhihui.com:88/upload/1e9b9125-3b45-11ee/b2ac75efc9f0c1a1aa52.png

3.10 首值(START)

首值聚合检索区间[s,e)内的第一个原始值,并返回该值以及该值出现的时间戳。如果该值不好,则聚合的质量将不确定/低于正常水平。

案例1:请求具有良好边界值的数据

http://api1.wangxinzhihui.com:88/upload/2ef69351-3c0d-11ee/297c802bf346ef0de30a.png

案例2:正在请求具有良好边界值的数据,但间隔中的数据不正确。

http://api1.wangxinzhihui.com:88/upload/2ef69351-3c0d-11ee/efe8d3146b99e949d9cd.png

案例3:部分间隔

http://api1.wangxinzhihui.com:88/upload/2ef69351-3c0d-11ee/72c659fc3b77de177fd5.png

3.11 末值(END)

末值聚合检索区间[s,e)内的最后一个原始值,并返回该值以及该值出现的时间戳。如果该值不好,则聚合的质量将不确定/低于正常水平。

案例1:请求具有良好边界值的数据。

http://api1.wangxinzhihui.com:88/upload/3c1f13eb-3ce6-11ee/f86fcdefaa9223b66c33.png

案例2:正在请求具有良好边界值的数据,但间隔中的数据不正确。

http://api1.wangxinzhihui.com:88/upload/3c1f13eb-3ce6-11ee/255939f714b6b795bebc.png

案例3:部分间隔

http://api1.wangxinzhihui.com:88/upload/3c1f13eb-3ce6-11ee/2c60b33ea828a8a51804.png

3.12 持续良好时间(DURATION GOOD)

持续良好时间聚合查看区间的边界值的质量,以确定区间开始时的质量。如果不存在边界值,则假定在间隔开始时质量不好。此合计仅考虑真正的良好价值。不确定的数值不适合计算该合计值。

每当在一个区间内从头到尾遇到质量为q的原始值x时,质量被认为是q,直到遇到下一个值y,此时质量变为y,依此类推。

时间以秒为单位返回。任何返回值都不会是不确定的或低于标准的。每个间隔的聚合都会返回间隔开始的时间戳。素质很好,经过深思熟虑。

案例1:正在请求具有良好边界值的数据。

http://api1.wangxinzhihui.com:88/upload/12723ffb-3d5e-11ee/2f0815e66fd9bbffe466.png

案例2:正在请求具有良好边界值的数据,但间隔中的数据不正确。

http://api1.wangxinzhihui.com:88/upload/12723ffb-3d5e-11ee/093b4c39be55ed8f8b89.png

案例3:正在请求没有良好结束边界值的数据。

http://api1.wangxinzhihui.com:88/upload/12723ffb-3d5e-11ee/9fdc2d13ebbcdcade533.png

案例4:请求没有良好起始边界值的数据

http://api1.wangxinzhihui.com:88/upload/12723ffb-3d5e-11ee/3c3fe7f1475d8d3eb69d.png

案例5:请求没有良好起始边界值的数据

http://api1.wangxinzhihui.com:88/upload/12723ffb-3d5e-11ee/ab1fb5df4bc9c4451fe3.png

案例6:请求间隔中数据不确定的数据

http://api1.wangxinzhihui.com:88/upload/12723ffb-3d5e-11ee/ceca25a12ff102b3debd.png

*不确定的数据不应被视为良好数据

3.13 持续坏值时间(DURATION BAD)

持续时间坏聚合查看间隔的边界值的质量,以确定间隔开始时的质量。如果不存在边界值,则假定在间隔开始时质量不好。此合计仅考虑真正的坏值。不确定的数值在计算该合计时并不被认为是坏的。

每当在一个区间内从头到尾遇到质量为q的原始值x时,质量被认为是q,直到遇到下一个值y,此时质量变为y,依此类推。

时间以秒为单位返回。任何返回值都不会是不确定的或低于标准的。每个间隔的聚合都会返回间隔开始的时间戳。

持续时间坏不是简单的间隔减去持续时间好,因为间隔数据不确定。

案例1:请求具有良好边界值的数据

http://api1.wangxinzhihui.com:88/upload/03b44e94-3e2d-11ee/2515e50c40abe75078bb.png

案例2:请求具有良好边界值的数据,但间隔中的数据不正确

http://api1.wangxinzhihui.com:88/upload/03b44e94-3e2d-11ee/e21a390584f087bb6ba5.png

案例3:请求间隔中数据不确定的数据

http://api1.wangxinzhihui.com:88/upload/03b44e94-3e2d-11ee/47a25d40b3d1d0fecd1b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/80781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《C++API设计》读书笔记(3):模式

本章内容 本章涵盖了一些与CAPI设计相关的设计模式和惯用法。 “设计模式(Design Pattern)”表示软件设计问题的一些通用解决方案。该术语来源于《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Softwar…

【C++】map,set简单操作的封装实现(利用红黑树)

文章目录 一、STL中set与map的源码二、 红黑树结点的意义三、仿函数的妙用四、set,map定义迭代器的区别五、map,set迭代器的基本操作:1.begin() end()2.operator3.operator-- 六、迭代器拷贝构造…

傅里叶变换应用 (02/2):频域和相位

一、说明 到目前为止,在我们的讨论中,我已经交替使用了“傅里叶变换”和“快速傅里叶变换(FFT)”。在这一点上,值得注意的是区别!FFT 是“离散”傅里叶变换 (DFT) 的有效算法实现。“…

JavaScript-Ajax-axios-Xhr

JS的异步请求 主要有xhr xmlHttpRequest 以及axios 下面给出代码以及详细用法&#xff0c;都写在了注释里 直接拿去用即可 测试中默认的密码为123456 账号admin 其他一律返回登录失败 代码实例 <!DOCTYPE html> <html lang"en"> <head><…

科技抗老新突破,香港美容仪品牌内地重磅上市

近年来&#xff0c;新消费时代“颜值经济”的火热促使美容行业市场规模增长迅速&#xff0c;越来越多的人愿意为“美”买单&#xff0c;对美的需求也随之增长&#xff0c;美容行业已经成为成长最快的新锐产业。随着经济和科技的发展&#xff0c;“快捷”也成为了当今社会的时代…

想要精通算法和SQL的成长之路 - 最长回文子串

想要精通算法和SQL的成长之路 - 最长回文子串 前言一. 最长回文子串1.1 中心扩散法的运用 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 最长回文子串 原题链接 1.1 中心扩散法的运用 这类具有回文性质的题目&#xff0c;我们如果用常规的从左往右或者从右往左的遍历方…

中尺度混凝土二维有限元求解——运行弯曲、运行光盘、运行比较、运行半圆形(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

swift 约束布局

添加约束布局 背景图瀑全屏 如何三等分 外面view容器没有约束

【Spring Boot】Spring—加载监听器

这里写目录标题 前言加载监听器执行run方法加载配置文件封装Node调用构造器思考 前言 前几天的时候&#xff0c;项目里有一个需求&#xff0c;需要一个开关控制代码中是否执行一段逻辑&#xff0c;于是理所当然的在yml文件中配置了一个属性作为开关&#xff0c;再配合nacos就可…

笔记1.4 计算机网络性能

1. 速率 速率即数据率&#xff08;data rate&#xff09;或称数据传输速率或比特率 单位时间&#xff08;秒&#xff09;传输信息&#xff08;比特&#xff09;量 计算机网络中最重要的一个性能指标 单位&#xff1a;bps、kbps、Mbps k 10^3、M 10^6、G 10^9 速率往往…

网络安全深入学习第一课——热门框架漏洞(RCE-命令执行)

文章目录 一、RCE二、命令执行/注入-概述三、命令执行-常见函数四、PHP命令执行-常见函数1、exec&#xff1a;2、system3、passthru4、shell_exec5、反引号 backquote 五、PHP命令执行-常见函数总结六、命令执行漏洞成因七、命令执行漏洞利用条件八、命令执行漏洞分类1、代码层…

excel中的引用与查找函数篇2

如下所有案例中表头均不参与范围查找内&#xff1a; 1、LOOKUP(lookup_value,lookup_vector,[result_vector])&#xff1a;在一行或者一列中查找某个值并从另一行或者列中找到同位置的值 记住&#xff1a;中括号内的参数可以不赋值&#xff0c;若在中间用逗号隔开这个参数&…

思维模型 协议

1 模型故事 1.1 社会性质的协议 1 世界观的建立 1 2 3 4 5 6 7 8 9 0 这些阿拉伯数字 如此常见&#xff0c;那么我们是否想过 为什么 这些阿拉伯数字我们如此熟悉&#xff1f;为什么我们要学习这些玩意儿&#xff1f;这些东西为什么大家都要学习&#xff0c;都要使用&#x…

C++数据结构X篇_14_二叉树的递归遍历(先序遍历、中序遍历、后续遍历方法介绍;举例;代码实现)

我们知道数据的存储结构分为线性与非线性。线性就是1对1的结构&#xff0c;像栈与队列都属于线性结构。那什么是非线性的结构呢&#xff1f; 非线性即1对n的结构这更符合常规情况&#xff0c;线性结构本质上属于非线性结构中的一种特殊形式&#xff0c;像树就属于非线性结构。但…

neo4j下载安装配置步骤

目录 一、介绍 简介 Neo4j和JDK版本对应 二、下载 官网下载 直接获取 三、解压缩安装 四、配置环境变量 五、启动测试 一、介绍 简介 Neo4j是一款高性能的图数据库&#xff0c;专门用于存储和处理图形数据。它采用节点、关系和属性的图形结构&#xff0c;非常适用于…

6. 装饰器

UML 聚合(Aggregation)关系&#xff1a;大雁和雁群&#xff0c;上图中空心菱形箭头表示聚合关系组合(Composition)关系&#xff1a;大雁和翅膀 &#xff0c;实心菱形箭头表示组合(Composition)关系 测试代码 #include <iostream> #include <stdio.h> #include &l…

Spring复杂对象的3中创建方法

复杂对象是相对于简单对象可以直接 new 出的对象。这种对象在 Spring 中不可以通过简单对象的创建方式来创建。下面我们将通过实现 FactoryBean 接口、实例工厂、静态工厂三种方法来创建。 FactoryBean 接口 Spring 提供 FactoryBean 接口并且提供了 getObject 方法是为了支持…

“熊猫杯” | 赛宁网安获网络安全优秀创新成果大赛优胜奖

9月11日&#xff0c;四川省2023年国家网络安全宣传周正式启动。由四川省委网信办指导&#xff0c;中国网络安全产业联盟&#xff08;CCIA&#xff09;主办&#xff0c;成都信息工程大学、四川省网络空间安全协会承办的“2023年网络安全优秀创新成果大赛—成都分站赛(暨四川省‘…

Spring Boot - 用JUnit 5构建完美的Spring Boot测试套件

文章目录 PreJUnit 4 vs JUnit 5Junit5 常用注解栗子 Pre SpringBoot - 单元测试利器Mockito入门 SpringBoot - 应用程序测试方案 SpringBoot - SpringBootTest加速单元测试的小窍门 Spring Boot - Junit4 / Junit5 / Spring Boot / IDEA 关系梳理 package org.junit.jupit…

Excel VBA 变量,数据类型常量

几乎所有计算机程序中都使用变量&#xff0c;VBA 也不例外。 在过程开始时声明变量是一个好习惯。 这不是必需的&#xff0c;但有助于识别内容的性质&#xff08;文本&#xff0c;​​数据&#xff0c;数字等&#xff09; 在本教程中&#xff0c;您将学习- 一、VBA变量 变量是…