eDNA 实时数据库 API函数(VB VC部分)

更新时间:2024-04-02 15:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

DISTRIBUTED NETWORK ARCHITECTURE

eDNA API函数 (VB部分)

V1.0

www.instepchina.com www.ednachina.com

中国●北京市朝阳区朝外大街乙12号 1号楼昆泰国际中心1011室 电话:+86-10-58797132/33/34 传真:+86-10-58797136

标题 作者 修改记录: 序号 1 2 3 4 5 6 eDNA标准文档的建立流程 陈鑫 2006年9月1日 修改人员 陈鑫 陈鑫、徐立博 修改时间 2007年4月16日 2007年9月29日

目 录

1.1 设置host文件 ........................................................................ 1 1.2 安装eDNA SDK ......................................................................... 2 1.3 在VB环境中引用函数 .................................................................. 4

2.1 读取实时函数 .................................................................... 7 DNAGetRTAll .............................................................................. 7 ● 函数名称:DNAGetRTAll ................................................................ 7 DNAGetRTAllUTC ........................................................................... 9 ● 函数名称:DNAGetRTAllUTC ............................................................. 9 DNAGetRTValue ........................................................................... 11 ● 函数名称:DNAGetRTValue ............................................................. 11 DNAGetRTValueAsString ................................................................... 12 ● 函数名称:DNAGetRTValueAsString ..................................................... 12 DNAGetRTTime ............................................................................ 13 ● 函数名称:DNAGetRTTime .............................................................. 13 DNAGetRTTimeUTC ......................................................................... 14 ● 函数名称:DNAGetRTTimeUTC ........................................................... 14 DNAGetRTStatus .......................................................................... 15 ● 函数名称:DNAGetRTStatus ............................................................ 15 DNAGetRTDesc ............................................................................ 16 ● 函数名称:DNAGetRTDesc .............................................................. 16 DNAGetRTUnits ........................................................................... 17 ● 函数名称:DNAGetRTUnits ............................................................. 17 DNAGetRTShort ........................................................................... 18 ● 函数名称:DNAGetRTShort ............................................................. 18 2.2 实时写数函数(秒) ............................................................. 19 DnaAddAnalogShortIdRecord ............................................................... 19 ● 函数名称:DnaAddAnalogShortIdRecord ................................................. 19 DnaAddDigitalShortIdRecord .............................................................. 21 ● 函数名称:DnaAddDigitalShortIdRecord ................................................ 21 DnaAddAnalogShortIdRecordNoStatus ....................................................... 22 ● 函数名称:DnaAddAnalogShortIdRecordNoStatus ......................................... 22 DnaFlushShortIdRecords .................................................................. 23 ● 函数名称:DnaFlushShortIdRecords .................................................... 23 2.3 读取历史函数(秒) ............................................................. 24 DnaGetHistAvg ........................................................................... 24 ● 函数名称:DnaGetHistAvg ............................................................. 24 DnaGetHistAvgUTC ........................................................................ 26 ● 函数名称:DnaGetHistAvgUTC .......................................................... 26 DnaGetHistMax ........................................................................... 28 ● 函数名称:DnaGetHistMax ............................................................. 28 DnaGetHistMaxUTC ........................................................................ 30

● 函数名称:DnaGetHistMaxUTC .......................................................... 30 DnaGetHistMin ........................................................................... 32 ● 函数名称:DnaGetHistMin ............................................................. 32 DnaGetHistMinUTC ........................................................................ 34 ● 函数名称:DnaGetHistMinUTC .......................................................... 34 DnaGetHistSnap .......................................................................... 36 ● 函数名称:DnaGetHistSnap ............................................................ 36 DnaGetHistSnapUTC ....................................................................... 38 ● 函数名称:DnaGetHistSnapUTC ......................................................... 38 DnaGetHistRaw ........................................................................... 40 ● 函数名称:DnaGetHistRaw ............................................................. 40 DnaGetHistRawUTC ........................................................................ 42 ● 函数名称:DnaGetHistRawUTC .......................................................... 42 DnaGetNextHist .......................................................................... 44 ● 函数名称:DnaGetNextHist ............................................................ 44 DnaGetNextHistUTC ....................................................................... 45 ● 函数名称:DnaGetNextHistUTC ......................................................... 45 DnaGetNextHistStr ....................................................................... 46 ● 函数名称:DnaGetNextHistStr ......................................................... 46 DnaGetNextHistStrUTC .................................................................... 48 ● 函数名称:DnaGetNextHistStrUTC ...................................................... 48 DnaGetNextHistSmallUTC .................................................................. 50 ● 函数名称:DnaGetNextHistSmallUTC .................................................... 50 DnaGetNextHistFull ...................................................................... 51 ● 函数名称:DnaGetNextHistFull ........................................................ 51 DnaGetHistExpectedTotal ................................................................. 53 ● 函数名称:DnaGetHistExpectedTotal ................................................... 53

2.4 插入历史数据函数(秒) ......................................................... 54 DnaHistQueueUpdateInsertValue ........................................................... 54 ● 函数名称:DnaHistQueueUpdateInsertValue ............................................. 54 DnaHistFlushUpdateInsertValues .......................................................... 56 ● 函数名称:DnaHistqueueUpdateInsertValues ............................................ 56 2.5 追加历史数据函数 ............................................................... 57 DnaHistQueueAppendValue ................................................................. 57 ● 函数名称:DnaHistQueueAppendValue ................................................... 57 DnaHistFlushAppendValues ................................................................ 59 ● 函数名称:DnaHistqueueUpdateInsertValues ............................................ 59 2.6 删除历史数据函数 ............................................................... 60 DnaHistDeleteValue ...................................................................... 60 ● 函数名称:DnaHistDeleteValue ........................................................ 60 2.7 读取服务配置 ................................................................... 61 DnaGetServiceEntry ...................................................................... 61 ● 函数名称:DnaGetServiceEntry ........................................................ 61 DnaGetNextServiceEntry .................................................................. 63

● 函数名称:DnaGetServiceEntry ........................................................ 63 DnaGetPointEntry ........................................................................ 65 ● 函数名称:DnaGetPointEntry .......................................................... 65 DnaGetNextPointEntry .................................................................... 67 ● 函数名称:DnaGetNextPointEntry ...................................................... 67 DnaSelectPoint .......................................................................... 69 ● 函数名称:DnaSelectPoint ............................................................ 69 DnaSelectService ........................................................................ 70 ● 函数名称:DnaSelectPoint ............................................................ 70

