力控dbcomm接口说明Word文件下载.docx

上传人:b****6 文档编号:21728654 上传时间:2023-02-01 格式:DOCX 页数:18 大小:44.71KB
下载 相关 举报
力控dbcomm接口说明Word文件下载.docx_第1页
第1页 / 共18页
力控dbcomm接口说明Word文件下载.docx_第2页
第2页 / 共18页
力控dbcomm接口说明Word文件下载.docx_第3页
第3页 / 共18页
力控dbcomm接口说明Word文件下载.docx_第4页
第4页 / 共18页
力控dbcomm接口说明Word文件下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

力控dbcomm接口说明Word文件下载.docx

《力控dbcomm接口说明Word文件下载.docx》由会员分享,可在线阅读,更多相关《力控dbcomm接口说明Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。

力控dbcomm接口说明Word文件下载.docx

客户端注册数据后,变化通知或者读取数据都按照序号的形式读取,以加快数据解析速度,也提供其他的方式读取数据(按照点名等)

DbComm不再使用Variant数据类型,采用自定义的数据结构来存储Db数据库中的三种数据类型(整形,浮点,字符串)

1.1.3数据变化通知机制

DB的变化通知机制是,当数据变化是将变化数据保存于DB内部,外部程序例如DBCOMM周期的访问DB的变化数据。

为了最大程度保证变化数据不丢失,又不占用太大内存,DBCOMM在DB内部开辟了一个单向列表来保存变化数据。

DB为所有的注册点开辟一个统一的缓存区(按照类型分为两种缓存,字符串型和浮点型),缓存区的大小等于注册点个数(最小开辟200),这样保证每个点都有一个位置来保存自己的变化数据,又不至于太浪费内存

每一个注册点都保存一份数据信息,包括有多少个变化数据,第一个变化数据在缓存中的位置,最后一个变化数据在缓存中的位置

初始状态时缓存是有个有序的单向链表

变化数据都按照先后顺序填入链表中,当缓存区全部用完以后,取出数据个数最多的一个点,例如Tag2.pv,将它的数据缓存区占用一个,用于保存最新的变化数据,这样保证最大程度的利用缓存,又保证每个点的数据变化不会因为缓存长度的限制被丢失。

2DbComm接口

2.1内存管理

2.1.1DbCommMallocMem

语法:

char*DbCommMallocMem(unsignedlongLen);

说明:

开辟内存

参数:

开辟内存长度

返回值:

开辟的内存指针

备注:

为了保证DbComm和外部调用者之间的内存管理方式一直,调用接口设置缓存交互时,需要调用该函数开辟内存

2.1.2DbCommFreeMem

voidDbCommFreeMem(char*pBuf);

释放内存

内存指针

为了保证DbComm和外部调用者之间的内存管理方式一直,调用接口设置缓存交互时,需要调用该函数释放内存

2.2DbComm基本函数

2.2.1new_DbComm

CDbComm*new_DbComm(intnType);

新建DbComm对象

nType调用类型(用于区别调用者身份,DLL,OCX,SDK)

DbComm对象指针

2.2.2delete_DbComm

voiddelete_DbComm(CDbComm*pDbComm);

销毁DbComm对象

2.2.3CDbComm对象SetCallerPtr方法

voidSetCallerPtr(unsignedlongptr);

传入调用者指针

ptr调用者指针

2.2.4CDbComm对象SetStatusChangeFunc方法

voidSetStatusChangeFunc(STATUS_CHANGE_FUNChFunc);

设置状态变化时的回调函数

hFunc回调函数指针指针

回调函数STATUS_CHANGE_FUNC,具体定义为

