打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
力控DBCOM的使用方法
userphoto

2012.09.04

关注

力控DBCOM的使用方法

标签: 力控  DBCOM  2010-11-22 11:38

     

力控R 的实时数据库是一个开放的数据平台。用户可以利用数据库提供的接口,在该平台上进行二次开发,创建自己开发的应用程序(如:过程优化控制程序等)。

实时数据库提供的控件DbCom就是一种方便、高效的接口方式。

DbCom是一个标准OLE控件。用户在各种常用开发环境下(如:VC++、VB、VFP、DELPHI、FrontPage、C++ Build等)可以调用DbCom来访问数据库中的数据。

在安装力控R 时,安装程序自动完成DbCom的安装与注册。

DbCom是一个在程的OLE控件,当您在应用程序中使用时,必须同时启动数据库DB(有关ActiveX的详细信息,请参考相关资料)。

功能

            1、 通过DbCom可以访问本地数据库,也可以是网络上其它远程主机上的数据库。

            2、 通过DbCom不但可以读取数据,而且可以设置数据。

 

3、通过DbCom不但可以读写数据,而且可以得到数据变化通知。当数据变化时,用户定义的方法将被触发。

            3、 通过DbCom不但可以访问实时数据,而且可以检索历史数据。

 

配置

若访问本地数据库,需要启动本地数据库DB,并保证DbCom.ocx已注册成功;当访问远程数据库时,远程主机需要启动DB和NetServer。

属性

DbCom控件具有OLE控件的通用属性(与具体的编程环境有关)如:名字、高度、宽度等等。此外,它还提供与访问远程数据库相关的属性。下面列出各属性及含义: ServerName:用于指定远程主机的名称或IP地址,如果该项为空“”,那么控件将与本地数据库通讯。

Visible:用于指定控件在运行时的显示状态。为“真”时将显示数据库的内容,为“假”时控件将不可见。 TagPars:您所关心的数据的变量名称列表,如填写“LIC504.PV,LIC403.SP”。表示关心LIC504.PV和LIC403.SP值的变化,并且当LIC504.PV和LIC403.SP值的变化时方法OnDataChanged将被调用。您可以在OnDataChanged方法中编写相应的数据触发动作。

注意:参数间以“,”分隔,您可以在控件属性框中修改以上属性。

 


 

例如,上面的属性框内容设置表示:DB服务器地址为10.114.15.88,运行时控件不可见,关心fi101.pv,fi102.pv,fi103.pv数值的变化。

事件

目前DbCom提供了下述事件处理功能:

              1、 OnDataChanged

 

语法 OnDataChanged(long Number , LPCTSTR Tagpar, const VARIANT FAR& data)

说明 数据变化通知。

参数 Number,长整型,变化的变量在属性TagPars中的顺序号,顺序号以“0” 开始,即第一个变量的顺序号为0。

TagPar,字符串,通知变化的变量名称。

data,VARIANT变量,变量的当前值。

返回值 备注数据变化在属性TagPars中指定,当数据发生变化时该方法将自动被调用。

方法

目前DbCom提供了以下几种特定的方法来访问数据库数据或监视状态。

              2、 GetTagName

 

语法 BSTR GetTagName(long TagNo)

说明 根据顺序号得到变量名。

参数 TagNo 长整型,变量在变量表TagPars中的顺序号。

返回值 返回值为变量名称,类型为BSTR。若变量不存在,返回值将为空。

备注 变量的顺序号与其在变量表TagPars中的序号一致(序号从0开始)。

示例 Name = GetTagName(0);


 

2、 GetTagNum

语法 long GetTagNum(LPCTSTR TagPar)

说明 得到变量在变量表TagPars中的顺序号。

参数 TagPar 字符串变量名称。

返回值 返回值为顺序号,类型为长整型,-1表示变量在变量表TagPars中不存在。

备注 变量的顺序号与其在变量表TagPars中的序号一致(序号从0开始)。

示例 TagNo = GetTagNum("LIC504.PV");

3、 GetDataByNum

语法 VARIANT GetDataByNum(long TagNo)

说明 根据变量序号取得数据。

参数 TagNo,变量在变量表TagPars中序号,类型为长整型。

返回值 数据返回值为VARIANT变量,类型一般为VT_BSTR,如果失败,在返回串中为错误信息。

备注 该函数直接从本地数据区取得数据,开销较小。

示例 VARIANT var;

var = GetDataByNum(0);

4、 SetDataByNum

语法 BOOL SetDataByNum(long TagNo, const VARIANT FAR& Data)

说明 根据变量序号设置数据,该函数并不将数据送往数据库,要想设置到数据库必须调用Commit。

参数 TagNo,变量在变量表TagPars中序号,类型为长整型。

返回值 成功为1,否则为0。

失败原因可能为:

1)序号为TagNo的变量在变量表TagPars中不存在。

2)控件尚未与数据库建立通讯。

备注 1)调用该函数后必须再调用Commit后数据才真正送到数据库中。

2)可以多次调用SetDataByNum,然后调用一次Commit,这样效率最高。

示例 SetDataByNum(0,“1”);

SetDataByNum(1,“2”);

Commit();

5、 Commit

语法 BOOL Commit()


 

说明 将由SetDataByNum设置的数据送往数据库。

参数 无

返回值 成功为1,否则为0

失败原因可能为控件尚未与数据库建立通讯。

示例 Commit();

6、 GetRealData

语法 long GetRealData(long count,LPCTSTR strNames,double FAR * data)

说明 读取多点数据。

参数 count:个数。

strNames:参数名字符串,字符型变量。参数间以‘,'号分隔。

data: 双精度浮点(Double)型指针。返回的数据数组。