2.8 UNIVERSAL服务接口 ............................................................... 71 2.8.1服务初始化、连接、关闭 ............................................................. 71 ● 函数名称:eDnaMxUniversalInitialize ......................................................... 71 ● 函数名称:eDnaMxUniversalInitialize ......................................................... 72 ● 函数名称:eDnaMxUniversalInitialize ......................................................... 73 ● 函数名称:ISeDnaMxUniversalConnected ........................................................ 73 ● 函数名称:eDnaMxFlushUniversalRecord ........................................................ 74

2.8.2修改点配置信息 ..................................................................... 75

● 函数名称:eDnaMxAddConfigRec ................................................................ 75

2.8.3写入数据 ........................................................................... 78

● 函数名称:eDnaMxAddRec ...................................................................... 78 ● 函数名称:eDnaMxAddLongIdRec ................................................................ 80

2.9 其它相关函数 ................................................................... 81 StringToPeriod .......................................................................... 81 ● 函数名称:StringToPeriod ............................................................ 81 SplitPointName .......................................................................... 82 ● 函数名称:SplitPointName ............................................................ 82 ShortIdFromLongID ....................................................................... 83 ● 函数名称:ShortIdFromLongID ......................................................... 83 LongIDFromShortID ....................................................................... 84 ● 函数名称:LongIDFromShortID ......................................................... 84

eDNA API函数示例(VB部分)

1 VB环境eDNA API使用的准备工作

1.1 设置host文件

网络中必须有eDNA服务,通过设置本地host文件,连接到服务。 Host文件设置方法 在运行中输入“drivers”

进入“etc”文件夹,打开“hosts”文件。

印步(北京)软件有限公司 第 1 页

REV.20061101

eDNA API函数示例(VB部分)

添加如下内容

例如:“192.168.0.168 dna_svcdir_01”

1.2 安装eDNA SDK

eDNA SDK提供了一些eDNA相关的程序示例以及与eDNA相关的一些动态库。 运行“SoftwareDevKit.exe”。

REV.20061101

印步(北京)软件有限公司 第 2 页

eDNA API函数示例(VB部分)

点击“NEXT”

选择安装路径,点“NEXT”

可选安装组件,建议安装,点击下一步。

印步(北京)软件有限公司 第 3 页 REV.20061101

eDNA API函数示例(VB部分)

点击“Finish”,完成安装。

1.3 在VB环境中引用函数

新建一个VB工程,创建一个标准EXE文件

印步(北京)软件有限公司 第 4 页 REV.20061101

eDNA API函数示例(VB部分)

在工程窗口中点击“右键”,添加一个模块(Module).

打开eDNA SDK安装目录下Examples\\DNA_VB文件夹中的VB程序ezdnaapi.BAS文件,建立面的内容复制到新建的模块中。

印步(北京)软件有限公司 第 5 页 REV.20061101

eDNA API函数示例(VB部分)

印步(北京)软件有限公司 第 6 页 REV.20061101

eDNA API函数示例(VB部分)

2 eDNA API函数说明

2.1 读取实时函数

DNAGetRTAll ● 函数名称:DNAGetRTAll

● 功能说明:取出一个实时服务点的值,时间,状态,描述,单位这些信息。时间和状态

都 为字符串格式。

● 函数原形:

Declare Function DNAGetRTAll

Lib \

ByVal Point As String,

Value As Double,

ByVal Time As String, ByVal LenTime As Integer, ByVal Status As String, ByVal LenStatus As Integer, ByVal Desc As String, ByVal LenDesc As Integer, ByVal Units As String, ByVal LenUnits As Integer ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

ByVal Point As String 要查询的实时服务的服务名,格式:”站点名.服务名.标签” Value As Double 传出参数,用来承载返回指定的实时服务的值 ByVal Time As String, 传出参数,用来承载返回实时数据点的时间 ByVal LenTime As Integer, time参数预留长度

ByVal Status As String, 传出参数,用来承载返回实时数据点的状态 ByVal LenStatus As Integer, Status参数预留长度

ByVal Desc As String, 传出参数,用来承载返回实时数据点的描述 ByVal LenDesc As Integer, Desc参数预留长度

ByVal Units As String, 传出参数,用来承载返回实时数据点的单位 ByVal LenUnits As Integer Units参数预留长度

● 使用示例:

‘-----------------------------------------------------------------------

‘目标:取出一个实时服务点的值,时间,状态,描述,单位这些信息。时间和状态都为字符串格式。

印步(北京)软件有限公司 第 7 页 REV.20061101

eDNA API函数示例(VB部分)

‘---------------------------------------------------------------------- Dim Point As String

Dim Value As Double

Dim time As String * 20, Status As String * 20

Dim Desc As String * 30, Units As String * 10

Point = \

ret% = DNAGetRTAll(Point, Value, time, Len(time), Status, Len(Status), Desc, Len(Desc), Units, Len(Units))

If ret = 0 Then

MsgBox \点名\值:\时间:\状态:\\描述:\单位:\

Else

MsgBox \ End If

印步(北京)软件有限公司 第 8 页 REV.20061101

eDNA API函数示例(VB部分)

DNAGetRTAllUTC ● 函数名称:DNAGetRTAllUTC

● 功能说明:取出一个实时服务点的值,时间,状态,描述,单位这些信息。状态字符串

格式, 时间UTC格式。

● 函数原形:

Declare Function DNAGetRTAllUTC Lib \ ByVal Point As String, Value As Double, time As Long, ByVal Status As String, ByVal LenStatus As Integer, ByVal Desc As String, ByVal LenDesc As Integer, ByVal Units As String, ByVal LenUnits As Integer ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

ByVal Point As String 要查询的实时服务的服务名,格式:”站点名.服务名.标签” Value As Double 传出参数,用来承载返回指定的实时服务的值 ByVal Time As Long, 传出参数,用来承载返回实时数据点的时间 ByVal Status As String, 传出参数,用来承载返回实时数据点的状态 ByVal LenStatus As Integer, Status参数预留长度

ByVal Desc As String, 传出参数,用来承载返回实时数据点的描述 ByVal LenDesc As Integer, Desc参数预留长度

ByVal Units As String, 传出参数,用来承载返回实时数据点的单位 ByVal LenUnits As Integer Units参数预留长度