typedefvoid(*STATUS_CHANGE_FUNC)(

unsignedlongptr1,//ptr1指向本对象的指针

unsignedlongptr2,//ptr2指向调用者的指针

unsignedlongStatus//组件状态);

2.2.5CDbComm对象SetDataChangeFunc方法

voidSetDataChangeFunc(STATUS_CHANGE_FUNChFunc);

设置数据变化后的回调函数

unsignedlongptr1,//ptr1指向本对象的指针

unsignedlongptr2,//ptr2指向调用者的指针

unsignedlongTagCount,//变化数据个数

unsignedlong*RegTagNo,//注册点序号

unsignedlong*RegTagData,//注册点附加数据

DbData**TagData//数据);

DbTagData为数据库数据通用结构,其结构定义如下

typedefstruct

{

unsignedcharType;

union{

longlData;

PSTRstrData;

doubledbData;

}Data;

}DbTagData,*PDbTagData;

2.2.6CDbComm对象ConnectServer方法

boolConnectServer(unsignedlongPortNo,constchar*RemoteAddr,constchar*LocalAddr=NULL,unsignedlongLocalPortNo=0);

创建服务器(远程模式)

PortNo服务器端口

RemoteAddr服务器IP地址

LocalAddr本地IP地址(只限于双网卡,同网段使用)

LocalPortNo本地端口(一般情况无需修改,默认0即可)

创建连接对象是否成功

连接服务器,采用异步模式,是否已经连接上,需要等待“连接成功”回调函数或者判断IsConnected

启动连接服务器后,如果遇外部情况链路中断后,模块会自动重试直到调用DisConnect方法

2.2.7CDbComm对象ConnectServer方法

boolConnectServer();

创建服务器(本地模式)

2.2.8CDbComm对象IsConnected方法

boolIsConnected();

取得客户端连接状态

客户端是否连接

2.2.9CDbComm对象DisConnect方法

voidDisConnect();

断开客户端连接

2.2.10CDbComm对象GetStatus方法

unsignedlongGetStatus();

得到组件状态

组件状态

2.2.11CDbComm对象SetTimeOut方法

voidSetTimeOut(unsignedlongTimeOut);

设置消息发送,处理超时时间

TimeOut超时时间(单位:

毫秒)

默认值为10000(10秒)

2.2.12CDbComm对象GetTimeOut方法

unsignedlongGetTimeOut();

取得消息发送,处理超时时间

超时时间(单位:

2.2.13CDbComm对象GetLastError方法

voidGetLastError(char*str,unsignedlonglen);

取得最后一个错误的信息

str字符缓存区

len缓存区长度

错误信息格式为:

错误号+空格+错误字符串

2.3DbComm数据点信息函数

2.3.1CDbComm对象GetTagCount方法

longGetTagCount();

得到数据库点个数

数据库点个数

2.3.2CDbComm对象GetTagInfo方法

longGetTagInfo(unsignedlongTagCount,unsignedlong*pTagNo,pTagName*pTagName,unsignedlong*pTagArea,unsignedlong*pTagType);

获取数据点的信息

TagCount点个数[IN]

pTagNo点序号[OUT]

pTagName点名[OUT]

pTagArea点区域[OUT]

pTagType点类型[OUT]

获得的数据点个数

DbTagName为数据库点名描述,数据结构定义如下

charName[20];

}TagName,*PTagName;

2.3.3CDbComm对象GetTypeCount方法

longGetTypeCount();

获取数据点类型个数

数据点类型的个数

2.3.4CDbComm对象GetTypeInfo方法

longGetTypeInfo(unsignedlongTypeCount,unsignedlong*pTypeNo,unsignedlong*pParCount);

获取数据点类型的信息

TypeCount点类型个数[IN]

pTypeNo点类型序号[OUT]

pParCount点参数个数[OUT]

获得的数据点类型的个数

2.3.5CDbComm对象GetParInfo方法

longGetParInfo(unsignedlongTypeNo,unsignedlongParCount,unsignedlong*pParNo,unsignedlong*pParType,ParName*pParName);

获取数据点参数的信息

TypeNo点类型序号[IN]

ParCount点参数个数[IN]

pParNo点参数序号[OUT]

pParName点参数名称[OUT]

pParType点参数数据类型[OUT]

获得数据点参数的个数

ParName为数据库点类型参数描述,数据结构定义如下

charName[12];

}ParName,*PParName;

2.3.6CDbComm对象GetParNo方法

longGetParNo(unsignedlongTypeNo,unsignedlongParCount,ParName*pParName,unsignedlong*pParNo);

获取数据点参数的序号

TypeNo点类型[IN]

ParCount点参数个数[IN]

pParName点参数名称[IN]

pParNo点参数序号[OUT]

取得的点参数序号的个数

2.3.7CDbComm对象GetParName方法

longGetParName(unsignedlongTypeNo,unsignedlongParCount,unsignedlong*pParNo,ParName*pParName);

获取数据点参数的名称

pParNo点参数序号[IN]