返回值 长整型,0成功,-1失败。

备注 用于批量得到数值型数据。

示例 GetRealData(2,"fi101.pv,fi102.pv",datas(0));(VB示例)

7、 SetRealData

语法 BOOL SetRealData(long nCount, LPCTSTR strNameDatas, double FAR * datas)

说明 批量设置数据。

参数 count:个数。

strNames:参数名字符串,字符型变量。参数间以‘,'号分隔。

data::双精度浮点(Double)型指针。设置数据数组。

返回值 长整型,0成功,-1失败。

备注 用于批量设置数值型数据。

示例 SetRealData(2,"TAG1.PV,TAG2.PV",datas(0));(VB示例)

8、 GetHisDatas

语法 long GetHisData(DATE tStartTime, DATE tEndTime, LPCTSTR strTagPars, long nTagCount, long nEachDataCount,double FAR * Data)

说明 读取历史数据。

参数 tStartTime:OLE时间(DATE),数据检索开始时间。

tEndTime:OLE时间(DATE),数据检索结束时间。

strTagPars:字符串, 点名列表。点名间以‘,'号分隔。

nTagCount:整型(4字节),请求点参数个数。

nEachDataCount:整型(4字节),请求数据个数。


 

Data: 双精度浮点(Double)型指针,返回的数据,同一点数据依次排放。

返回值 长整型,0成功,-1失败。

备注 总的历史数据个数为:nEachDataCount * nTagCount

 

9、SetStringData

语法 long SetStringData(long nCount, VARIANT FAR* pvTagPars, VARIANT FAR* pvData)

说明 根据变量名称(pvTagPars)和变量值(pvData)设置数据库。

参数 参数名称 类型 说明

nCount long 变量个数

pvTagPars VARIANT数组 nCount个变量名称

pvData VARIANT数组 nCount个变量值

返回值 成功为0,否则为非0。

失败原因可能为:

1)pvTagPars中的参数名在数据库中不存在。

2)控件尚未与数据库建立通讯。

备注 1)pvTagPars、pvData的个数必须和nCount指定的数目相同。

2)pvTagPars和pvData的内容按照数组下标一一对应。

 

10、GetStringData

语法 long GetStringData(long nCount, VARIANT FAR* pvTagPars, VARIANT FAR* pvData)

说明 根据变量名称(pvTagPars)获得变量值(pvData)。

参数 参数名称 类型 说明

nCount long 变量个数

pvTagPars VARIANT数组 nCount个变量名称

pvData VARIANT数组 nCount个变量值

返回值 成功为0,否则为非0。

失败原因可能为:

1)pvTagPars中的参数名在数据库中不存在。

2)控件尚未与数据库建立通讯。

备注 1)pvTagPars、pvData的个数必须和nCount指定的数目相同。

2)必须首先设置pvData的数组个数和数据类型为VT_BSTR,字符长度为64字节。

3)pvTagPars和pvData的内容按照数组下标一一对应。


 

11、GetAllTagCount

语法 long GetAllTagCount()

说明 获得数据库中点的总个数。

参数 无

返回值 成功为数据库中点的个数,否则为<=0 。

失败原因可能为:

控件尚未与数据库建立通讯。

 

12、GetAllTagName

语法 long GetAllTagName(VARIANT FAR* pvTagName)

说明 获得数据库中所有点的名称。

参数 参数名称 类型 说明

pvTagName VARIANT数组 个变量值

返回值 成功为0,否则为非0。

失败原因可能为:

1)pvTagPars中的参数名在数据库中不存在。

2)控件尚未与数据库建立通讯。

备注 1)和GetAllTagCount一起使用,pvTagName数组个数为GetAllTagCount函数返

回值。

2)在调用前首先设置pvTagName的数组个数和数据类型为VT_BSTR,字符长度为

32字节。

 

13、GetTagType

语法 long GetTagType(LPCTSTR szTagName)

说明 获得指定点的类型。

参数 参数名称 类型 说明

szTagName 字符串 点名称

返回值 成功为这个点的类型编号,都>=0,否则为-1。

失败原因可能为:

1)szTagName在数据库中不存在。

2)控件尚未与数据库建立通讯。

备注 类型编号的含义:

 0, 模拟I/O点;1,数字I/O点;2,累计点;

 

3,控制点; 4,运算点; 5,组合点。


 

14、GetTagParCount

语法 long GetTagParCount(LPCTSTR szTagName)

说明 获得指定点(szTagName) 的参数个数。

参数 参数名称 类型 说明

szTagName 字符串 点名称

返回值 成功为该点的参数个数,否则为<=0。

失败原因可能为:

1)szTagName在数据库中不存在。

2)控件尚未与数据库建立通讯。

 

15、GetTagParName

语法 long GetTagParName(LPCTSTR szTagName, VARIANT FAR* pvTagParName)

说明 根据变量名称(szTagName)获得这个变量的所有参数名称(到 pvTagParName)。

参数 参数名称 类型 说明

szTagName 字符串 变量名称

pvTagParName VARIANT数组 nCount个参数名称

返回值 成功为0,否则为非0。

失败原因可能为:

1)szTagName中的参数名在数据库中不存在。

2)pvTagParName分配的数组不正确。

备注 1)和GetTagParCount一起使用,pvTagParName数组个数为GetTagParCount函数

返回值。

2)在调用前首先设置pvTagParName的数组个数和数据类型为VT_BSTR,字符长度

为32字节

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA函数参考
VBA语法概述
VB编程基础教程21–优化 | 异次元软件世界
delphi编码标准——过程和函数
VBScript常用语法手册学习
VBA进阶 | 数组基础06: 与数组相关的函数——Array函数与IsArray函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服