● 使用示例:

‘----------------------------------------------------------------------- ‘目标:取出一个实时服务点的值,时间,状态,描述,单位这些信息。

‘---------------------------------------------------------------------- Dim Point As String

Dim Value As Double

Dim time As String * 20, Status As String * 20

印步(北京)软件有限公司 第 9 页 REV.20061101

eDNA API函数示例(VB部分)

Dim Desc As String * 30, Units As String * 10

Dim StrTIme As String * 20

Point = \

ret% = DNAGetRTAllUTC(Point, Value, time, Len(time), Status, Len(Status), Desc, Len(Desc), Units, Len(Units))

If ret = 0 Then

UCTToStringTime time, StrTIme, Len(StrTIme)

MsgBox \点名\值:\时间:\状态:\& \描述:\单位:\

Else

MsgBox \ End If

印步(北京)软件有限公司 第 10 页 REV.20061101

eDNA API函数示例(VB部分) DNAGetRTValue ● 函数名称:DNAGetRTValue ● 功能说明:读取秒时标实时数据 ● 函数原形:

Declare Function DNAGetRTValue

Lib \

ByVal Point As String, Value As Double ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

Point As String Value As Double

要查询的实时服务的服务名,格式:”站点名.服务名.标签” 传出参数,用来承载返回指定的实时服务的值

● 使用示例:

‘----------------------------------------------------------------------- ‘目标:取出一个实时服务点的值。

‘---------------------------------------------------------------------- Dim VALUE As Double Dim point As String

point = \ret% = DNAGetRTValue(point, VALUE)

If ret = 0 Then

MsgBox \点\实时值:\

Else

MsgBox \End If

印步(北京)软件有限公司 第 11 页 REV.20061101

eDNA API函数示例(VB部分)

DNAGetRTValueAsString ● 函数名称:DNAGetRTValueAsString ● 功能说明:读取秒时标实时数据 ● 函数原形:

Declare Function DNAGetRTValueAsString

Lib \

ByVal point As String, ByVal VALUE As String, ByVal LenValue As Integer ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

Point As String Value As string LenValue As Integer

要查询的实时服务的服务名,格式:”站点名.服务名.标签” 传出参数,用来承载返回指定的实时服务的值 Value参数预留长度

● 使用示例:

‘----------------------------------------------------------------------- ‘目标:取出一个实时服务点的值,类型字符型。

‘---------------------------------------------------------------------- Dim Value As String * 20 Dim Point As String

Point = \

ret% = DNAGetRTValueAsString(Point, Value, Len(Value))

If ret = 0 Then

MsgBox \点\实时值:\Else

MsgBox \End If

印步(北京)软件有限公司 第 12 页 REV.20061101

eDNA API函数示例(VB部分)

DNAGetRTTime ● 函数名称:DNAGetRTTime

● 功能说明:返回一个实时服务点的刷新时间。(字符串时间格式) ● 函数原形:

Declare Function DNAGetRTTime

Lib \

ByVal Point As String, ByVal time As String, ByVal LenTime As Integer ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

Point As String 要查询的实时服务的服务名,格式:”站点名.服务名.标签” time As Strnig 传出参数,用来承载返回指定的实时服务点的更新时间。 LenTime As Integer time参数预留长度

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:返回一个实时服务点的刷新时间。

‘---------------------------------------------------------------------- Dim Time As String * 20 Dim Point As String

Point = \

ret% = DNAGetRTValueAsString(Point, Time, Len(Time))

If ret = 0 Then

MsgBox \点\刷新时间:\Else

MsgBox \End If

印步(北京)软件有限公司 第 13 页 REV.20061101

eDNA API函数示例(VB部分)

DNAGetRTTimeUTC ● 函数名称:DNAGetRTTimeUTC

● 功能说明:返回一个实时服务的刷新时间(UTC时间格式)。 ● 函数原形:

Declare Function DNAGetRTTimeUTC

Lib \

ByVal Point As String, ByVal time As Long, ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

Point As String Time As Long

要查询的实时服务的服务名,格式:”站点名.服务名.标签” 传出参数,用来承载返回指定的实时服务的点的更新时间。

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:返回一个实时服务点的刷新时间。

‘---------------------------------------------------------------------- Dim Time As String * 20 Dim Point As String

Dim StrTime as String * 20

Point = \

ret% = DNAGetRTValueAsString(Point, Time)

UCTToStringTime Time, StrTIme, Len(StrTIme)

If ret = 0 Then

MsgBox \点\刷新时间:\Else

MsgBox \End If

印步(北京)软件有限公司 第 14 页 REV.20061101

eDNA API函数示例(VB部分) DNAGetRTStatus ● 函数名称:DNAGetRTStatus ● 功能说明:取得一个实时点的状态 ● 函数原形:

Declare Function DNAGetRTStatus

Lib \

ByVal Point As String, ByVal Status As String, ByVal LenStatus As Integer ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

Point As String 要查询的实时服务的服务名,格式:”站点名.服务名.标签” Status As String 传出参数,用来承载返回指定的实时服务点的状态值 LenStatus As Integer Status参数预留长度

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:取得一个实时点的状态

‘---------------------------------------------------------------------- Dim Status As String * 10 Dim Point As String

Point = \

ret% = DNAGetRTStatus(Point, Status, Len(Status))

If ret = 0 Then

MsgBox \点\状态:\Else

MsgBox \End If

印步(北京)软件有限公司 第 15 页 REV.20061101

eDNA API函数示例(VB部分) DNAGetRTDesc ● 函数名称:DNAGetRTDesc

● 功能说明:取得一个实时点的描述信息 ● 函数原形:

Declare Function DNAGetRTDesc

Lib \

ByVal Point As String, ByVal Desc As String, ByVal LenDesc As Integer ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

Point As String 要查询的实时服务的服务名,格式:”站点名.服务名.标签” Desc As Double 传出参数,用来承载返回指定的实时服务点的描述信息 LenDesc As Integer Desc 参数预留长度

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:取得一个实时点的描述

‘---------------------------------------------------------------------- Dim Desc As String * 20 Dim Point As String

Point = \

ret% = DNAGetRTDesc(Point, Desc, Len(Desc))

If ret = 0 Then

MsgBox \点\描述:\ Else

MsgBox \End If