pParName点参数名称[OUT]

取得的点参数名称的个数

2.3.8CDbComm对象GetParType方法

longGetParType(unsignedlongTypeNo,unsignedlongParCount,unsignedlong*pParNo,unsignedlong*pParType);

获取数据点类型的参数序号

pParType点参数类型[OUT]

取得的点参数类型的个数

2.3.9CDbComm对象GetTagNo方法

longGetTagNo(unsignedlongTagCount,TagName*pTagName,unsignedlong*pTagNo);

获取数据点的序号

pTagName点名[IN]

数据点的个数

2.3.10CDbComm对象GetTagName方法

longGetTagName(unsignedlongTagCount,unsignedlong*pTagNo,TagName*pTagName);

获取数据点的名字

pTagNo点序号[IN]

2.3.11CDbComm对象GetTagArea方法

longGetTagArea(unsignedlongTagCount,unsignedlong*pTagNo,unsignedlong*pAreaNo);

获取数据点区域

pAreaNo点区域[OUT]

2.3.12CDbComm对象GetTagType方法

longGetTagType(unsignedlongTagCount,unsignedlong*pTagNo,unsignedlong*pTypeNo);

获取数据点类型

pTypeNo点类型[OUT]

2.3.13CDbComm对象GetDbTagNo方法

longGetDbTagNo(unsignedlongTagCount,DbTagName*pDbTagName,unsignedlong*pTagNo,unsignedlong*pParNo);

获取数据点的点序号&参数序号

pDbTagName数据库点名(点名+参数名)[IN]

pParNo点参数序号[OUT]

charName[32];

}DbTagName,*PdbTagName

2.3.14CDbComm对象GetDbTagName方法

longGetDbTagName(unsignedlongTagCount,unsignedlong*TagNo,unsignedlong*pParNo,DbTagName*pDbTagName);

获取数据点的名称(点名+参数名)

TagNo点序号[IN]

pParNo点参数序号[IN]

pDbTagName数据库点名(点名+参数名)[OUT]

2.3.15CDbComm对象GetDbTagType方法

longGetDbTagType(unsignedlongTagCount,DbTagName*pDbTagName,unsignedlong*pDbTagType);

获取数据点的类型

TagCount点个数[IN]

pDbTagType数据库点类型[OUT]

2.4DbComm数据点读写函数

2.4.1CDbComm对象GetData方法

longGetData(unsignedlongTagCount,unsignedlong*pTagNo,unsignedlong*pParNo,DbTagData*pTagData);

获取数据点的数据

pParNo点参数序号[IN]

pTagData点数据[OUT]

2.4.2CDbComm对象SetData方法

longSetData(unsignedlongTagCount,unsignedlong*pTagNo,unsignedlong*pParNo,DbTagData*pTagData);

设置数据点的数据

pTagData点数据[IN]

2.4.3CDbComm对象GetHisData方法

longGetHisData(DATEtStartTime,DATEtEndTime,unsignedlongDataCount,unsignedlongTagCount,unsignedlong*pTagNo,unsignedlong*pParNo,double*pHisValue);

获取数据点的历史数据

tStartTime开始时间[IN]

tEndTime结束时间[IN]

DataCount历史数据个数[IN]

TagCount点个数[IN]

pTagNo点序号[IN]

pHisValue历史数据[OUT]

取得的历史数据个数

2.4.4CDbComm对象InsertHisData方法

longInsertHisData(unsignedlongTagNo,unsignedlongParNo,unsignedlongDataCount,DATE*InsertDate,short*shMilli,double*pHisData);

插入历史数据

TagNo点序号[IN]

ParNo点参数序号[IN]

InsertDate插入时间[IN]

shMilli插入毫秒数[IN]

pHisData点数据[IN]

插入的历史数据个数

2.5DbComm数据点注册函数

2.5.1CDbComm对象RegTag方法

longRegTag(unsignedlongTagCount,unsignedlong*pTagNo,unsignedlong*pParNo,unsignedlong*pRegData,unsignedlong*pRegTagNo);

注册变化通知数据

pParNo点参数序号[IN]

pRegData注册点附加数据[IN]

pRegTagNo注册点序号[OUT]

注册变化点个数

2.5.2CDbComm对象UnRegTag方法

longUnRegTag(unsignedlongTagC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1