cvrda_com.dll提供了读数据、写数据、写事件的com接口供用户使用。使用方法如下:
uint RdaInit()
功能:初始化服务端本地数据访问接口,本接口必须在其它LDA_XXX接口之前得到调用,且一个程序只能调用一次。
VC示例:
int nRetInit = RdaInit();
VB示例:
Dim nRetVal As Integer
Set rda = CreateObject("cvrda_com.rda")
nRetVal = rda.RdaInit()
uint RdaRelease()
功能:释放接口资源,不再使用接口时调用。调用了RDA_Init后,在系统退出前必须调用该接口。
VC示例:
RdaRelease(nRetInit);
VB示例:
rda.RdaRelease(nRetVal)
Set rda = Nothing
uint RdaReadValue(char *szTagNameWithScada, char *szFieldName, char *szValueBuf, int *pnValueBufLen)
功能:从过程数据库中读取一个TAG点的值。
szTagNameWithScada为tag名称,需要带上scada节点名及后面的点号,例如:scadamain.midvar_0。
szFieldName,域名的字符串形式。最常用的域名为F_CV(当前值)、F_TIMESTAMP(时间戳)、F_QUALITY(质量)。如果是F_CV,可以填空字符串。
szValueBuf,要读取到的缓冲区。读取到的值一律转换为字符串形式,如1100.11则为字符串"1100.11"。
pnValueBufLen,读取缓冲区长度,同时作为输出参数,调用成功时返回传出读取内容的实际长度。
VC示例:
char szTagValue[MAX_PATH] = {0};
int nValueLen = sizeof(szTagValue);
int nRet = RdaReadValue("scadamain.midvar_0", "F_CV", szTagValue, &nValueLen);
VB示例:
Dim strTagValue
Dim lRetVal As Integer
Dim nBufLen As Integer
nBufLen = 256
lRetVal = rda.RdaReadValue("scadamain.midvar_0", "F_CV", strTagValue, nBufLen)
uint RdaWriteValue(char *szTagNameWithScada, char *szFieldName, char *szValueBuf, int nMSTimeOut)
功能:向过程数据库中写入一个TAG点的值。
szTagNameWithScada为tag名称,需要带上scada节点名及后面的点号,例如:scadamain.midvar_0。
szFieldName,域名。正常情况下应该是对域名为F_CV(当前值)写入,此时可以填空字符串。
szValueBuf,要写入的内容,必须转换为字符串格式,如数值1100.11,则应转换为字符串"1100.11" 。
nMSTimeOut,控制超时,以毫秒为单位,预留值。
VC示例:
char szTagName[MAX_PATH]={0};
strcpy(szTagName, "AI1");
char szTagValue[MAX_PATH]={0};
strcpy(szTagValue, "100");
int nRet = RdaWriteValue("scadamain.midvar_0", "F_CV",szTagValue, 0);
VB示例:
Dim strTagValue As String * 256
Dim lRetVal As Integer
strTagValue = txtWriteValue.Text
'DO NOT USE txtWriteValue.Text AS PARAMETER OF LDA_WriteValue !!
lRetVal = rda.RdaWriteValue("scadamain.midvar_0", "F_CV",strTagValue, 1000)
uint AddCustomEvent(char *szTag, char *szMsg, char *eventType, long eventPriority)
功能:添加自定义事件,添加的结果会记录到对应工程目录下\Data\EventAlarm\eventalarm.db文件中。
szTag:Tag名字,字符串;
szMsg:事件描述,字符串;
eventType:事件类型,字符串;
eventPriority:事件优先级,整形;
无返回值。
VC示例:
char szTagName[MAX_PATH]={0};
strcpy(szTagName, "AI1");
char szMsg[MAX_PATH]={0};
strcpy(szMsg, "message12");
char szType[MAX_PATH]={0};
strcpy(szType, "Custom");
int nRet = AddCustomEvent(szTagName, szMsg, szType, 1);
VB示例:
rda.AddCustomEvent "ai_0","Msg12345","Custom12345",1