印步(北京)软件有限公司 第 16 页 REV.20061101

eDNA API函数示例(VB部分)

DNAGetRTUnits ● 函数名称:DNAGetRTUnits ● 功能说明:取得一个实时点的单位 ● 函数原形:

Declare Function DNAGetRTUnits

Lib \

ByVal Point As String, ByVal Units As String, ByVal LenUnits As Integer ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

Point As String 要查询的实时服务的服务名,格式:”站点名.服务名.标签” Units As Double 传出参数,用来承载返回指定的实时服务点的单位信息 LenUnitsAs Integer Units 参数预留长度

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:取得一个实时点的单位。

‘---------------------------------------------------------------------- Dim Units As String * 10 Dim Point As String

Point = \

ret% = DNAGetRTUnits(Point, Units, Len(Units))

If ret = 0 Then

MsgBox \点\单位:\Else

MsgBox \End If

印步(北京)软件有限公司 第 17 页 REV.20061101

eDNA API函数示例(VB部分) DNAGetRTShort ● 函数名称:DNAGetRTShort

● 功能说明:取得一个实时点的实时值,时间,状态 ● 函数原形:

Declare Function DNAGetRTShort

Lib \

ByVal Point As String, Value As Double, time As Long, Status As Integer ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

Point As String Value As Double time As Long, Status As Integer

要查询的实时服务的服务名,格式:”站点名.服务名.标签” 传出参数,用来承载返回指定的实时服务的值

传出参数,用来承载返回指定的实时服务的时间,UTC格式。 传出参数,用来承载返回指定的实时服务的状态

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:取得一个实时点的实时值,时间,状态

‘---------------------------------------------------------------------- Dim Point As String

Dim Value As Double, time As Long, Status As Integer Dim StrTIme As String * 20

Point = \

ret% = DNAGetRTShort(Point, Value, time, Status)

If ret = 0 Then

UCTToStringTime time, StrTIme, Len(StrTIme)

MsgBox \点\& Point & \值:\& Value & \状态:\& Str(Status) & \时间:\& Trim(StrTIme) Else

印步(北京)软件有限公司 第 18 页 REV.20061101

eDNA API函数示例(VB部分)

MsgBox \End If

2.2 实时写数函数(秒)

DnaAddAnalogShortIdRecord ● 函数名称:DnaAddAnalogShortIdRecord

● 功能说明:添加一条模拟量记录,包括时间,值,和状态。 ● 函数原形:

Declare Function DnaAddAnalogShortIdRecord

Lib \

ByVal Service As String, ByVal PointId As String, ByVal UTCTime As Long, ByVal Value As Double,

ByVal LowWarning As Integer, ByVal HighWarning As Integer, ByVal LowAlarm As Integer, ByVal HighAlarm As Integer,

ByVal OutOfRangeLow As Integer, ByVal OutOfRnageHigh As Integer, ByVal UnReliable As Integer, ByVal Manual As Integer ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

Service As String 标签

数值的UTC时间标签,若指定为0,则使用实时服务所在计算机的时间

PointId As String UTCTime As Long Value As Double LowWarning As Integer HighWarning As Integer

实时服务的点名PointId,格式:“标签” 点的时间标签,UTC格式。 模拟量数值

是否处于低警告:非0值表示真,0值表示假 是否处于高警告:非0值表示真,0值表示假

LowAlarm As Integer 是否处于低报警:非0值表示真,0值表示假 HighAlarm As Integer 是否处于高警告:非0值表示真,0值表示假 OutOfRangeLow As Integer 是否超出低范围:非0值表示真,0值表示假 OutOfRnageHigh As Integer 是否超出高范围:非0值表示真,0值表示假 UnReliable As Integer 是否不可靠:非0值表示真,0值表示假 Manual As Integer 是否手动设置:非0值表示真,0值表示假

● 使用示例:

‘----------------------------------------------------------------------

印步(北京)软件有限公司 第 19 页 REV.20061101

eDNA API函数示例(VB部分)

‘目标:添加一条模拟量记录,包括时间,值,和状态。注意,后面的状态值设置为0或非0

‘----------------------------------------------------------------------

Dim servicename As String Dim pointname As String Dim time As String Dim VALUE As Double

Dim szMessage As String * 80 iret = DnaAddAnalogShortIdRecord(\\StringToUTCTime(Now), 2.3345, 1, 1, 1, 1, 1, 1, 1, 1) If iret = 0 Then

DnaFlushShortIdRecords servicename, szMessage, Len(szMessage)

End If

印步(北京)软件有限公司 第 20 页 REV.20061101

eDNA API函数示例(VB部分)

DnaAddDigitalShortIdRecord ● 函数名称:DnaAddDigitalShortIdRecord ● 功能说明:添加一条开关量记录,包括时间,值。 ● 函数原形:

Declare Function DnaAddDigitalShortIdRecord

Lib \

ByVal Service As String,

ByVal PointId As String, ByVal UTCTime As Long,

ByVal DigSet As Integer, ByVal ValueString As Integer,

ByVal DigitalWarning As Integer, ByVal DigitalChattering As Integer, ByVal UnReliable As Integer, ByVal Manual As Integer ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

Service As String 由实时服务的\站点名.服务名\组成的名称 PointId As String 点名,PointId UTCTime As Long 时间标签,UTC时间格式

DigSet As Integer 表示开或关:非0值表示真,0值表示假

ValueString As Integer 由16个字节组成的描述来描述当前状态的字符串 DigitalWarning As Integer 数字是否处于警告状态:非0值表示真,0值表示假 DigitalChattering As Integer 数字是否处于跳变状态:非0值表示真,0值表示假 UnReliable As Integer 是否不可靠:非0值表示真,0值表示假 Manual As Integer 是否手动设置:非0值表示真,0值表示假

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:添加一条开关量记录,包括时间,值。

‘----------------------------------------------------------------------

Private Sub Command1_Click()

Dim servicename As String,pointname As String Dim time As String,VALUE As Double Dim szMessage As String * 80

iRet = DnaAddDigitalShortIdRecord(\1, 1043, 1, 1, 0, 1) If iRet = 0 Then

印步(北京)软件有限公司 第 21 页 REV.20061101

eDNA API函数示例(VB部分)

DnaFlushShortIdRecords servicename, szMessage, Len(szMessage) End If End Sub DnaAddAnalogShortIdRecordNoStatus ● 函数名称:DnaAddAnalogShortIdRecordNoStatus

