eDNA-实时数据库-API函数(VB-VC部分).doc_第1页
eDNA-实时数据库-API函数(VB-VC部分).doc_第2页
eDNA-实时数据库-API函数(VB-VC部分).doc_第3页
eDNA-实时数据库-API函数(VB-VC部分).doc_第4页
eDNA-实时数据库-API函数(VB-VC部分).doc_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DISTRIBUTED NETWORK ARCHITECTUREeDNA API函数 (VB部分)V1.0中国北京市朝阳区朝外大街乙12号1号楼昆泰国际中心1011室电话:+86-10-58797132/33/34传真:+86-10-58797136标题eDNA标准文档的建立流程 作者陈鑫2006年9月1日修改记录:序号修改人员修改时间1陈鑫2007年4月16日2陈鑫、徐立博2007年9月29日3456目 录1.1 设置host文件11.2 安装eDNA SDK21.3 在VB环境中引用函数42.1 读取实时函数7DNAGetRTAll7函数名称:DNAGetRTAll7DNAGetRTAllUTC9函数名称:DNAGetRTAllUTC9DNAGetRTValue11函数名称:DNAGetRTValue11DNAGetRTValueAsString12函数名称:DNAGetRTValueAsString12DNAGetRTTime13函数名称:DNAGetRTTime13DNAGetRTTimeUTC14函数名称:DNAGetRTTimeUTC14DNAGetRTStatus15函数名称:DNAGetRTStatus15DNAGetRTDesc16函数名称:DNAGetRTDesc16DNAGetRTUnits17函数名称:DNAGetRTUnits17DNAGetRTShort18函数名称:DNAGetRTShort182.2 实时写数函数(秒)19DnaAddAnalogShortIdRecord19函数名称:DnaAddAnalogShortIdRecord19DnaAddDigitalShortIdRecord21函数名称:DnaAddDigitalShortIdRecord21DnaAddAnalogShortIdRecordNoStatus22函数名称:DnaAddAnalogShortIdRecordNoStatus22DnaFlushShortIdRecords23函数名称:DnaFlushShortIdRecords232.3 读取历史函数(秒)24DnaGetHistAvg24函数名称:DnaGetHistAvg24DnaGetHistAvgUTC26函数名称:DnaGetHistAvgUTC26DnaGetHistMax28函数名称:DnaGetHistMax28DnaGetHistMaxUTC30函数名称:DnaGetHistMaxUTC30DnaGetHistMin32函数名称:DnaGetHistMin32DnaGetHistMinUTC34函数名称:DnaGetHistMinUTC34DnaGetHistSnap36函数名称:DnaGetHistSnap36DnaGetHistSnapUTC38函数名称:DnaGetHistSnapUTC38DnaGetHistRaw40函数名称:DnaGetHistRaw40DnaGetHistRawUTC42函数名称:DnaGetHistRawUTC42DnaGetNextHist44函数名称:DnaGetNextHist44DnaGetNextHistUTC45函数名称:DnaGetNextHistUTC45DnaGetNextHistStr46函数名称:DnaGetNextHistStr46DnaGetNextHistStrUTC48函数名称:DnaGetNextHistStrUTC48DnaGetNextHistSmallUTC50函数名称:DnaGetNextHistSmallUTC50DnaGetNextHistFull51函数名称:DnaGetNextHistFull51DnaGetHistExpectedTotal53函数名称:DnaGetHistExpectedTotal532.4 插入历史数据函数(秒)54DnaHistQueueUpdateInsertValue54函数名称:DnaHistQueueUpdateInsertValue54DnaHistFlushUpdateInsertValues56函数名称:DnaHistqueueUpdateInsertValues562.5 追加历史数据函数57DnaHistQueueAppendValue57函数名称:DnaHistQueueAppendValue57DnaHistFlushAppendValues59函数名称:DnaHistqueueUpdateInsertValues592.6 删除历史数据函数60DnaHistDeleteValue60函数名称:DnaHistDeleteValue602.7 读取服务配置61DnaGetServiceEntry61函数名称:DnaGetServiceEntry61DnaGetNextServiceEntry63函数名称:DnaGetServiceEntry63DnaGetPointEntry65函数名称:DnaGetPointEntry65DnaGetNextPointEntry67函数名称:DnaGetNextPointEntry67DnaSelectPoint69函数名称:DnaSelectPoint69DnaSelectService70函数名称:DnaSelectPoint702.8 Universal服务接口712.8.1服务初始化、连接、关闭71函数名称:eDnaMxUniversalInitialize71函数名称:eDnaMxUniversalInitialize72函数名称:eDnaMxUniversalInitialize73函数名称:ISeDnaMxUniversalConnected73函数名称:eDnaMxFlushUniversalRecord742.8.2修改点配置信息75函数名称:eDnaMxAddConfigRec752.8.3写入数据77函数名称:eDnaMxAddRec78函数名称:eDnaMxAddLongIdRec802.9 其它相关函数81StringToPeriod81函数名称:StringToPeriod81SplitPointName82函数名称:SplitPointName82ShortIdFromLongID83函数名称:ShortIdFromLongID83LongIDFromShortID84函数名称:LongIDFromShortID841 VB环境eDNA API使用的准备工作1.1 设置host文件网络中必须有eDNA服务,通过设置本地host文件,连接到服务。Host文件设置方法在运行中输入“drivers”进入“etc”文件夹,打开“hosts”文件。添加如下内容例如:“68 dna_svcdir_01”1.2 安装eDNA SDK eDNA SDK提供了一些eDNA相关的程序示例以及与eDNA相关的一些动态库。 运行“SoftwareDevKit.exe”。 点击“NEXT” 选择安装路径,点“NEXT”可选安装组件,建议安装,点击下一步。点击“Finish”,完成安装。1.3 在VB环境中引用函数 新建一个VB工程,创建一个标准EXE文件 在工程窗口中点击“右键”,添加一个模块(Module). 打开eDNA SDK安装目录下ExamplesDNA_VB文件夹中的VB程序ezdnaapi.BAS文件,建立面的内容复制到新建的模块中。 2 eDNA API函数说明2.1 读取实时函数DNAGetRTAll 函数名称:DNAGetRTAll 功能说明:取出一个实时服务点的值,时间,状态,描述,单位这些信息。时间和状态都 为字符串格式。 函数原形:Declare Function DNAGetRTAllLib ezdnaapi.dll( 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 IntegerUnits参数预留长度 使用示例: -目标:取出一个实时服务点的值,时间,状态,描述,单位这些信息。时间和状态都为字符串格式。-Dim Point As StringDim Value As DoubleDim time As String * 20, Status As String * 20Dim Desc As String * 30, Units As String * 10Point = ednavb.PUSHSERV.test1001ret% = DNAGetRTAll(Point, Value, time, Len(time), Status, Len(Status), Desc, Len(Desc), Units, Len(Units)If ret = 0 Then MsgBox 点名 & Point & 值: & Value & 时间: & time & 状态: & Trim(Status) & 描述: & Trim(Desc) & 单位: & Trim(Units)ElseMsgBox FAILURE, vbOKOnlyEnd IfDNAGetRTAllUTC 函数名称:DNAGetRTAllUTC 功能说明:取出一个实时服务点的值,时间,状态,描述,单位这些信息。状态字符串格式, 时间UTC格式。 函数原形:Declare Function DNAGetRTAllUTC Lib ezdnaapi.dll (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 IntegerUnits参数预留长度 使用示例: -目标:取出一个实时服务点的值,时间,状态,描述,单位这些信息。-Dim Point As StringDim Value As DoubleDim time As String * 20, Status As String * 20Dim Desc As String * 30, Units As String * 10Dim StrTIme As String * 20Point = ednavb.PUSHSERV.test1001ret% = DNAGetRTAllUTC(Point, Value, time, Len(time), Status, Len(Status), Desc, Len(Desc), Units, Len(Units)If ret = 0 ThenUCTToStringTime time, StrTIme, Len(StrTIme) MsgBox 点名 & Point & 值: & Value & 时间: & StrTIme & 状态: & Trim(Status) & 描述: & Trim(Desc) & 单位: & Trim(Units)ElseMsgBox FAILURE, vbOKOnlyEnd IfDNAGetRTValue 函数名称:DNAGetRTValue 功能说明:读取秒时标实时数据 函数原形:Declare Function DNAGetRTValue Lib ezdnaapi.dll (ByVal Point As String, Value As Double) As Integer 返回值说明:成功返回0,不成功返回非0 参数说明:Point As String 要查询的实时服务的服务名,格式:”站点名.服务名.标签”Value As Double 传出参数,用来承载返回指定的实时服务的值 使用示例: -目标:取出一个实时服务点的值。-Dim VALUE As DoubleDim point As Stringpoint = ednavb.PUSHSERV.test1001ret% = DNAGetRTValue(point, VALUE)If ret = 0 ThenMsgBox 点 & point & 实时值: & VALUEElse MsgBox failure, vbOKOnly + vbInformation, errorEnd IfDNAGetRTValueAsString 函数名称:DNAGetRTValueAsString 功能说明:读取秒时标实时数据 函数原形:Declare Function DNAGetRTValueAsString Lib ezdnaapi.dll (ByVal point As String, ByVal VALUE As String, ByVal LenValue As Integer) As Integer 返回值说明:成功返回0,不成功返回非0 参数说明:Point As String 要查询的实时服务的服务名,格式:”站点名.服务名.标签”Value As string 传出参数,用来承载返回指定的实时服务的值LenValue As IntegerValue参数预留长度 使用示例: -目标:取出一个实时服务点的值,类型字符型。-Dim Value As String * 20Dim Point As StringPoint = ednavb.PUSHSERV.test1001ret% = DNAGetRTValueAsString(Point, Value, Len(Value)If ret = 0 Then MsgBox 点 & Point & 实时值: & Trim(Value)Else MsgBox failure, vbOKOnly + vbInformation, errorEnd IfDNAGetRTTime 函数名称:DNAGetRTTime 功能说明:返回一个实时服务点的刷新时间。(字符串时间格式) 函数原形:Declare Function DNAGetRTTime Lib ezdnaapi.dll (ByVal Point As String, ByVal time As String, ByVal LenTime As Integer) As Integer 返回值说明:成功返回0,不成功返回非0 参数说明:Point As String 要查询的实时服务的服务名,格式:”站点名.服务名.标签”time As Strnig 传出参数,用来承载返回指定的实时服务点的更新时间。LenTime As Integertime参数预留长度 使用示例:-目标:返回一个实时服务点的刷新时间。-Dim Time As String * 20Dim Point As StringPoint = ednavb.PUSHSERV.test1001ret% = DNAGetRTValueAsString(Point, Time, Len(Time)If ret = 0 Then MsgBox 点 & Point & 刷新时间: & Trim(Time)Else MsgBox failure, vbOKOnly + vbInformation, errorEnd IfDNAGetRTTimeUTC 函数名称:DNAGetRTTimeUTC 功能说明:返回一个实时服务的刷新时间(UTC时间格式)。 函数原形:Declare Function DNAGetRTTimeUTC Lib ezdnaapi.dll (ByVal Point As String, ByVal time As Long, ) As Integer 返回值说明:成功返回0,不成功返回非0 参数说明:Point As String 要查询的实时服务的服务名,格式:”站点名.服务名.标签”Time As Long传出参数,用来承载返回指定的实时服务的点的更新时间。 使用示例:-目标:返回一个实时服务点的刷新时间。 -Dim Time As String * 20Dim Point As StringDim StrTime as String * 20Point = ednavb.PUSHSERV.test1001ret% = DNAGetRTValueAsString(Point, Time)UCTToStringTime Time, StrTIme, Len(StrTIme)If ret = 0 Then MsgBox 点 & Point & 刷新时间: & Trim(StrTime)Else MsgBox failure, vbOKOnly + vbInformation, errorEnd IfDNAGetRTStatus 函数名称:DNAGetRTStatus 功能说明:取得一个实时点的状态 函数原形:Declare Function DNAGetRTStatus Lib ezdnaapi.dll (ByVal Point As String, ByVal Status As String, ByVal LenStatus As Integer) As Integer 返回值说明:成功返回0,不成功返回非0 参数说明:Point As String 要查询的实时服务的服务名,格式:”站点名.服务名.标签”Status As String传出参数,用来承载返回指定的实时服务点的状态值LenStatus As IntegerStatus参数预留长度 使用示例:-目标:取得一个实时点的状态-Dim Status As String * 10Dim Point As StringPoint = ednavb.PUSHSERV.test1001ret% = DNAGetRTStatus(Point, Status, Len(Status)If ret = 0 Then MsgBox 点 & Point & 状态: & Trim(Status)Else MsgBox failure, vbOKOnly + vbInformation, errorEnd IfDNAGetRTDesc 函数名称:DNAGetRTDesc 功能说明:取得一个实时点的描述信息 函数原形:Declare Function DNAGetRTDesc Lib ezdnaapi.dll (ByVal Point As String, ByVal Desc As String, ByVal LenDesc As Integer) As Integer 返回值说明:成功返回0,不成功返回非0 参数说明:Point As String 要查询的实时服务的服务名,格式:”站点名.服务名.标签”Desc As Double 传出参数,用来承载返回指定的实时服务点的描述信息LenDesc As IntegerDesc 参数预留长度 使用示例:-目标:取得一个实时点的描述-Dim Desc As String * 20Dim Point As StringPoint = ednavb.PUSHSERV.test1001ret% = DNAGetRTDesc(Point, Desc, Len(Desc)If ret = 0 ThenMsgBox 点 & Point & 描述: & Trim(Desc)Else MsgBox failure, vbOKOnly + vbInformation, errorEnd IfDNAGetRTUnits 函数名称:DNAGetRTUnits 功能说明:取得一个实时点的单位 函数原形:Declare Function DNAGetRTUnits Lib ezdnaapi.dll (ByVal Point As String, ByVal Units As String, ByVal LenUnits As Integer) As Integer 返回值说明:成功返回0,不成功返回非0 参数说明:Point As String 要查询的实时服务的服务名,格式:”站点名.服务名.标签”Units As Double 传出参数,用来承载返回指定的实时服务点的单位信息LenUnitsAs IntegerUnits 参数预留长度 使用示例:-目标:取得一个实时点的单位。-Dim Units As String * 10Dim Point As StringPoint = ednavb.PUSHSERV.test1001ret% = DNAGetRTUnits(Point, Units, Len(Units)If ret = 0 Then MsgBox 点 & Point & 单位: & Trim(Units)Else MsgBox failure, vbOKOnly + vbInformation, errorEnd IfDNAGetRTShort 函数名称:DNAGetRTShort 功能说明:取得一个实时点的实时值,时间,状态 函数原形:Declare Function DNAGetRTShort Lib ezdnaapi.dll (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, 传出参数,用来承载返回指定的实时服务的时间,UTC格式。Status As Integer传出参数,用来承载返回指定的实时服务的状态 使用示例:-目标:取得一个实时点的实时值,时间,状态-Dim Point As StringDim Value As Double, time As Long, Status As IntegerDim StrTIme As String * 20Point = ednavb.PUSHSERV.test1001ret% = DNAGetRTShort(Point, Value, time, Status)If ret = 0 Then UCTToStringTime time, StrTIme, Len(StrTIme)MsgBox 点 & Point & 值: & Value & 状态: & Str(Status) & 时间: & Trim(StrTIme)Else MsgBox failure, vbOKOnly + vbInformation, errorEnd If2.2 实时写数函数(秒)DnaAddAnalogShortIdRecord 函数名称:DnaAddAnalogShortIdRecord 功能说明:添加一条模拟量记录,包括时间,值,和状态。 函数原形:Declare Function DnaAddAnalogShortIdRecord Lib EzDNAServAPI.dll (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实时服务的点名PointId,格式:“标签”UTCTime As Long点的时间标签,UTC格式。Value As Double模拟量数值LowWarning As Integer是否处于低警告:非0值表示真,0值表示假HighWarning As Integer是否处于高警告:非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值表示假 使用示例:-目标:添加一条模拟量记录,包括时间,值,和状态。注意,后面的状态值设置为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(TEST.PUSHSERV, TEST0002, StringToUTCTime(Now), 2.3345, 1, 1, 1, 1, 1, 1, 1, 1) If iret = 0 Then DnaFlushShortIdRecords servicename, szMessage, Len(szMessage)End IfDnaAddDigitalShortIdRecord 函数名称:DnaAddDigitalShortIdRecord 功能说明:添加一条开关量记录,包括时间,值。 函数原形:Declare Function DnaAddDigitalShortIdRecord Lib EzDNAServAPI.dll (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 点名,PointIdUTCTime 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 * 80iRet = DnaAddDigitalShortIdRecord(TEST.PUSHSERV, TEST0003, StringToUTCTime(Now), 1, 1043, 1, 1, 0, 1) If iRet = 0 Then DnaFlushShortIdRecords servicename, szMessage, Len(szMessage) End If End SubDnaAddAnalogShortIdRecordNoStatus 函数名称:DnaAddAnalogShortIdRecordNoStatus 功能说明:添加一条模拟量或开关量记录,包括时间,值。 函数原形:Declare Function DnaAddAnalogShortIdRecordNoStatus Lib EzDNAServAPI.dll (ByVal Service As String, ByVal PointId As String, ByVal UTCTime As Long, ByVal Value As Double) As Integer 返回值说明:成功返回0,不成功返回非0 参数说明:Service As String实时服务名,格式”站点名.服务名”PointId As String short IDUTCTime As Long 数值的UTC时间标签,若指定为0,则使用实时服务所在计算机的时间标签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(TEST.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论