● 功能说明:添加一条模拟量或开关量记录,包括时间,值。 ● 函数原形:

Declare Function DnaAddAnalogShortIdRecordNoStatus

Lib \

ByVal Service As String, ByVal PointId As String, ByVal UTCTime As Long, ByVal Value As Double

) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

实时服务名,格式”站点名.服务名”

short ID

数值的UTC时间标签,若指定为0,则使用实时服务所在计算机的时间标签 模拟量数值

Service As String PointId As String UTCTime As Long Value As Double

● 相关函数:

DnaFlushShortIdRecords

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:添加一条模拟量记录,包括时间,值。

‘----------------------------------------------------------------------

Private Sub Command1_Click() Dim servicename As String

Dim pointname As String,time As String,VALUE As Double Dim szMessage As String * 80

iret=DnaAddAnalogShortIdRecordNoStatus(\ow), 1.5573)

If iret = 0 Then

DnaFlushShortIdRecords servicename, szMessage, Len(szMessage) End If

印步(北京)软件有限公司 第 22 页 REV.20061101

eDNA API函数示例(VB部分)

End Sub DnaFlushShortIdRecords ● 函数名称:DnaFlushShortIdRecords ● 功能说明:按照短ID强制刷新一次数据 ● 函数原形:

Declare Function DnaFlushShortIdRecords

Lib \

ByVal Service As String, ByVal MessageStr As String, ByVal MessageLen As Integer ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

Service As String MessageStr As String MessageLen As Integer

由实时服务的\站点名.服务名\组成的名称 强制刷新的错误描述 错误描述字段的长度

● 使用示例:

‘----------------------------------------------------------------------

‘目标:按照短ID强制刷新一次数据。

‘----------------------------------------------------------------------

Dim servicename As String Dim pointname As String Dim time As String Dim VALUE As Double

Dim szMessage As String * 80

iret = DnaAddAnalogShortIdRecord(\2.3345, 1, 1, 1, 1, 1, 1, 1, 1)

If iret = 0 Then

DnaFlushShortIdRecords servicename, szMessage, Len(szMessage) End If

印步(北京)软件有限公司 第 23 页 REV.20061101

eDNA API函数示例(VB部分)

2.3 读取历史函数(秒)

DnaGetHistAvg ● 函数名称:DnaGetHistAvg

● 功能说明:初始化历史函数,获取在一段时间范围内存储于历史服务的点的平均值。 ● 函数原形:

Declare Function DnaGetHistAvg

Lib \

ByVal Point As String, ByVal StartTime As String, ByVal EndTime As String, ByVal Period As String, Key As Long ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 相关函数:

DnaGetNextHist()

● 参数说明:

ByVal Point As String, 要查询的实时服务的完整点名,格式:”站点名.服务名.标签” StartTime As String, 要查询的实时服务的点的开始时间,格式\ EndTime As String, 要查询的实时服务的点的结束时间,格式\ Period As String, 查询周期,以秒为单位,函数将每隔tPeriod 取一次平均值,

tPeriod取值范围为{1, EndTime – StartTime}

Key As Long, 传出参数,数据标识,数据需要通过其他采集函数获取,如

DnaGetNextHistUTC函数

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:获得一个点的一段时间内的平均值,时间格式\。 ‘----------------------------------------------------------------------

Dim StartTime As String, Point As String, EndTime As String, Period As String, Key As Long

Dim Value As Double, sTime As String * 20, Status As String * 20

Point = \

印步(北京)软件有限公司 第 24 页 REV.20061101

eDNA API函数示例(VB部分)

StartTime = \

EndTime = \

Period = \

ret% = DnaGetHistAvg(Point, StartTime, EndTime, Period, Key)

If ret = 0 Then

ret = DnaGetNextHist(Key, Value, sTime, Len(sTime), Status, Len(Status))

Do While ret = 0

MsgBox \到09/25/2007 23:59:59间 平均值 = \\时间 = \状态 = \

ret = DnaGetNextHist(Key, Value, sTime, Len(sTime), Status, Len(Status))

Loop Else

MsgBox \读取失败\ End If

印步(北京)软件有限公司 第 25 页

REV.20061101

eDNA API函数示例(VB部分) DnaGetHistAvgUTC ● 函数名称:DnaGetHistAvgUTC

● 功能说明:初始化历史函数,获取在一段时间范围内存储于历史服务的点的平均值,时

间格式是UTC时间。

● 函数原形:

Declare Function DnaGetHistAvgUTC

Lib \

ByVal Point As String, ByVal StartTime As Long, ByVal EndTime As Long, ByVal Period As Long, Key As Long ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

ByVal Point As String, 要查询的实时服务的完整点名,格式:”站点名.服务名.标签” StartTime As Long, 要查询的实时服务的点的开始时间,以UTC格式表示 EndTime As Long, 要查询的实时服务的点的结束时间,以UTC格式表示 Period As Long, 查询周期,以秒为单位,函数将每隔tPeriod 取一次平均值,

tPeriod取值范围为{1, EndTime – StartTime}

Key As Long, 传出参数,数据标识,数据需要通过其他采集函数获取,如

DnaGetNextHistUTC函数

● 相关函数:

StringToUTCTime ()

DnaGetNextHistUTC() UCTToStringTime()

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:获得一个点的一段时间内的平均值,时间格式UTC。

‘----------------------------------------------------------------------

Dim StartTime As Long, Point As String, EndTime As Long, Period As Long, Key As Long

Dim Value As Double, sTime As Long, Status As String * 20

Dim StrTime As String * 20

印步(北京)软件有限公司 第 26 页 REV.20061101

eDNA API函数示例(VB部分)

Point = \

StartTime = StringToUTCTime(\

EndTime = StringToUTCTime(\

Period = 86400

ret% = DnaGetHistAvgUTC(Point, StartTime, EndTime, Period, Key)

If ret = 0 Then

ret = DnaGetNextHistUTC(Key, Value, sTime, Status, Len(Status))

Do While ret = 0

UCTToStringTime sTime, StrTime, Len(StrTime)

MsgBox \平均值 = \时间 = \状态 = \

ret = DnaGetNextHistUTC(Key, Value, sTime, Status, Len(Status))

Loop Else

MsgBox \读取失败\

End If

印步(北京)软件有限公司 第 27 页

REV.20061101

eDNA API函数示例(VB部分) DnaGetHistMax ● 函数名称:DnaGetHistMax

● 功能说明:初始化历史函数,获取在一段时间范围内存储于历史服务的点的最大值,时

间格式是UTC时间。

● 函数原形:

Declare Function DnaGetHistMax

Lib \

ByVal Point As String, ByVal StartTime As Long, ByVal EndTime As Long, ByVal Period As Long, Key As Long ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 相关函数:

DnaGetNextHist()

● 参数说明:

ByVal Point As String, 要查询的实时服务的完整点名,格式:”站点名.服务名.标签” StartTime As String, 要查询的实时服务的点的开始时间,格式\ EndTime As String, 要查询的实时服务的点的结束时间,格式\ Period As String, 查询周期,以秒为单位,函数将每隔tPeriod 取一次最大值,

tPeriod取值范围为{1, EndTime – StartTime}

Key As Long, 传出参数,数据标识,数据需要通过其他采集函数获取,如

DnaGetNextHistUTC函数

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:获得一个点的一段时间内的最大值,时间格式\。 ‘----------------------------------------------------------------------

Dim StartTime As String, Point As String, EndTime As String, Period As String, Key As Long

Dim Value As Double, sTime As String * 20, Status As String * 20

Point = \

印步(北京)软件有限公司 第 28 页 REV.20061101

eDNA API函数示例(VB部分)

StartTime = \EndTime = \

Period = \

ret% = DnaGetHistMax(Point, StartTime, EndTime, Period, Key)

If ret = 0 Then

ret = DnaGetNextHist(Key, Value, sTime, Len(sTime), Status, Len(Status))

Do While ret = 0

MsgBox \最大值 = \时间 = \时间 = \

ret = DnaGetNextHist(Key, Value, sTime, Len(sTime), Status, Len(Status))

Loop Else

MsgBox \读取失败\ End If

印步(北京)软件有限公司 第 29 页

REV.20061101

eDNA API函数示例(VB部分)

DnaGetHistMaxUTC ● 函数名称:DnaGetHistMaxUTC

● 功能说明:初始化历史函数,获取在一段时间范围内存储于历史服务的点的最大值,时

间格式是UTC时间。

● 函数原形:

Declare Function DnaGetHistMaxUTC

Lib \

ByVal Point As String, ByVal StartTime As Long, ByVal EndTime As Long, ByVal Period As Long, Key As Long ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

ByVal Point As String, 要查询的实时服务的完整点名,格式:”站点名.服务名.标签” StartTime As String, 要查询的实时服务的点的开始时间,格式\ EndTime As String, 要查询的实时服务的点的结束时间,格式\ Period As String, 查询周期,以秒为单位,函数将每隔tPeriod 取一次最大值,

tPeriod取值范围为{1, EndTime – StartTime}

Key As Long, 传出参数,数据标识,数据需要通过其他采集函数获取,如

DnaGetNextHistUTC函数

● 相关函数:

StringToUTCTime ()

DnaGetNextHistUTC() UCTToStringTime()

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:获得一个点的一段时间内的最大值,时间格式UTC。

‘----------------------------------------------------------------------

Dim StartTime As Long, Point As String, EndTime As Long, Period As Long, Key As Long

Dim Value As Double, sTime As Long, Status As String * 20

Dim StrTIme As String * 20

Point = \

印步(北京)软件有限公司 第 30 页 REV.20061101

eDNA API函数示例(VB部分)

StartTime = StringToUTCTime(\

EndTime = StringToUTCTime(\

Period = 86400

ret% = DnaGetHistMaxUTC(Point, StartTime, EndTime, Period, Key)

If ret = 0 Then

ret = DnaGetNextHistUTC(Key, Value, sTime, Status, Len(Status))

Do While ret = 0

UCTToStringTime sTime, StrTIme, Len(StrTIme)

MsgBox \最大值 = \时间 = \状态 = \

ret = DnaGetNextHistUTC(Key, Value, sTime, Status, Len(Status))

Loop Else

MsgBox \读取失败\ End If

印步(北京)软件有限公司 第 31 页 REV.20061101

eDNA API函数示例(VB部分)

DnaGetHistMin ● 函数名称:DnaGetHistMin

● 功能说明:初始化历史函数,获取在一段时间范围内存储于历史服务的点的最小值,时

间格式是UTC时间。

● 函数原形:

Declare Function DnaGetHistMin

Lib \

ByVal Point As String, ByVal StartTime As String, ByVal EndTime As String, ByVal Period As String, Key As Long ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 相关函数:

DnaGetNextHist()

● 参数说明:

ByVal Point As String, 要查询的实时服务的完整点名,格式:”站点名.服务名.标签” StartTime As String, 要查询的实时服务的点的开始时间,格式\ EndTime As String, 要查询的实时服务的点的结束时间,格式\ Period As String, 查询周期,以秒为单位,函数将每隔tPeriod 取一次最小值,

tPeriod取值范围为{1, EndTime – StartTime}

Key As Long, 传出参数,数据标识,数据需要通过其他采集函数获取,如

DnaGetNextHistUTC函数

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:获得一个点的一段时间内的最小值,时间格式\。 ‘----------------------------------------------------------------------

Dim StartTime As String, Point As String, EndTime As String, Period As String, Key As Long

Dim Value As Double, sTime As String * 20, Status As String * 20

Point = \

印步(北京)软件有限公司 第 32 页 REV.20061101

eDNA API函数示例(VB部分)

StartTime = \EndTime = \

Period = \

ret% = DnaGetHistMin(Point, StartTime, EndTime, Period, Key)

If ret = 0 Then

ret = DnaGetNextHist(Key, Value, sTime, Len(sTime), Status, Len(Status))

Do While ret = 0

MsgBox \最小值 = \时间 = \时间 = \

ret = DnaGetNextHist(Key, Value, sTime, Len(sTime), Status, Len(Status))

Loop Else

MsgBox \读取失败\ End If

印步(北京)软件有限公司 第 33 页

REV.20061101

eDNA API函数示例(VB部分) DnaGetHistMinUTC ● 函数名称:DnaGetHistMinUTC

● 功能说明:初始化历史函数,获取在一段时间范围内存储于历史服务的点的最小值,时

间格式是UTC时间。

● 函数原形:

Declare Function DnaGetHistMinUTC

Lib \

ByVal Point As String, ByVal StartTime As Long, ByVal EndTime As Long, ByVal Period As Long, Key As Long ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 相关函数:

StringToUTCTime ()

DnaGetNextHistUTC() UCTToStringTime()

● 参数说明:

ByVal Point As String, 要查询的实时服务的完整点名,格式:”站点名.服务名.标签” StartTime As Long, 要查询的实时服务的点的开始时间,以UTC格式表示 EndTime As Long, 要查询的实时服务的点的结束时间,以UTC格式表示 Period As Long, 查询周期,以秒为单位,函数将每隔tPeriod 取一次最小值,

tPeriod取值范围为{1, EndTime – StartTime}

Key As Long, 传出参数,数据标识,数据需要通过其他采集函数获取,如

DnaGetNextHistUTC函数

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:获得一个点的一段时间内的最小值,时间格式UTC。

‘---------------------------------------------------------------------- Dim Value As Double, sTime As Long, Status As String * 20

Dim StrTIme As String * 20

Point = \

印步(北京)软件有限公司 第 34 页 REV.20061101

eDNA API函数示例(VB部分)

StartTime = StringToUTCTime(\EndTime = StringToUTCTime(\

Period = 86400

ret% = DnaGetHistAvgUTC(Point, StartTime, EndTime, Period, Key)

If ret = 0 Then

ret = DnaGetNextHistUTC(Key, Value, sTime, Status, Len(Status))

Do While ret = 0

UCTToStringTime sTime, StrTIme, Len(StrTIme)

MsgBox \00:00:00到09/25/2007 23:59:59间 平均值 = \& Value & \时间 = \状态 = \

ret = DnaGetNextHistUTC(Key, Value, sTime, Status, Len(Status))

Loop

Else

MsgBox \读取失败\ End If

印步(北京)软件有限公司 第 35 页

REV.20061101

eDNA API函数示例(VB部分) DnaGetHistSnap ● 函数名称:DnaGetHistSnap

函数说明:

初始化历史函数,获取在一段时间范围内存储于历史服务的点的快照值,时间格式

该API取历史数据值(V)的规律:

如果某点A没有历史数据,则向后搜索最近的一条历史数据B,这时A的数据值=B的数值,

A时间标签=自己该时刻的时间标签,否则向前搜索最近的历史数据C,这时A的数据值=C的数值,A时间标签=自己该时刻的时间标签。

所以用该API函数取某一时刻(i)的快照值求法:

Snap(i)= Vi ;

其中:

时刻i: 等于StartTime +(Period-1)*N, StartTime为指定的开始时间,Period为周期,

N为自然数

Vi:表示时刻i所对应的数值,取值方法见上述的规律说明

● 函数原形:

Declare Function DnaGetHistSnap

Lib \

ByVal Point As String, ByVal StartTime As String, ByVal EndTime As String, ByVal Period As String, Key As Long ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 相关函数:

DnaGetNextHist()

● 参数说明:

ByVal Point As String, 要查询的实时服务的完整点名,格式:”站点名.服务名.标签” StartTime As String, 要查询的实时服务的点的开始时间,格式\hh:mm:ss\ EndTime As String, 要查询的实时服务的点的结束时间,格式\hh:mm:ss\

印步(北京)软件有限公司 第 36 页 REV.20061101

eDNA API函数示例(VB部分)

Period As String, Key As Long,

查询周期,以秒为单位,函数将每隔tPeriod 取一次最小值,tPeriod取值范围为{1, EndTime – StartTime} 传出参数,数据标识,数据需要通过其他采集函数获取,如DnaGetNextHist函数

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:获得一个点的历史快照值。

‘----------------------------------------------------------------------

Dim StartTime As String, Point As String, EndTime As String, Period As String, Key As Long

Dim Value As Double, sTime As String * 20, Status As String * 20

Point = \

StartTime = \EndTime = \

Period = \

ret% = DnaGetHistSnap (Point, StartTime, EndTime, Period, Key)

If ret = 0 Then

ret = DnaGetNextHist(Key, Value, sTime, Len(sTime), Status, Len(Status))

Do While ret = 0

MsgBox \最小值 = \时间 = \时间 = \

ret = DnaGetNextHist(Key, Value, sTime, Len(sTime), Status, Len(Status))

Loop Else

MsgBox \读取失败\ End If

印步(北京)软件有限公司 第 37 页 REV.20061101

eDNA API函数示例(VB部分) DnaGetHistSnapUTC ● 函数名称:DnaGetHistSnapUTC

函数说明:

初始化历史函数,获取在一段时间范围内存储于历史服务的点的快照值,时间以UTC格式

表示

该API取历史数据值(V)的规律:

如果某点A没有历史数据,则向后搜索最近的一条历史数据B,这时A的数据值=B的数值,

A时间标签=自己该时刻的时间标签,否则向前搜索最近的历史数据C,这时A的数据值=C的数值,A时间标签=自己该时刻的时间标签。

所以用该API函数取某一时刻(i)的快照值求法:

Snap(i)= Vi ;

其中:

时刻i: 等于StartTime +(Period-1)*N, StartTime为指定的开始时间,Period为周期,

N为自然数

Vi:表示时刻i所对应的数值,取值方法见上述的规律说明

● 函数原形:

Declare Function DnaGetHistSnapUTC Lib \

ByVal Point As String, ByVal StartTime As Long, ByVal EndTime As Long, ByVal Period As Long, Key As Long ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 相关函数:

StringToUTCTime ()

DnaGetNextHistUTC() UCTToStringTime()

● 参数说明:

ByVal Point As String, 要查询的实时服务的完整点名,格式:”站点名.服务名.标签” StartTime As Long, 要查询的实时服务的点的开始时间,以UTC格式表示

印步(北京)软件有限公司 第 38 页 REV.20061101

eDNA API函数示例(VB部分)

EndTime As Long, Period As Long, Key As Long,

要查询的实时服务的点的结束时间,以UTC格式表示 查询周期,以秒为单位,函数将每隔tPeriod 取一次最小值,tPeriod取值范围为{1, EndTime – StartTime} 传出参数,数据标识,数据需要通过其他采集函数获取,如DnaGetNextHist函数

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:获得一个点的历史快照值。

‘----------------------------------------------------------------------

Dim StartTime As Long, Point As String, EndTime As Long, Period As Long, Key As Long

Dim Value As Double, sTime As Long, Status As String * 20

Dim StrTIme As String * 20

Point = \

StartTime = StringToUTCTime(\

EndTime = StringToUTCTime(\

Period = 60

ret% = DnaGetHistAvgUTC(Point, StartTime, EndTime, Period, Key)

If ret = 0 Then

ret = DnaGetNextHistUTC(Key, Value, sTime, Status, Len(Status))

Do While ret = 0

UCTToStringTime sTime, StrTIme, Len(StrTIme)

MsgBox \快照值 = \时间 = \状态 = \

ret = DnaGetNextHistUTC(Key, Value, sTime, Status, Len(Status))

Loop Else

MsgBox \读取失败\ End If

印步(北京)软件有限公司 第 39 页 REV.20061101

eDNA API函数示例(VB部分) DnaGetHistRaw ● 函数名称:DnaGetHistRaw

● 功能说明:初始化历史函数,获取存储于历史服务中的点在某一时间范围内实际存在的

历史数据。

● 函数原形:

Declare Function DnaGetHistRaw

Lib \

ByVal Point As String, ByVal StartTime As String, ByVal EndTime As String, Key As Long ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 相关函数:

DnaGetNextHist()

● 参数说明:

ByVal Point As String, 要查询的实时服务的完整点名,格式:”站点名.服务名.标签” StartTime As String, 要查询的实时服务的点的开始时间,格式\ EndTime As String, 要查询的实时服务的点的结束时间,格式\ Period As String, 查询周期,以秒为单位,函数将每隔tPeriod 取一次平均值,

tPeriod取值范围为{1, EndTime – StartTime}

Key As Long, 传出参数,数据标识,数据需要通过其他采集函数获取,如

DnaGetNextHistUTC函数

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:获得一个点的一段时间内的实际值,时间格式\。 ‘----------------------------------------------------------------------

Dim StartTime As String, Point As String, EndTime As String, Period As String, Key As Long

Dim Value As Double, sTime As String * 20, Status As String * 20

Point = \

印步(北京)软件有限公司 第 40 页 REV.20061101

eDNA API函数示例(VB部分)

StartTime = \

EndTime = \

Period = \

ret% = DnaGetHistRaw(Point, StartTime, EndTime, Period, Key)

If ret = 0 Then

ret = DnaGetNextHist(Key, Value, sTime, Len(sTime), Status, Len(Status))

Do While ret = 0

MsgBox \实际值 = \时间 = \状态 = \

ret = DnaGetNextHist(Key, Value, sTime, Len(sTime), Status, Len(Status))

Loop Else

MsgBox \读取失败\ End If

印步(北京)软件有限公司 第 41 页

REV.20061101

eDNA API函数示例(VB部分) DnaGetHistRawUTC ● 函数名称:DnaGetHistRawUTC

● 功能说明:初始化历史函数,获取存储于历史服务中的点在某一时间范围内实际存在的

历史数据,时间格式是UTC时间。

● 函数原形:

Declare Function DnaGetHistRawUTC

Lib \

ByVal Point As String, ByVal StartTime As Long, ByVal EndTime As Long, Key As Long ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 参数说明:

ByVal Point As String, 要查询的实时服务的完整点名,格式:”站点名.服务名.标签” StartTime As Long, 要查询的实时服务的点的开始时间,以UTC格式表示 EndTime As Long, 要查询的实时服务的点的结束时间,以UTC格式表示 Period As Long, 查询周期,以秒为单位,函数将每隔tPeriod 取一次平均值,

tPeriod取值范围为{1, EndTime – StartTime}

Key As Long, 传出参数,数据标识,数据需要通过其他采集函数获取,如

DnaGetNextHistUTC函数

● 相关函数:

StringToUTCTime ()

DnaGetNextHistUTC() UCTToStringTime()

● 使用示例:

‘---------------------------------------------------------------------- ‘目标:获得一个点的一段时间内的实际值。

‘----------------------------------------------------------------------

Dim StartTime As Long, Point As String, EndTime As Long, Period As Long, Key As Long

Dim Value As Double, sTime As Long, Status As String * 20

Dim StrTIme As String * 20

Point = \

印步(北京)软件有限公司 第 42 页 REV.20061101

eDNA API函数示例(VB部分)

StartTime = StringToUTCTime(\

EndTime = StringToUTCTime(\

Period = 60

ret% = DnaGetHistRawUTC(Point, StartTime, EndTime, Period, Key)

If ret = 0 Then

ret = DnaGetNextHistUTC(Key, Value, sTime, Status, Len(Status))

Do While ret = 0

UCTToStringTime sTime, StrTIme, Len(StrTIme)

MsgBox \实际值 = \时间 = \状态 = \

ret = DnaGetNextHistUTC(Key, Value, sTime, Status, Len(Status))

Loop Else

MsgBox \读取失败\ End If

印步(北京)软件有限公司 第 43 页

REV.20061101

eDNA API函数示例(VB部分)

DnaGetNextHist ● 函数名称:DnaGetNextHist

● 功能说明:返回下一个被初始化过的在历史服务中的点的值。 ● 函数原形:

Declare Function DnaGetNextHist

Lib \

ByVal Key As Long, Value As Double,

ByVal sTime As String, ByVal LenTime As Integer, ByVal Status As String, ByVal LenStatus As Integer ) As Integer

● 返回值说明:

成功返回0,不成功返回非0

● 相关函数:

DnaGetHistAvg 、DnaGetHistSnap、DnaGetHistMax、DnaGetHistMin、DnaGetHistRaw

● 参数说明:

Key As Long,

EzDnaApi 初始化历史函数的返回标识,函数如 DnaGetHistAvg、DnaGetHistSnap等

Value As Double, 传出参数,用来承载返回历史服务中的点的数值队列。 sTime As String, 传出参数,用来承载返回历史服务中的点的时间队列。 LenTime As Integer, 上述szStatus字符串的预留长度

Status As String, 传出参数,用来承载返回历史服务中的点的状态。 LenStatus As Integer, 上述Status字符串的预留长度

● 使用示例:

参见函数示例 DnaGetHistAvg 、DnaGetHistSnap、DnaGetHistMax、DnaGetHistMin、DnaGetHistRaw

印步(北京)软件有限公司 第 44 页 REV.20061101

本文来源:https://www.bwwdw.com/article/8zdr.html

Top